Jas*_*ile 5 architecture asp.net-mvc
我正在寻找一些基于ASP.NET MVC的CMS应用程序架构的反馈.
域模型 - 除了System类之外什么都不依赖于定义类型.目前,大多贫血.
存储库层 - 抽象数据访问,仅由服务层调用
服务层 - 在域模型上执行业务逻辑.将视图模型暴露给控制器.
ViewModelMapper - 在视图模型和域模型之间来回转换的服务
控制器 - 超薄"交通警察"风格功能,与服务层交互,仅根据视图模型进行讨论,从不进行域模型
我的域模型主要用作数据传输(DTO)对象,目前逻辑很少.我发现这很好,因为它取决于什么(甚至不是服务层中的类).
服务层有点棘手......我只希望控制器能够访问视图模型以便于GUI编程.但是,有些服务需要相互通信.例如,我有一个事件服务,在标记内容,创建博客帖子等时通知其他侦听器服务.目前,将域模型作为输入或返回它们的方法标记为内部,因此它们不能被控制器.
听起来有点矫枉过正?抽象不够?我主要是将这作为一种严格的建筑学习而不是实际产品的学习练习,所以请不要按照"正确取决于你想做什么"的方式做出反馈.
谢谢!
总的来说,这个设计对我来说看起来不错。
我还可以做一些事情:
验证 - 有 2 步验证 -
步骤 1:域级类强制其自身的有效性(通过属性或任何其他机制)。
步骤 2:存储库确保对象在存储库上下文中有效
依赖注入 - 使用 DI 框架注入依赖项。这对于单元测试很有用。另外,如果服务层需要跨服务调用,请检查这篇关于聚合服务的文章是否有用:http://blog.ploeh.dk/2010/02/02/RefactoringToAggregateServices.aspx
HTH。
| 归档时间: |
|
| 查看次数: |
1821 次 |
| 最近记录: |