Simple is Best

思考 记录 ......

 

关于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来生成测试数据从而做单元测试。

  说了这么些乱七八糟的想法,其实是因为我现在很困惑,这么一种做法是否有点闭门造车,重复发明轮子并且吃力不讨好?

posted on 2010-12-23 11:25  Simple is best  阅读(1046)  评论(6编辑  收藏  举报

导航