首先,我很欣赏在项目布局方面没有一刀切的,但是当我转向 mvc 时,我想尝试从坚实的基础开始。
目前,到目前为止,我在 asp.net mvc 项目结构和 n 层和依赖注入(ninject)方面真的很挣扎。我一直在阅读 Pro Asp.net Mvc 3 Framwork,它将体育商店分为两个项目,这是一个不错的开始,但我想要更大的分离。
到目前为止,我认为我的项目应该类似于下面的大纲
网页界面 (Asp.Net Mvc)
服务层
- 服务接口(摘要)
- Service(服务接口的具体实现)
数据层
- 数据接口(摘要)
- 数据(服务接口的具体实现)
那么我的实体/模型在哪里?我相信我应该将它们移出 Web UI,但我不完全确定它们适合哪里。
是否会为每一层使用单独的实体并使用类似 automapper 的东西在数据实体和服务实体之间进行映射,就像 Microsoft 的项目 Silk 最初所做的那样(这似乎是实现所需分离的相当大的开销)?或者其他层将引用的实体层。该层将包含强类型数据集或可能在基础设施标题下的普通旧 C 对象,然后可以在层之间传递并通过视图模型在 Web Ui 层中进行自定义。
此外,如果使用 Ninject,那么我应该在 Composition Root(在这种情况下为 Web Ui 项目)中配置它。
这意味着添加对所有项目的引用,这会破坏我试图激活的分离。