结合使用ViewModel(WPF/Silverlight)和强类型ViewData(ASp.NET MVC)?

结合使用ViewModel(WPF/Silverlight)和强类型ViewData(ASp.NET MVC)?,asp.net,wpf,asp.net-mvc,viewmodel,viewdata,Asp.net,Wpf,Asp.net Mvc,Viewmodel,Viewdata,注意:在下面的文本中,我将对WPF/Silverlight中的ViewModel和ASP.NETMVC中的强类型ViewData使用术语“ViewModel” 我想为同一个项目创建ASP.Net MVC和WPF/Silverlight客户端(换句话说,针对相同的数据模型),我应该为每种客户端技术创建一个通用的ViewModel项目还是一个单独的ViewModel 我想相信一个通用的ViewModel是正确的做法,但是由于需要创建依赖属性或JSON字符串,因此它似乎不兼容 也许另一个解决方案是将V

注意:在下面的文本中,我将对WPF/Silverlight中的ViewModel和ASP.NETMVC中的强类型ViewData使用术语“ViewModel”

我想为同一个项目创建ASP.Net MVC和WPF/Silverlight客户端(换句话说,针对相同的数据模型),我应该为每种客户端技术创建一个通用的ViewModel项目还是一个单独的ViewModel

我想相信一个通用的ViewModel是正确的做法,但是由于需要创建依赖属性或JSON字符串,因此它似乎不兼容

也许另一个解决方案是将ViewModel的公共部分放入DataModel层


我将非常感谢您提供的任何帮助,因为Silverlight项目不能引用非Silverlight项目的限制(由Visual Studio强制实施),所以您需要单独的ViewModels(尽管有一到两个已记录在案的解决方法)


通过将物理类放在一个项目中,然后将现有项添加到第二个项目中(导航到原始类,然后选择原始类,然后单击“添加为链接”),可以在两个项目之间共享代码。小提示:如果您认为类将以这种方式共享,请尽可能保持名称空间的中立性,这样可以避免进一步的混乱和/或重构。

由于Silverlight项目不能引用非Silverlight项目的限制(由Visual Studio施加),您将需要单独的视图模型(尽管有一两个记录在案的黑客可以解决这个问题)


通过将物理类放在一个项目中,然后将现有项添加到第二个项目中,可以在两个项目之间共享代码(导航到原始类,然后选择原始类,然后单击“添加为链接”).小提示:如果您认为类将以这种方式共享,请尽可能保持名称空间的中立性,这样可以避免进一步的混乱和/或重构。

谢谢您的回答。但您谈论的是另一个问题。可能我不应该提及Silverlight,而只是一些用于视图模型的代码重用技术NET MVC和WPF。感谢您的回复。但您谈论的是另一个问题。我可能不应该提及Silverlight,只是ASP.NET MVC和WPF之间的ViewModel的一些代码重用技术。