ASP.NET MVC应用程序架构“指南”

时间:2010-04-04 14:37:14

标签: asp.net-mvc architecture

我正在寻找有关基于ASP.NET MVC的CMS应用程序架构的一些反馈。

域模型 - 除了System类之外什么都不依赖于定义类型。目前,主要是贫血。

存储库层 - 抽象数据访问,仅由服务层调用

服务层 - 在域模型上执行业务逻辑。将视图模型暴露给控制器。

ViewModelMapper - 在视图模型和域模型之间来回转换的服务

控制器 - 超薄“交通警察”风格功能,与服务层交互,仅根据视图模型进行说明,从不进行域模型

我的域模型主要用作数据传输(DTO)对象,目前逻辑很少。我发现这很好,因为它不依赖于任何东西(甚至不是服务层中的类)。

服务层有点棘手......我只希望控制器能够访问视图模型以便于GUI编程。但是,有些服务需要相互通信。例如,我有一个事件服务,在标记内容,创建博客帖子等时通知其他侦听器服务。目前,将域模型作为输入或返回它们的方法标记为内部,因此它们不能被控制器。

听起来有点矫枉过正?抽象不够?我主要将此作为严格建筑的学习练习,而不是实际产品,所以请不要反馈“正确取决于你想做什么”。

谢谢!

1 个答案:

答案 0 :(得分:2)

总的来说,这个设计对我来说很好看。

我可能会做更多的事情:

  • 验证 - 进行2步验证 -
    第1步:域级类强制执行自己的有效性(通过属性或任何其他机制) 步骤2:存储库确保对象在存储库的上下文中有效

  • 依赖注入 - 使用DI框架注入依赖项。它对单元测试很有用。此外,如果您需要跨服务调用的服务层,请检查有关聚合服务的这篇文章是否有用:http://blog.ploeh.dk/2010/02/02/RefactoringToAggregateServices.aspx

    • ViewModels - 可能很有可能重复使用,但等待&在你最终决定之前观看

HTH。