【问题标题】:Namespace within a project or separate project项目或单独项目中的命名空间
【发布时间】:2017-02-28 09:05:11
【问题描述】:

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

【问题讨论】:

  • 创建一个 .dll 程序集并在多个项目中使用它。例如,日志记录、身份验证、助手类等。
  • 一个原因是管理复杂性。您可能有一些公共类,它们使用各种内部类来实现它们。默认情况下,程序集中的类型不能访问不同程序集中的内部类型,因此在不同程序集中工作的程序员不必知道它们。
  • 这里有一些有用的信息:stackoverflow.com/questions/8934570/…

标签: c# namespaces projects


【解决方案1】:

创建单独项目的原因:

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

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

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

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

希望这会有所帮助。

【讨论】:

  • 谢谢亚瓦尔。这是否适用于其他开发类型,例如 WinForms、WPF 等?
  • 如果是 WPF 和/或 WinForm 应用程序,只需将步骤 4 更改为相应的项目类型。这通常是正确的,但是,如果项目非常大,那么在 WPF 中,您可能希望为您的视图模型创建一个单独的项目 (.dll),这对于 MVC 应用程序也是如此 - 这是一个阅读代码项目的好链接这显示了 MVC 应用程序架构。 codeproject.com/Articles/70061/… - 希望这会有所帮助!
猜你喜欢
  • 2012-10-09
  • 1970-01-01
  • 2013-02-17
  • 1970-01-01
  • 1970-01-01
  • 2011-07-15
  • 2011-05-02
  • 1970-01-01
  • 2012-10-17
相关资源
最近更新 更多