我应该对一个隔离的ASP.NET Web应用程序使用多个程序集吗?

时间:2020-03-05 18:52:11  来源:igfitidea点击:

来自公司IT环境的标准始终是为每个层(业务逻辑,数据访问)创建类库项目,有时还会对特定类型进行更大程度的隔离。

既然我正在开发自己的Web应用程序项目,就没有真正需要以这种方式隔离我的代码了。

我没有需要共享此逻辑或者启用它的服务的多个应用程序。我也看不到部署方案的任何优势。

我倾向于将所有工件放在一个Web应用程序中,并在逻辑上由项目文件夹分隔开。

我想知道社区的想法。

让我添加更多信息...

我正在使用MVC Preview 5编写此应用程序,因此单元测试件将通过框架中继承的关注点分离得到支持。我喜欢对所有内容进行测试!

解决方案

回答

从最简单的事情开始,并在需要时增加复杂性。听起来好像单个程序集将适合情况。但是,请注意不要通过使A层访问B层的内部成员来违反这些层。这将使以后很难将这些层拉入单独的组件中。

回答

我会说这取决于我们对测试和单元测试的重视程度。

如果我们打算只进行用户/手动测试,或者基本上只使用UI向下的测试,那么这实际上并没有什么不同。

另一方面,如果我们打算进行某种单元测试或者业务规则验证,那么将工作分成不同的程序集绝对是有意义的。

即使对于较小的个人项目,我发现随着项目的进行,这种方法也使我的生活更轻松。我仍然运行同一解决方案中的所有内容,只是使用一个用于UI的Web项目,一个用于业务规则/应用程序逻辑的库以及一个用于DAL的库。

回答

我们仍应在逻辑上将各层分离到适当的项目中。

无论我们只有1个开发人员还是100个开发人员,这都是一种良好的工程实践。有关将代码全部放在一个地方的缺点是,这将使我们重构或者复制代码进行扩展。