zoukankan      html  css  js  c++  java
  • Silverlight使用RESTful Service

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

                                          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

  • 相关阅读:
    计算数组的逆序对个数
    处理类型(typedef,uisng,auto,decltype)
    constexpr与常量表达式(c++11标准)
    const的限定
    void*类型的指针
    linux终端拖动鼠标总是产生ctrl+c
    Linux hrtimer分析(2)
    Linux hrtimer分析(一)
    Alarm(硬件时钟) init
    第十一章 Android 内核驱动——Alarm
  • 原文地址:https://www.cnblogs.com/626498301/p/2574853.html
Copyright © 2011-2022 走看看