在各种场景中使用简单的DTO时,我经常遇到同样的问题,我总是想知道是否有更好的方法来处理它。如何处理和组织不同环境下的DTO?
事情是,我有一个业务对象,例如, Asset
它有一堆属性,子对象和计算字段,其中一些在时间意义上计算很昂贵,其中一些在数据amonut意义上是巨大的。我需要在UI的各种屏幕中使用不同的对象风格,例如
-
在一棵树上那里是显示一个层次,我也不需要比显示名称在网格
- 在那里我展示在详细信息窗格只是一对夫妇的属性
- 更
- 那里的可用信息的大子集,但还是它的一些(如映射对象)是只能显示在需求
为了能够使用此方案来实现最佳的性能,我一直都创建了不同的DTO为每个上下文,只包含实际使用的信息的子集在这方面。虽然是一个资源优化的解决方案,这将导致两个问题:
- 我有一个类爆炸与DTO类的数量庞大
- 我想出了同样的事情,不同的名字很辛苦像
AssetDtoForGridInTheOverviewScreenInTheUpperPaneAboveTheSplitter
,何况以后保持他们 - 我经常重复自己的转化方法,因为有被最的的DTO中使用,但不是所有的他们(的所以我不能属性把它们放入任何超类并重用转换逻辑)
我正在使用的技术是ASP.NET SOAP WebServices和C#3.5,但我认为这可能是一个语言不可知的问题。欢迎任何想法..