我试图了解Silverlight中的MVVM - 主要是在我如何将其融入现有架构的背景下 - 或者更确切地说我如何将现有架构合并到其中。
我目前拥有的架构基本上是传统的n层,顶层有服务层。我在WCF中有一个服务层,一个用于业务逻辑的程序集和一个包含业务实体(实体框架)的程序集。
WCF中的服务层非常简单,只是暴露了业务逻辑层,需要进行一些更改才能使其与Silverlight更兼容。业务实体程序集由服务层和逻辑层引用,因此它们都使用相同的实体,而使用该服务的任何内容也都知道这些实体。
一切都是好的。
随之而来的是Silverlight和MVVM。 View部分很简单,就是所有ui的东西。 ViewModel和Model是我感兴趣的地方。在我看来,Model是我的业务实体程序集,ViewModel是我的业务逻辑程序集。
如果Silverlight使用我的WCF服务,那么这个和耦合的业务逻辑层肯定是我的ViewModel。现在我有两个问题; 1 / ViewModel对象需要存在于我的Silverlight项目中。 2 / WCF服务公开的类型(业务实体)与Silverlight不兼容,因为程序集不适用于Silverlight。当我尝试添加程序集作为参考时,提示此效果的异常。
那么......我如何使用我的业务实体作为我的模型?另外 - 如何在我的ViewModel中使用其他.Net类型,如System.ServiceProcess.ServiceController?