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