c# - 业务逻辑分离

标签 c# .net assemblies business-logic-layer

<分区>

当我优化我们网站上的应用程序架构时,我遇到了一个我不知道最佳解决方案的问题。

现在我们有一个基于这种结构的小 dll:

Database <-> DAL <-> BLL 

Dal 使用业务对象传递给 BLL,BLL 将其传递给使用此 dll 的应用程序。

只有 BLL 是公开的,因此任何包含此 dll 的应用程序都可以看到 bll。

一开始,这对我们公司来说是一个很好的解决方案。 但是当我们在那个 Dll 上添加越来越多的应用程序时,Bll 变得越来越大。现在我们不希望某些应用程序可以看到来自其他应用程序的 Bll 逻辑。

现在我不知道最好的解决方案是什么。

我首先想到的是,将 bll 移动并分离到我可以包含在我的应用程序中的其他 dll。但是 Dal 必须是公开的,这样其他 dll 才能获取数据……我认为这是一个很好的解决方案。

我的另一个解决方案是将 bll 分隔在不同的命名空间中,并且只包含您在应用程序中需要的命名空间。但在此解决方案中,您可以根据需要直接访问其他 bll。

所以我征求你的意见。

最佳答案

您应该为业务的每个“部分”设置不同的 BLL 和 DAL...例如:

  • 我的公司.HumanResources.BLL
  • 我的公司.Insurance.BLL
  • 我的公司.Accounting.BLL

关于c# - 业务逻辑分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2811542/

相关文章:

c# - 如何开始使用 SitecoreFakeDb 进行 Sitecore 单元测试

c# - 在两个不同端口上连接到服务器的 TCP 套接字

c# - "Can´t open socket or connection refused"与 .NET

c# - .NET/Mono 数据库引擎

assemblies - CLR 4.0 内联策略? (可能是 MethodImplOptions.NoInlining 的错误)

c# - Collection<T>.Sum(a => a.ushortProperty) 到 ulong

c# - 取消或删除计划的作业-HangFire

c# - 如何将分层数据数据绑定(bind)到 WPF TreeView?

assemblies - 在同一文件夹中使用同一程序集的不同版本

.net - 在 VS2012 中找不到 Microsoft.Office.Interop 程序集