C# 每个项目或每个模块有一个DLL?

C# 每个项目或每个模块有一个DLL?,c#,asp.net-mvc,design-patterns,architecture,C#,Asp.net Mvc,Design Patterns,Architecture,我习惯于使用3层项目的解决方案(有些解决方案有3个以上的项目)。其中大部分是ASP.NETMVC解决方案,所以很多都有论文项目:站点、业务和数据。那么,将创建3个DLL,对吗 这些天我在想,我的业务层应该是一个DLL,还是应该为这个业务层中的每个模块创建一个DLL,例如Product.DLL、Order.DLL、Customer.DLL等等 我在想,如果应用程序在与产品相关的业务层中出现错误,我只能部署product.DLL,而不能部署整个Business.DLL 你对此有什么看法 谢谢 除非您

我习惯于使用3层项目的解决方案(有些解决方案有3个以上的项目)。其中大部分是ASP.NETMVC解决方案,所以很多都有论文项目:站点、业务和数据。那么,将创建3个DLL,对吗

这些天我在想,我的业务层应该是一个DLL,还是应该为这个业务层中的每个模块创建一个DLL,例如Product.DLL、Order.DLL、Customer.DLL等等

我在想,如果应用程序在与产品相关的业务层中出现错误,我只能部署product.DLL,而不能部署整个Business.DLL

你对此有什么看法

谢谢

除非您有超大的业务层,否则我不会将其拆分为多个DLL。这会给项目带来不必要的复杂性

但是,如果您正在为银行开发企业系统,并且每个项目都包含独立的逻辑,那么您可能需要将其拆分。

除非您有超大的业务层,否则我不会将其拆分为多个DLL。这会给项目带来不必要的复杂性


但是,如果您正在为一家银行开发一个企业系统,并且每个项目都包含独立的逻辑,那么您可能需要将其拆分。

如果是一个小型系统,您可以在单个项目中编写三层代码。对于大型系统,可以跨多个DLL扩展系统

对于较小的系统,使用名称空间来区分层就足够了。没有一刀切的建议


如果您采用这种思维方式,那么DLL通常是一个物理工件,而不是一个逻辑工件-哪些组件一起发布,应该一起部署,哪些组件需要物理分离。

如果是一个小系统,您可以在单个项目中编写三层代码。对于大型系统,可以跨多个DLL扩展系统

对于较小的系统,使用名称空间来区分层就足够了。没有一刀切的建议


如果你接受这种想法,那么DLL通常是一个物理工件,而不是一个逻辑工件-哪些组件版本在一起,应该一起部署,哪些组件需要物理分离。

+1拥有一个DLL更容易违反层边界(也应该考虑到这一点)+1具有一个DLL使违反层边界变得更容易(也应考虑到这一点)