2012-03-06 46 views
1

我习惯于使用3层项目解决方案(某些解决方案有3个以上的项目)。他们中的大多数都是ASP.Net MVC解决方案,因此他们中的很多人都拥有这些项目:站点,业务和数据。所以,3个DLL将被创建,对吧?每个项目或每个模块有一个DLL?

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

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

您对此有何评论?

谢谢!

回答

1

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

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

5

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

对于较小的系统,使用名称空间来区分层可能就足够了。有没有一个放之四海而皆准的所有建议。

如果您购买到这种心态,那么DLL文件通常是物理工件,而不是一个合乎逻辑的 - 哪些组件的版本,应该同舟共济,一起部署和/或组件需要物理分离。

+0

谢谢,Damien! – AndreMiranda 2012-03-06 19:07:19

+0

+1拥有一个DLL可以更容易地违反层边界(这也应该考虑) – jgauffin 2012-03-06 20:06:21