项目或单独项目中的命名空间

Namespace within a project or separate project

我正在尝试阅读有关 C# 开发的最佳实践。我遇到过有人在一个解决方案中创建不同的 class 库项目。我一直在为 C# 开发解决方案,但从未为我的 classes 创建单独的项目。虽然,我的一些项目很小。为了分隔命名空间,我通常会创建文件夹。我应该为我的 class 模块创建一个单独的项目有什么充分的理由吗?

创建单独项目的原因:

当我们创建类型为Class库的项目时,在构建之后,MSbuild 过程会吐出一个程序集/动态链接库或.DLL 文件。此 .dll 文件可以在相同或其他解决方案的任何项目中引用。这支持代码的可重用性。

基于 Web (ASP.Net MVC) 解决方案结构的一般经验法则如下:

  1. 创建域模型项目(Class 库项目类型)
  2. 创建数据访问层(Class 库项目类型)
  3. 创建服务层项目(Class 库项目类型)
  4. 创建一个UI层项目(ASP.Net MVC项目类型)

为上面列出的每个项目创建单元测试项目(Class 库项目类型)。

希望这对您有所帮助。