2010-01-18 55 views
1

注意:在下面的文本中,我將使用術語「ViewModel」來表示WPF/Silverlight中的ViewModel和ASP.Net MVC中的強類型ViewData。組合ViewModel(WPF/Silverlight)和強類型的ViewData(ASp.NET MVC)?

我想爲同一個項目(換句話說,針對同一個DataModel)創建ASP.Net MVC和WPF/Silverlight客戶端,我應該爲每個客戶端技術創建一個公共的ViewModel項目還是獨立的ViewModel?

我想相信一個普通的ViewModel是正確的做法,但是需要創建相關屬性或JSON字符串使它看起來不兼容。

也許另一種解決方案是將ViewModel的公共部分放入DataModel層?

我會明白,將使我在正確的方向上沒有任何的幫助,感謝

回答

1

您需要因限制(由Visual Studio強加),一個Silverlight項目不能引用非Silverlight項目單獨的ViewModels (儘管有一兩個記錄的黑客可以解決這個問題)。

您可以在兩個項目之間共享代碼,方法是將物理類放在一個項目中,然後將現有項添加到第二個項目中(導航到然後選擇原始類,然後單擊「添加爲鏈接」)。小提示:如果您認爲將以這種方式分享課程,請儘可能保持名稱空間中立,以免混淆和/或重構。

+0

感謝您的回覆。但是你正在談論一個不同的問題。可能我不應該提到Silverlight,只是ASP.NET MVC和WPF之間ViewModel的一些代碼重用技術。 – 2010-01-19 17:49:12