0

我是ASP.NET MVC的新手,我試圖找出正確的編碼方式。
我想實現一個多層架構與數據訪問的通用存儲庫。ASP.NET MVC架構 - 通用存儲庫模式

下面是我用在Web表單解決方案做(每個項目是一個單獨的項目):

  • MyProject.Data(實體框架的.edmx +通用庫)
  • MyProject.Business.Services(調用庫,應用業務規則等)
  • MyProject.Business.DomainModel(實體)
  • MyProject.UI(ASP.NET Web表單應用程序)

現在的MVC模式:
我想我應該定義我的ViewModels在MyProject.Business.DomainModel和我的模型在MyProject.Business.Services。數據層保持不變。總結:

  • MyProject.Data(實體框架的.edmx +通用庫)
  • MyProject.Business.Services(模式實現)
  • MyProject.Business.DomainModel(POCO實體+的ViewModels)
  • MyProject.UI(ASP.NET MVC應用程序)

我會感謝您對此方法的評論。

回答

3

查看洋蔥建築。 http://jeffreypalermo.com/blog/the-onion-architecture-part-1/

Codecampserver是一個實現示例。 http://codecampserver.codeplex.com/

SharpArchitecture是另一個需要考慮的例子。 http://code.google.com/p/sharp-architecture/

他們不做事情完全一樣,但他們做單獨的關注。

+0

謝謝德里克。非常豐富的東西。你對我的設計架構有什麼想法嗎? – Kamyar 2011-04-04 06:32:42

+0

我認爲用戶界面和服務可能是好的。我將ViewModels放在UI項目中,因爲它們是屏幕/視圖的模型,並且關注UI。我會將poco和存儲庫接口放入DomainModel和EDMX中,並在Data中實現存儲庫。 – 2011-04-04 06:56:51

+0

如果我在UI中添加ViewModel,我將無法從服務訪問它們。我想我會需要他們去做一些商業邏輯。將存儲庫接口放入域模型又有什麼意義?我想我不會在除DAL以外的任何地方需要它。 – Kamyar 2011-04-04 07:15:39