0

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

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

以下是我想征求您意见的一组问题:

1- 对于数据层,我将使用存储库模式。我创建了一个 .dbml 来托管我的数据库表。我应该为每个表创建一个类还是应该使用 .dbml 生成的类?2- 对于存储库接口,我应该将它们放在哪里?在不同的项目 xx.Data.Common 中还是在 xx.Data 中的文件夹中?

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

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

我只想实施最佳实践。谢谢

4

2 回答 2

1

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

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

于 2012-08-05T11:56:34.870 回答
1

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

如果您从头开始构建您的网站,我建议您将Code First 与 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 架构的通用指南,但尽量保持代码简单、可维护和灵活是关键。

于 2012-08-05T11:57:39.577 回答