我想用分层体系结构创建应用程序。我有独立的
- 仅具有模型类的模型项目
- 负责CodeFirst配置,迁移等负责的数据项目,
- 负责业务逻辑的服务项目,并使用EF 保存数据库中的数据
- dto项目与Web应用程序和服务之间使用的类别
- 使用ASP.NET MVC应用程序的Web项目。
我的目标是将这些项目分开,以便Web项目对模型和数据一无所知 - 它只是使用DTO类消耗服务,因此Web项目应仅参考服务和DTO。一切都很好,直到我配置ASP.NET身份 - 为了配置授权,我必须参考我想避免的数据和模型项目。是否可以实现我的目标,并且(如果是)如何做。
我的第二个问题是:从关注点的分离来看,我的确定是可以的吗?
我可能会将所有ASP.NET身份事物分为其自己的项目,同时又有EF数据访问和身份模型。将其视为更局部或通过主题将问题分开,而不是通过功能。
因此,您的Web应用程序将参考服务,DTO和身份 - 每个人似乎都有自己的角落。
IMO的目标不一定是将代码除以类似功能,而是消除无需不需要的依赖项,并隐藏(或更确切地说是保护)域知识为孤立和权威的块。
是的,您的设计基本上是固体的,通常效果很好。