2009-08-07 94 views
2

我不理解我的模型如何成为WCF服务。当它的一个Astoria分部类驻留在客户端上允许远程调用来执行持久性调用时,它是有意义的,但是WCF服务没有可用于更新数据存储的模型字段的属性。MVVM和WCF - 查看模型和模型的关系

即使我能分解出一个模型/域对象类的接口转换成一个单独的程序,Silverlight项目不会让我补充一点,作为参考。

我的ViewModel应该如何包含我的WCF调用?最终,WCF将调用在Linq-to-Sql中实现的存储库程序集,但显然这些实体不是我在这种情况下的模型,我的WCF类是?

感谢您的任何指导。

另外,我看了帖子给一个参照系:

  1. http://development-guides.silverbaylabs.org/Video/Silverlight-Prism#videolocation_0
  2. http://blogs.conchango.com/davidwynne/archive/2008/12/15/silverlight-and-the-view-viewmodel-pattern.aspx
  3. http://msdn.microsoft.com/en-us/magazine/dd458800.aspx

回答

5

当您创建一个服务引用到WCF服务Silverlight项目也为该服务生成一个接口,这与上面列出的文章中的David Wynns IFeedService类似。服务引用还将生成代表服务使用的对象(产品,类别等)的代理对象。

需要注意的重要一点是,服务接口是不是模型,而是你如何访问模式。回到David的例子中,他的ViewModel公开了一个项目列表(他的模型),这个列表使用该服务来检索。

如果你正在寻找的客户端和服务器我reccomend寻找到像RIA服务之间共享代码。如果这不适合你,那么我会看一些关于在服务器和客户端之间共享代码的文章(通过添加为链接)。

希望这会有所帮助