zoukankan      html  css  js  c++  java
  • 关于Silverlight程序与后端交互的困惑

    开发silverlight,与服务端交互是很基础但又很重要的部分,我想聊聊自己目前的思路,请各位尽情批判,呵呵。
      首先说应用场合,我要做的是企业应用软件,就是那种有大量数据表单,主要开发任务都在于各种表单的显示、更改、查询上,并且数据库结构不稳定,时不时要修改些字段什么的系统。
      MS比较推荐的前后端交互方式是RIA service . 然后是 wcf 。
    先说ria service ,这东西挺复杂,并且一直在快速改进中,这也意味着使用它要面临着不断更新的风险。最重要的是,它好像和EF绑定得挺紧密的,而我现在并不希望将已经熟悉 的数据库操作代码更换为EF。而且,在EF中要是数据结构改动,也费不少劲重新生成。(对于EF我不熟,以上的说法是浮光掠影地看了些资料后的感想)
      再说WCF,相对来说wcf给予了更大的空间和灵活性(当然也意味着更多功能需要自己实现),但我觉得,如果不考虑wcf在多种客户端重用的情况下,wcf也太笨重了。
      考虑到这里,我有一个设想,抛开那些MS推荐的办法,直接用webclient,httpclient之类的方法来打造前后端交互,似乎更有利于开发。
      在silverlight程序中,建立一个使用httpclient的通讯类,由它来负责收发数据,而在服务器端,使用handle(*.ashx)来做服务接口。中间传输的数据,用json编码即可。
      再进一步,构建一个通信的消息结构,比如哪些是“动作”,哪些是“数据”,并且可以传输“元数据”来告诉silverlight程序接受的数据结构是什么,这样就可以构建“自定义表单”。

      这么一种通信方法,还有一个好处,就是调试和测试方便,可以用firebug或fiddle来监控传输数据的内容,可以修改handle来生成测试数据从而做单元测试。

      说了这么些乱七八糟的想法,其实是因为我现在很困惑,这么一种做法是否有点闭门造车,重复发明轮子并且吃力不讨好?
  • 相关阅读:
    原生JS中apply()方法的一个值得注意的用法
    关于“float”的一次探索--遇到了一个span元素可以设置宽高引发的思考
    git常用命令
    react 项目全家桶构件流程
    vue回顶部 组件 可以直接使用
    vscode左边侧边栏字体的大小
    小程序的福音,
    Android实战技巧:Dialog (转)
    给Android 应用开发者的十个建议(转)
    多线程与异步的区别(转)
  • 原文地址:https://www.cnblogs.com/honghuamin/p/1914604.html
Copyright © 2011-2022 走看看