asp.net mvc 怎样搭建业务逻辑层比较好?
Posted
技术标签:
【中文标题】asp.net mvc 怎样搭建业务逻辑层比较好?【英文标题】:Asp.net mvc How is the better way to build Business Logic Layer? 【发布时间】:2014-07-15 07:18:00 【问题描述】:您好,我有一个直接与 DAL 层通信的项目。
在 DAL 层中,我使用两种模式:存储库和工作单元。
在我的控制器中,我创建了 Unit Of Work 的实例并按如下方式使用:
protected readonly IUnitOfWork unitOfWork;
public MyController(IUnitOfWork unitOfWork)
this.unitOfWork = unitOfWork;
现在我正在尝试实现业务层,但我不知道该怎么做。
在业务层中,我将为每个存储库创建一个服务类。每一类服务都必须能够与一个或多个存储库通信。 UI 项目应该只与 Business 项目通信,对吧?
【问题讨论】:
【参考方案1】:如果您想要一个不错的架构,我强烈建议您查看(并下载)nopCommerce。
这个想法是你打开解决方案,看看他们是如何做事的,并采取你认为与你自己的项目相关的任何事情。
您会注意到控制器不是与一个服务对话,而是与许多服务对话,而这些服务又与存储库和工作单元对话(并使用)。
这种方法使您的控制器不那么混乱,因为您将工作委派给其他层,从而使您的代码更具可读性和可维护性。
HTH。
【讨论】:
【参考方案2】:使用 Viewmodel 将结果返回给业务层的控制器,并将视图模型绑定到 View。浏览我以前的帖子以了解更多信息,或者如果需要详细信息,请给我发电子邮件。 在业务层中使用 unitofwork 而不是在控制器中,并且控制器只会获取从业务层返回的视图模型作为对象或集合。每个视图模型类都包含一组属性
【讨论】:
以上是关于asp.net mvc 怎样搭建业务逻辑层比较好?的主要内容,如果未能解决你的问题,请参考以下文章
如何将数据从表示层传递到业务逻辑层? (ASP.NET MVC 5)
ASP.NET MVC - 服务层 - 业务层 - 数据层 (EF) - SQL DB :: 数据传输?
asp.net中的三层架构是啥意思?mvc设计模式是啥?它们之间有关系吗?