相关疑难解决方法(0)

ASP.NET MVC解决方案的最佳结构

我尝试按照最佳实践方法构建我最后一个相当大的MVC项目,但是我不太明白我在做什么.

它有一个数据,业务和Web(MVC)项目,但控制器包含大部分代码,数据层使用NHibernate并且有一些存储库负责太多事情,而业务层是任何不支持的东西的倾销场不属于其他两个项目.它可以工作,但我觉得它可以设置得更好 - 我不满意的主要事情是胖控制器和存储库.

我正在开始一个可能会变得合适的新项目,所以我花了更多的时间试图让我的设计在前面.阅读了一下之后,我正在尝试为每个聚合根创建一个存储库,然后在业务层中为表示层中的每个控制器提供一个服务.

我最初的希望是大部分代码将进入服务,而这与较小的存储库相结合将使我的控制器和数据层变薄.到目前为止,这种情况并没有发生.

我读过的所有内容都表明View Model不应该从Business层返回,而应该填充在表示层中,所以目前我的服务层主要是将模型从我的数据层传递到表示层然后做了准备视图模型所需的东西.所以我仍然有胖控制器,还有一个瘦的业务和数据层.

我的表示层也知道我的业务和数据层,但我认为这种分离的一部分是减少耦合?

我错了吗?我是否应该停止尝试盲目跟随我在互联网上阅读的内容,只需在业务层中准备视图模型,这样我就可以将大部分代码移到那里?我应该回到经典的ASP吗?:)

structure n-tier-architecture asp.net-mvc-4

15
推荐指数
1
解决办法
2万
查看次数

ASP.NET MVC(域模型,存储库,流畅,服务 - 我项目的结构)

在我的ASP.NET MVC Web应用程序中,我有:

  • 域模型,由LINQ to SQL创建

  • 存储库如

    UserRepositoryOrderRepository

  • IQueryable Fluents作为IQueryable扩展方法,如

    public IQueryable<Order> GetNewOrders(this IQueryable<Order>)

  • 服务如

    UserServiceOrderService

  • 实用类和扩展方法,如

    CryptoUtility (做Hashing等)和String等扩展

  • ViewModel对每个MVC视图都是特殊的

  • ASP.NET MVC项目本身(控制器,视图)

我正在为我的案例寻找最好的项目结构/组织,特别是分成不同的程序集以及这些层之间的依赖关系.遗憾的是,网络资源没有详细说明.

一个提示:目前Repository,Services,IQueryable Fluents等直接针对域模型实现,我没有它们的接口定义.我认为这是不必要的,但松散耦合可能需要这个吗?我的服务有一个接口(例如IOrderService),我的存储库实现了IRepository <T>.

感谢您以简洁的方式组织这一点,特别是哪个层应该依赖于什么和组装组织.谢谢!

.net c# asp.net-mvc dependencies project-structure

4
推荐指数
1
解决办法
7304
查看次数