1

我正在創建一個MVC網站。這就是我打算早做:爲MVC5 Web應用程序設計架構

Data Access Layer 
    ^
    | 
Business Layer 
    ^
    | 
Web API 2 <-- Apps or whatever 
    ^
    | 
MVC5 Website 

但我認爲以下將是一個更好的主意,因爲自網站和的WebAPI將要在我的情況下在同一臺服務器上,我認爲這對網站解析API的JSON響應沒有任何意義。

Data Access Layer 
    ^
    | 
Business Layer <-- Web API <-- Apps or whatever 
    ^
    | 
MVC5 Website 

我對Web API是完全陌生的(從未做過WebAPI或WCF之前),我也不知道要採取什麼方法。

因此,這裏是我的問題
1.我需要代表與解釋一個更好的解決方案
2.項目結構,在Visual Studio 2013 解決圖表(像那些我做了),你會推薦

請注意,我已經計劃使用VS2013的新ASP.NET App項目模板 - 而不是VS2012類型的Web模板。請記住這一點。

更好的和描述性的答案是最歡迎

+0

您好,我相信你可以幫我這個問題,如果你有30秒...... THKS一很多!http://stackoverflow.com/questions/22401403/add-web-api-to-an-existing-mvc-5-web-application –

回答

2

對我而言,這取決於您的應用程序的範圍。我已經看到一個更大的公司系統使用MVC實例和WebAPI,專門用於CRUD操作的WebAPI作爲來自MVC以Model-View-ViewModel模式返回的UI(View's)的Ajax調用發送。

WebAPI也被其他內聯網系統使用。

所以它看起來是這樣的:

MVC OTHER INTRANET 
|  | 
/\ /
| \/
| WebAPI 
| | 
\/
    \/ 
Business 
Layer 
    | 
    | 
Data Access 
    | 
    DB 

這家公司還必須連接到作爲土生土長的跨公司的工作流系統的DAL單獨的WebAPI。由於公司內的每個組織單位都有相同的數據(域)模型定義,他們將物理移動(也稱爲SELECT/DELETE從groupA.db.active,INSERT到groupB.db.active,INSERT到groupA.db.INactive與更新一步的ID,它工作得很好,但我懷疑這是最好的執行系統。

希望這有助於。

+0

哇我從來沒有想過這樣的事情! – gldraphael

1

恕我直言,肯定做第二個,而不是第一個。 MVC網站稱自己的Web API沒有價值。

+0

謝謝我會考慮第二,你可以做一個關於VS的編輯項目模板(用於MVC和WebAPI) – gldraphael

+0

@gldraphael你可能不會喜歡我的回答。模板是一個柺杖,我不使用它們。 –

+0

好吧,那麼你會建議我應該怎麼做。我只是希望每個圖層都在不同的項目中。我應該怎麼辦?我只需要幫助設置項目,之後我就可以找出問題的原因 – gldraphael