每个项目或每个模块一个DLL?

时间:2012-03-06 18:52:08

标签: c# asp.net-mvc design-patterns architecture

我习惯于处理具有3层项目的解决方案(某些解决方案有3个以上的项目)。其中大多数是ASP.Net MVC解决方案,因此其中许多都有这些项目:站点,业务和数据。那么,将创建3个DLL,对吗?

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

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

您对此有何看法?

谢谢!

2 个答案:

答案 0 :(得分:5)

如果它是一个小型系统,您可以在一个项目中编写3层代码。对于大型系统,您可以跨多个DLL传播系统。

对于较小的系统,使用命名空间来区分这些层可能就足够了。没有一个适合所有人的建议。

如果你购买这种心态,那么DLL通常是一个物理工件,而不是逻辑工具 - 哪些组件版本在一起,应该一起部署和/或哪些组件需要物理隔离。

答案 1 :(得分:1)

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

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