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的理解

asp.net中的三层架构是啥意思?mvc设计模式是啥?它们之间有关系吗?

ASP.NET开发实战——ASP.NET MVC & 分层 代码篇

MVC 控制器和业务逻辑之间的区别(3 层)