我应该对一个隔离的ASP.NET Web应用程序使用多个程序集吗?
时间:2020-03-05 18:52:11 来源:igfitidea点击:
来自公司IT环境的标准始终是为每个层(业务逻辑,数据访问)创建类库项目,有时还会对特定类型进行更大程度的隔离。
既然我正在开发自己的Web应用程序项目,就没有真正需要以这种方式隔离我的代码了。
我没有需要共享此逻辑或者启用它的服务的多个应用程序。我也看不到部署方案的任何优势。
我倾向于将所有工件放在一个Web应用程序中,并在逻辑上由项目文件夹分隔开。
我想知道社区的想法。
让我添加更多信息...
我正在使用MVC Preview 5编写此应用程序,因此单元测试件将通过框架中继承的关注点分离得到支持。我喜欢对所有内容进行测试!
解决方案
回答
从最简单的事情开始,并在需要时增加复杂性。听起来好像单个程序集将适合情况。但是,请注意不要通过使A层访问B层的内部成员来违反这些层。这将使以后很难将这些层拉入单独的组件中。
回答
我会说这取决于我们对测试和单元测试的重视程度。
如果我们打算只进行用户/手动测试,或者基本上只使用UI向下的测试,那么这实际上并没有什么不同。
另一方面,如果我们打算进行某种单元测试或者业务规则验证,那么将工作分成不同的程序集绝对是有意义的。
即使对于较小的个人项目,我发现随着项目的进行,这种方法也使我的生活更轻松。我仍然运行同一解决方案中的所有内容,只是使用一个用于UI的Web项目,一个用于业务规则/应用程序逻辑的库以及一个用于DAL的库。
回答
我们仍应在逻辑上将各层分离到适当的项目中。
无论我们只有1个开发人员还是100个开发人员,这都是一种良好的工程实践。有关将代码全部放在一个地方的缺点是,这将使我们重构或者复制代码进行扩展。