在项目中使用命名空间还是单独创建项目?

4

我正在研究C#开发的最佳实践。我发现有些人在一个解决方案中创建不同的类库项目。虽然我一直在开发C#解决方案,但从未为我的类创建单独的项目。尽管我的一些项目很小,但为了分离命名空间,我通常会创建文件夹。是否有任何好的理由让我为我的类模块创建单独的项目呢?


1
创建一个 .dll 程序集并在多个项目中使用它,例如日志记录、身份验证、辅助类等。 - Karthik
一个原因是为了管理复杂性。您可能有一些公共类,它们使用各种内部类来实现。程序集中的类型默认情况下无法访问不同程序集中的内部类型,因此在不同程序集中工作的程序员不必知道它们。 - Matthew Watson
1
这里有一些有用的信息:https://dev59.com/MWox5IYBdhLWcg3w1X2- - PaulF
1个回答

2

创建单独项目的原因:

当我们创建一个类库类型的项目时,在构建完成后,MSbuild进程会生成一个程序集/动态链接库或.DLL文件。这个.DLL文件可以被同一解决方案中或其他解决方案中的任何项目引用。这支持代码的可重用性。

对于基于Web的(ASP.Net MVC)解决方案结构,通常遵循以下规则:

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

为上述每个项目创建单元测试项目(类库项目类型)。

希望这能有所帮助。


谢谢Yawar。这对其他开发类型,比如WinForms、WPF等是否适用? - Reydan Gatchalian
对于 WPF 和/或 WinForm 应用程序,只需将步骤 4 更改为相应的项目类型即可。这通常是正确的,但如果项目非常大,则在 WPF 中,您可能希望为您的视图模型创建一个单独的项目 (.dll),这也适用于 MVC 应用程序 - 这是一个很好的链接,可以阅读代码项目,展示了 MVC 应用程序架构。https://www.codeproject.com/Articles/70061/Architecture-Guide-ASP-NET-MVC-Framework-N-tier-En - 希望这有所帮助! - Yawar Murtaza

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接