【问题标题】:prefixing DTO / POCOS - naming conventions?前缀 DTO / POCOS - 命名约定?
【发布时间】:2010-11-07 17:04:38
【问题描述】:

真的很简单的问题,我想知道任何人在 DTO / POCOS 上使用的命名约定......

我真的不想像匈牙利符号那样添加前缀。我摆脱了那个!

但是我的 dtos 命名与我实际返回的对象名称发生冲突,尽管它们位于不同的命名空间中,但仍然有点令人困惑..

我想知道有人对它应用什么命名约定

例如我的客户对象被称为客户

我做了一个到 dto 的映射 ...这是 Customer ..我在想 DtoCustomer ..

不确定

有人吗?

【问题讨论】:

    标签: c# naming-conventions poco dto


    【解决方案1】:

    比起 DtoCustomer,我更喜欢 CustomerDto。喜欢让它们并排排列。

    但是命名也可以取决于 DTO 的使用。例如,在 ASP.NET MVC 中,我经常调用发送到 CustomerViewModel 视图的 DTO。

    【讨论】:

      【解决方案2】:

      我更喜欢为此使用命名空间。为此使用命名空间别名使其更加清晰。

      这将使代码看起来像:

      Customer myCustomer = new Customer();
      Dto.Customer dtoCustomer = ....;
      

      如果我完全在 DTO 层工作,此时我仍然可以使用“客户”。

      【讨论】:

      • 是的,我最终采用了这个,我的模型在命名空间模型中,我的 dto 在 dto.. 谢谢
      • 我从来没有想过。惊人的。我喜欢它。我想要更多。
      • 在这种情况下,使用命名空间进行限定是有意义的,并且人们可以很好地使用它。但是,否则在类的顶部添加 using 语句,如果您不需要,则不完全限定。
      【解决方案3】:

      我通常在这种情况下附加 DTO。

      【讨论】:

        【解决方案4】:

        根据我的经验,DTO 通常是您的域实体所代表的数据的子集或聚合。这通常是因为域实体是丰富的、高度相互关联的、具有行为和数据的复杂对象。因此,我尝试命名我的 DTO,以尽可能多地反映它们所代表的信息子集。对于客户,我经常有针对所请求信息进行微调的 DTO:

        • 客户标头
        • 客户详情
        • CustomerWithRecentOrders
        • CustomerAndBill

        在上面的示例中,CustomerHeader 可能只包含客户 ID 和名称,通常用于在简单列表中显示客户。 CustomerDetail 将包含大多数客户信息,但不包含完整的客户实体可能包含的任何关系属性。其他的应该是不言自明的,这是最终的目标。

        【讨论】:

        • @CoffeeAddict:这取决于你的目标是什么。如果良好的性能是关键要求,那么有时您必须将原本可能是“理想”架构的“纯净水”“混为一谈”,以提高通过网络传输的事物的性能。如果您有幸不使用面向服务的架构,那么一开始就不需要细粒度的 DTO。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-20
        • 1970-01-01
        • 1970-01-01
        • 2018-06-12
        • 1970-01-01
        相关资源
        最近更新 更多