在各種場景中使用簡單的DTO時,我經常遇到同樣的問題,我總是想知道是否有更好的方法來處理它。如何處理和組織不同環境下的DTO?
事情是,我有一個業務對象,例如, Asset
它有一堆屬性,子對象和計算字段,其中一些在時間意義上計算很昂貴,其中一些在數據amonut意義上是巨大的。我需要在UI的各種屏幕中使用不同的對象風格,例如
-
在一棵樹上那裏是顯示一個層次,我也不需要比顯示名稱在網格
- 在那裏我展示在詳細信息窗格只是一對夫婦的屬性
- 更
- 那裏的可用信息的大子集,但還是它的一些(如映射對象)是隻能顯示在需求
爲了能夠使用此方案來實現最佳的性能,我一直都創建了不同的DTO爲每個上下文,只包含實際使用的信息的子集在這方面。雖然是一個資源優化的解決方案,這將導致兩個問題:
- 我有一個類爆炸與DTO類的數量龐大
- 我想出了同樣的事情,不同的名字很辛苦像
AssetDtoForGridInTheOverviewScreenInTheUpperPaneAboveTheSplitter
,何況以後保持他們 - 我經常重複自己的轉化方法,因爲有被最的的DTO中使用,但不是所有的他們(的所以我不能屬性把它們放入任何超類並重用轉換邏輯)
我正在使用的技術是ASP.NET SOAP WebServices和C#3.5,但我認爲這可能是一個語言不可知的問題。歡迎任何想法..