在Web應用程序的規劃階段,我希望有一些建議。不同層次的Web API 2
我在不同層次上繪製DAL和Web MVC 5,我知道這個項目需要與其他系統進行一些集成。
我的問題是:
要善於創造DAL和Web MVC 5之間的網絡API 2層?
這裏主要傾向於集中數據訪問格式並儘量減少未來的維護。
在Web應用程序的規劃階段,我希望有一些建議。不同層次的Web API 2
我在不同層次上繪製DAL和Web MVC 5,我知道這個項目需要與其他系統進行一些集成。
我的問題是:
要善於創造DAL和Web MVC 5之間的網絡API 2層?
這裏主要傾向於集中數據訪問格式並儘量減少未來的維護。
Web API和Web MVC層都是邏輯表示層的一部分,通常它們彼此相鄰並且不會混合。這裏只是我頭頂上的幾個缺點:
您可以在這裏的合同版本閱讀起來 - Versioning Strategies
如果我是你,我會做兩臺Web API和Web MVC層儘可能薄,因爲他們應該在完美的世界。然後添加一個業務層並在Web API和Web MVC中使用它。業務層應該封裝你想要的所有通用邏輯並減少維護。所以它應該是
DAL - >業務層 - >網絡API
和
DAL - >業務層 - > Web MVC框架
希望它能幫助!
我有一些困難來定義什麼是我的業務層。我需要一個虛擬的例子:( – Onaiggac 2014-10-13 21:45:26
我只能使用存儲過程來操縱我的數據和LINQ to Entities來選擇 – Onaiggac 2014-10-13 21:56:29
當然,考慮你的應用程序是一個網上商店,當用戶下訂單時,你應該做一些查詢來製作確保產品仍然可用,然後將訂單保存到數據庫並向用戶發送一封包含訂單ID的電子郵件,因此這三項操作應該放入業務層服務中,您可以使用CreateOrder方法訂購OrderService,然後在此方法中打電話給你的DAL進行驗證查詢並保存訂單實體,然後應該有一個調用smpt服務器來發送電子郵件,這三個操作是業務邏輯,創建訂單時應該總是一起使用 – 2014-10-13 22:59:47
DISTINCT層是什麼意思?你期望與其他系統進行什麼樣的整合?只需通過Web API,對吧? – 2014-10-13 14:39:54
對於第一個問題,我的意思是DAL和Web MVC 5在單獨的項目中。第三個是YES。 – Onaiggac 2014-10-13 15:04:40