2012-08-05 130 views
0

我正在使用MVC4構建在線產品。MVC網站架構

目前,我構造的項目進入明顯xx.Web,xx.Data,xx.Services

這是一套我希望得到你的意見的問題:

1-對於數據層,我將使用Repository模式。我已經創建了一個.dbml,它將託管我的數據庫表。我應該爲每個表創建一個類還是應該使用由.dbml生成的類? 2- Where對於存儲庫接口,我應該在哪裏放置它們?在不同的項目xx.Data.Common或xx.Data內的文件夾中?

3-錯誤記錄和安全代碼在哪裏?我爲此創建了一個xx.Web.Common項目?

MVC應用程序的通用體系結構是否有任何指導原則?我的意思是我做了一些研究,但你得到了像Ninject等擴展口氣淹沒...

我只是想實施最佳實踐。謝謝

回答

1

1-對於數據層,我將使用Repository模式。我已經創建了一個.dbml,它將託管我的數據庫表。我應該爲每個表創建一個類還是應該使用由.dbml生成的類?

如果你從頭開始構建你的網站,我建議你使用Code First with Entity Framework,因爲Linq2Sql還沒有發展。

您不需要將您的模型與您的數據庫表格1:1進行映射,專注於設計領域模型冷杉,數據庫將自動生成。另外,不用映射1:1從表中複製。您需要了解存儲庫模式與聚合和聚合根

2-其中對於存儲庫接口,我應該在哪裏放置它們?在不同的項目xx.Data.Common或xx.Data內的文件夾中?

應該有一個叫做:xx.Domain的dll來放置你的域模型和存儲庫接口。通過這種方式,xx.Domain是不依賴於任何其他程序集的核心程序集。

3-錯誤記錄和安全代碼在哪裏?我爲此創建了一個xx.Web.Common項目?

應該有更多的dll調用:xxx.CrossCuttings用於記錄和安全性。

使用IoC容器在圖層和可測試性之間進行鬆散耦合。

不是MVC體系結構的常見指導方針,但儘量保持代碼簡單,可維護和靈活是關鍵。

1

http://sharparchitecture.net/爲開箱即用模板的最佳實踐。不過,我認爲我在網上看到的大多數解決方案都是過度設計的,並針對企業級別的網站。

如果你只是製作一個在線產品那麼一個簡單的2-3層的解決方案就足夠了。從最簡單的解決方案開始。您可以隨時添加或在需要時添加新圖層。

+0

這就是我的想法。也許實施Repository Pattern和Ninject會是一個好的開始。事情是你讀了大量的解決方案,但你從來沒有看到它在真實情況下的優勢。掌握理論的東西不會教導如何或何時實現這些功能。儘管感謝您的領導。 – 2012-08-05 11:59:19

+1

+1最簡單的路線。一個好的方法是關注代碼的可維護性,這樣可以很容易地添加新的東西。 – 2012-08-05 12:01:44