文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>[Silverlight入门系列]使用WCF RIA Services Class Library类库(进阶)

[Silverlight入门系列]使用WCF RIA Services Class Library类库(进阶)

时间:2011-05-12  来源:Mainz

本文系Mainz的博客原创(http://www.cnblogs.com/mainz/),若您在银光中国(SilverlightChina)或其它网站看到本文,请注意是转载,文中很多链接已经丢失。言归正传,上一篇说到《如何使用WCF Ria Service Class Library》,是的,使用 WCF RIA Services Class Library可以创建可重用的中间层和表示层逻辑。但是,使用 RIA Services 类库比创建 RIA Services 解决方案复杂。本文是上文的进阶。搜了一下网上的,关于WCF RIA Services Class Library类库的文章都是很老的,比如system.windows.ria 程序集早就没有了,注意,本文是最新的基于Silverlight 4.0正式版,VS2010和RiaService SDK!废话不说,开始Silverlight和WCF Ria Service Class Library进阶!

A. 为什么要用WCF Ria Service Class Library类库?

为什么?直接写在SilverlightApplication1.Web中岂不是很直接?用类库当然是为了分离,为了重用,代码可维护性和可读性也好。

其它的Silverlight项目如何引用这个类库?同一项目内直接引用两个项目即可,其它独立的项目可以直接引用WCF Ria Service,地址是这个:

这个地址可以在RIAServicesLibrary1的隐藏的生成代码Generated_Code\*.Web.g.cs里面找到

 

然后调用这个WCF Service需要加crossdomainpolicy.xml允许跨域

B. 添加的WCF Ria Service Class Library类库为什么有两个项目

添加新的WCF Ria Service Class Library项目会自动生成两个项目,一个是客户端silverlight项目,一个是服务端项目。分别是干什么的?

  • RIAServicesLibrary1:这个项目是客户端的,会和下面这个项目共享代码。看看隐藏的生成代码Generated_Code\*.Web.g.cs,这是.NET framework生成的客户端运行的服务器端代码,也就是将服务器端的服务,转换为能在客户端执行的代码,属于WCF客户端代理,中间代码,开发人员不能手动修改,整个编译过程由Visual Studio控制。大家知道,Silverlight 是一种客户端执行的环境,它无法像 ASP.NET 直接与后端数据来源进行沟通,数据访问全都必须跨越网络,如此一来,我们就必须建立多层式架构才能让 Silverlight 顺利地访问远程数据来源,但这不是简单的事。所以WCF Ria Service通过自动生成的共享代码、自动生成客户端WCF代理、客户端模型映射等方便了大家的使用。通过WCF Ria Service,您就可以在Silverlight客户端像 ASP.NET 直接与后端数据来源进行沟通了。
  • RIAServicesLibrary1.Web:这个项目是服务端的,一般放领域对象和服务(Domain Services),访问后台Entity Framework数据模型、数据访问和持久等。
  • 个人认为,微软的这种代码自动生成的解决方案固然方便,但存在一定程序的耦合,不利于大型项目的维护,例如将来修改服务端会导致客户端的代码重新生成,添加删除服务的引用也是一个问题,希望在Silverlight5里面考虑新的方案。

C. 和Silverlight, MVVM, Entity Framework的架构关系

一般来说WCF Ria Service会和Silverlight MVVM和EF(Entity Framework)搭配使用,他们之间的关系和架构图如下:

返回上一篇:《如何使用WCF Ria Service Class Library》

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载