多层命名

时间:2012-10-01 19:32:24

标签: c# naming multi-tier

我想创建一个包含3层(或层级的多层项目?有什么区别?)

现在,我该如何命名每一层(层)?

我在维基百科上看到了这个描述:

Wikipedia  Three-tier architecture

但我不能简单地将我的图层命名为“表示层”,“逻辑层”和“数据层”,可以吗?

在命名空间中这不合适。

任何关于命名的想法?

3 个答案:

答案 0 :(得分:3)

您可以将命名空间命名为:

  

MeOrMyCompany.TheApplication.Data
  MeOrMyCompany.TheApplication.Logic
  MeOrMyCompany.TheApplication.Presentation

有时需要添加子命名空间,如

  

MeOrMyCompany.TheApplication.Presentation.Main
  MeOrMyCompany.TheApplication.Presentation.Dialogs
  MeOrMyCompany.TheApplication.Presentation.Controls
  ......

取决于你。

请注意,在项目中创建文件夹时,文件夹名称将自动附加到命名空间。因此,如果您有一个名为“MeOrMyCompany.TheApplication”的项目,则可以添加名为“Data”,“Logic”和“Presentation”的文件夹。在“Presentation”中添加名为“Main”,“Dialogs”,“Controls”或其他适合您的子文件夹。

您还可以为三个层创建单独的项目。

示例:

enter image description here

此处SVG文件夹中的类将自动具有命名空间

  

CySoft.SLVision.Diagrams.Shapes.Svg

namespace CySoft.SLVision.Diagrams.Shapes.Svg
{
    public class SvgLine : LineShape
    {
        private SvgShapeFactory _context;
        ...
    }

    ...
}

答案 1 :(得分:2)

在单一应用程序解决方案中,我通常会执行以下操作:

<Company name>.<Application name>.<Tier name>

如果它包含空格或者它太长,你也可以使用首字母缩略词而不是名字。

我为每个项目/程序集使用此命名约定。

我通常目前的等级/图层是

DAL - 我的数据访问层(例如EF)

Business - 我的业务逻辑和实体

Facade - 我的表示层,我在其中定义了应用程序逻辑

UI - 实际的用户界面

答案 2 :(得分:2)

层和层有时可以互换使用,但有一个微妙的区别。层是物理的,层是合乎逻辑的。更多:What's the difference between "Layers" and "Tiers"?

至于命名,取决于您正在进行的项目类型,以及您要使用的体系结构类型。

例如,我有一个名为Amber的网络项目。它有这些项目:

  • Amber.Logic(逻辑和数据在这种情况下合并为一个项目/层)
  • Amber.Tests(测试)
  • Amber.Web(演示文稿)