MVC站点架构

时间:2012-08-05 11:39:32

标签: asp.net-mvc asp.net-mvc-4 architecture

我正在使用MVC4构建在线产品。

目前,我将项目构建为明显的xx.Web,xx.Data,xx.Services

以下是我希望得到您的意见的一系列问题:

1-对于数据层,我将使用Repository模式。我创建了一个将托管我的数据库表的.dbml。我应该为每个表创建一个类,还是应该使用.dbml生成的类? 2-对于Repository接口,我应该在哪里放置它们?在另一个项目xx.Data.Common或xx.Data?

内的文件夹中

3-错误记录和安全代码在哪里?我为此创建了一个xx.Web.Common项目?

MVC应用程序的通用架构是否有任何指导原则?我的意思是我做了一些研究,但你已经淹没了Ninject等扩展音调......

我只想实施最佳做法。感谢

2 个答案:

答案 0 :(得分:1)

开始模板的开箱即用最佳实践有http://sharparchitecture.net/。不过,我认为我在网上看到的大多数解决方案都是过度设计的,目标是企业级网站。

如果您只是制作一个在线产品,那么一个简单的2-3层解决方案就足够了。从最简单的解决方案开始。如果需要,您可以随时添加或创建新图层。

答案 1 :(得分:1)

  

1-对于数据层,我将使用Repository模式。我创建了一个将托管我的数据库表的.dbml。我应该为每个表创建一个类,还是应该使用.dbml生成的类?

如果您从头开始构建您的网站,我建议您使用Code First with Entity Framework,因为Linq2Sql还没有进化。

您不需要使用数据库表从模型中映射1:1,专注于设计领域模型第一,数据库将自动生成。另外,不用从表格中的1:1映射。您需要了解使用Aggregate和Aggregate Root的存储库模式

  

2-其中对于Repository接口,我应该在哪里放置它们?在另一个项目xx.Data.Common或xx.Data?

内的文件夹中

应该再调用一个dll:xx.Domain来放置你的域模型和存储库接口。通过这种方式,xx.Domain是核心程序集,它不依赖于任何其他程序集。

  

3-错误记录和安全代码在哪里?我为此创建了一个xx.Web.Common项目?

应该有更多dll调用:xxx.CrossCuttings用于记录和安全。

使用IoC容器在层与可测试性之间建立松耦合。

不是MVC架构的通用指南,但尝试保持代码简单,可维护和灵活是关键。