Silverlight使用RESTful Service

本文深入探讨了Silverlight与WCF结合RESTFulService的实现过程,包括如何创建RESTFulService,客户端引用与配置,以及Caliburn.Micro在MVVM模式下的应用。此外,文章还对比了Silverlight的现状与前景,并提出了跨平台技术的可通用性和价值。最后提供了源码下载,以便读者实践和深入理解。

            本篇主要文章涉及到几个技术点:

                                      1.RESTful Service

                                      2.Caliburn.Micro

                                      3.Reactive Extension                       

                                      4.MEF

                                      5.Json.net

            限于篇幅,本文不会对每个框架的来龙去脉讲的很清楚,也无法对每一个技术点详细介绍,文章末尾有源码供参考。

            Silverlight与WCF可以通过多种协议方式进行交互,比如basichttp,net.tcp,在某些情形下,我们可能对数据的要求不需像SOAP格式,所以采用RESTFul Service的考量在于数据传输非常的干净.

           下面2步解释如何创建一个RESTFul Service:

           建立一个Silverlight-enabled WCF Servcie文件,这里命名为BookService,这里只写了一个Get接口

         image      

         给终结点添加webhttp的行为,需要手动修改Web.config的配置

        image

        在浏览器测试好是否配置正确:

                                           image        注意,因为Google Chrome对Josn的数据进行了处理,所以可以直接呈现Json格式的数据

         image

        之所以数据序列化采用的Json.net ,参考官网对其一个性能比较:     

                      image

        那么对前文已经处理好服务端了,客户端引用后:由于个人习惯MVVM的模式,所以用了Caliburn.Mrico

        image

        通过Nuget安装该组件后,会自动引入框架文件,无须费心,只需要在App.xaml中加入Caliburn.Mirco的AppBootstrapper,Caliburn.Mirco默认使用MEF作为容器.

      image       删除App.xaml.cs中不相关的代码后,就完成了对Caliburn.Mirco配置

       在Viewmodel中实现对服务端的数据获取:

       image

   这里使用Reactive的方式进行异步编程的,传统的方式应该是这样

image 看看View的XAML是如何组织的:

 image

   Caliburn.Mrico提供了一种命名机制,比如Button的Name为Read,它会在相对应的ViewModel中寻找Read().

 

   其实本文还有一个目的,最近随着WinRT的推出,似乎各方对Silverlight的前景都不看好,其实若深入了解本文所涉及的Xaml,Caliburn.Mrico,WCF,Json,Rx,Mef,这些都是我是在

做Silverlight的过程中接触这些的,这些在.NET平台上都是可通用的技术或者框架,甚至转至WinRT的成本更低,万变不离其宗,抱怨的越多,说明越没有底气,从个人平日对国内外技术社区的

了解来看,在国内许多人还在喋喋不休的抱怨技术更新太快时,国外的同行已经在思考如何怎样做一个好产品,好应用,这就是所谓的差距。

 

 

   代码下载:REST

转载于:https://www.cnblogs.com/626498301/archive/2012/07/03/2574853.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值