【问题标题】:Project naming conventions: [Company].[ProjectName] vs [Company_ProjectName] [closed]项目命名约定:[Company].[ProjectName] vs [Company_ProjectName] [关闭]
【发布时间】:2016-08-12 16:21:05
【问题描述】:

在这样的解决方案中命名前言项目名称是一种好习惯吗?

  • 公司名称.P01
  • 公司名称.P02
  • 公司名称.P03

或者使用这样的约定更安全?

  • 公司名称_P01
  • 公司名称_P02
  • 公司名称_P03

对我来说,[.] 分隔符看起来更好,并且提供智能感知,但使用它有什么注意事项吗?

【问题讨论】:

  • 这就是命名空间的用途。
  • 是的,但是跨不同的项目是个好主意吗?
  • 换句话说,使用字符'.'在项目名称中
  • 我不认为这有什么不同。您在每个项目前都使用公司名称的想法似乎会产生很多额外的冗长。为什么不命名解决方案公司名称和每个项目的项目名称?
  • 理想情况下,我希望避免潜在的命名空间冲突,并且它会提供额外的好处,即允许通过智能感知访问公司代码库中的模块,只需键入“使用 CompanyName”。跨度>

标签: c# naming-conventions projects-and-solutions


【解决方案1】:

我遇到的大多数解决方案都遵循以下约定:

CompanyName.SolutionName.LayerName

所以基本上在一个名为 COMP 的公司和一个名为 StackOverflow 的项目中,你最终会得到一个看起来像这样的项目:

COMP.StackOverflow.Business
COMP.StackOverflow.Data
COMP.StackOverflow.Web
COMP.StackOverflow.Core

这使您可以轻松管理生成的程序集,因此如果您需要创建一个公共库以在您的公司中使用。你会命名它:

COMP.SomeFrameworkName;

这样可以轻松地将贵公司(或团队)的 Dll 与外部 Dll 和 Nuget 包分开。

【讨论】:

  • 您能否添加这些名称的用法说明?我假设业务包括逻辑和规则,我称之为“域”代码,有些称之为“BLL”。数据是常见的“DAL”或 ORM 实现,Web 可能是一个 API,但也可能只是网站,而核心是......我称之为合同、接口、抽象、模型,也许还有一些超级基本的实现。在我看来,Business NuGet 使用 Core NuGet。您能否对照我的想法对照一下,并在列出这些约定时添加您的想法?
猜你喜欢
  • 1970-01-01
  • 2010-11-14
  • 2010-10-29
  • 1970-01-01
  • 2016-01-02
  • 1970-01-01
  • 2016-12-25
  • 2011-10-21
  • 2010-10-15
相关资源
最近更新 更多