我正在寻找一些关于我的基于ASP.NET MVC的CMS应用程序体系结构的反馈。ASP.NET MVC应用程序体系结构“准则”
域模型 - 仅依赖于System类来定义类型。目前,主要是贫血。
库层 - 抽象的数据访问,只由服务层
服务层称为 - 在域模型执行业务逻辑。将视图模型公开给控制器。
ViewModelMapper - 服务,翻译来回的视图模型和领域模型之间
控制器 - 超薄“交通警察”的风格,与服务层,只有在视图模型,从未领域模型方面的谈判交互功能
我的域模型主要用作数据传输(DTO)对象,目前逻辑最少。我发现这很好,因为它不依赖于任何东西(甚至不在服务层中的类)。
服务层有点棘手......我只希望控制器能够访问视图模型以简化GUI编程。但是,一些服务需要彼此交谈。例如,我有一个事件服务,在标记内容,创建博客文章等时通知其他监听器服务。目前,将域模型作为输入或返回它们的方法标记为内部,因此它们不能被控制器。
听起来像矫枉过正?没有足够的抽象?我主要是在严格的架构上进行学习,而不是针对实际的产品,所以请不要在“正确取决于你想做什么”的方向上反馈意见。
谢谢!
事实上,你用这么几句话说了这么多话应该会让你知道你正处在正确的轨道上。 – pdr 2010-04-04 15:03:50