我知道,不是每個人都開發一個MVC應用程序時,使用了徹底的架構,但讓我們假設我有以下結構:瞭解新的Web API的方式
App.Core --> Class Library (POCO or Domain objects)
App.Data --> Class Library (Repository and Entity Framework)
App.Service --> Class Library (Service layer with all business logic)
App.Web --> asp.net MVC 3.0 project
App.Data --> Has a reference to App.Core
App.Service --> Has a reference to App.Core and App.Data
App.Web --> Has a reference to App.Core and App.Service
我們的MVC裏面我們嘗試遵循這種方法:
- 在我們的控制器(在一個方法中)內,我們實例化一個ViewModel。
- 我們填補視圖模型調用從我們App.Service層
- 一旦視圖模型填充方法,我們把它恢復到視圖(這樣的觀點 現在是強類型)。
這發生在99.9%的時間。它是乾淨的,我們喜歡它,它利用自己很好..等等!
現在我的問題是:
如果我們決定將我們的應用程序移到MVC 4.0,並開始使用新 網絡API的做法,我不知道我完全明白的地方(或它如何適合我們目前的架構?
請記住,我們願意改變這種情況!
我們是否應該在App.Service和App.Web之間創建一個新的App.WebAPI圖層? 這意味着在我們的控制器中,我們不再需要直接調用App.Service,而是使用新的App.WebAPI圖層?
或者,將Web API留在App.Web層,並讓控制器調用其他APIControllers,然後調用App.Service層?
不知道我在這裏有什麼意義...但請隨時提出建議,因爲我很好奇不同的投入。
感謝
我相信你的第二種方法是我們正在尋找的。考慮到我們可能有其他客戶(iPad,iPhone等)。所以得出的結論是MVC和Web API都位於同一層。使它們都與服務層(包含業務邏輯)進行交互,然後根據誰調用什麼來填充不同的ViewModel。那是對的嗎? – Vlince 2012-03-01 14:22:50
@Vincen,正好。你有很好的總結。 – 2012-03-01 14:25:07
謝謝你的幫助:-) – Vlince 2012-03-01 14:29:22