我剛剛開始一個新項目,當前包含一些公平的ViewModel DTO類。用元組替換ViewModels
我想知道是否有用,甚至是很好的做法,用元組替換這些DTO中的很多元素,並將其用作將一堆物體轉移到我的視圖中的方法。
您認爲如何?這是元組的正確用法,還是我在這裏不受歡迎?
我剛剛開始一個新項目,當前包含一些公平的ViewModel DTO類。用元組替換ViewModels
我想知道是否有用,甚至是很好的做法,用元組替換這些DTO中的很多元素,並將其用作將一堆物體轉移到我的視圖中的方法。
您認爲如何?這是元組的正確用法,還是我在這裏不受歡迎?
通常,視圖模型具有與其相關的元數據,其中允許您執行驗證並與編輯器/顯示模板集成。元組似乎不合適。另一個缺點是他們不太清楚視圖模型中每個屬性的用途(Model.Item1
,Model.Item2
,...,除了原始開發人員之外沒有其他人能夠理解這一點,並且如果他在幾天之後像我一樣即使他無法理解)。
一個我用一個元組看到的問題是,在你的看法:
inherits="ViewPage<Tuple<Model1, Model2>>"
...等,當你使用這些模型,你必須訪問它們爲:
Model.Item1,
Model.Item2
...這不像使用漂亮的強類型視圖模型那麼清晰。
在C#7中,您現在可以命名這些項目 - 下面的代碼幾乎是一個免費的映射器,我認爲它可以替代不需要任何附加到它們的行爲的DTO。
public (string first, string last, int age) GetTuple()
{
return ("John", "Connor", 1);
}
感謝你們兩位(@Darin和@Mathew Abbott)的回答。很有幫助。我不得不選擇一個作爲接受,我去了這個,因爲它有一些額外的信息。儘管歡呼,但兩者都很有幫助。 – 2010-07-06 22:07:59
當我使用Tuple而不是ViewModel時,在視圖中我使用具有邏輯名稱的局部變量並將它們設置爲Model.Item1,... – Matus 2013-06-12 14:32:05