一直搞B/S开发,现在发现好多时候在通讯方面编程起来不方便,如果可以固定双方的通讯数据结构就好了,比方说服务端反馈数据总是一种固定的数据结构,这样客户端编程时就不用去管服务端的数据组成
又比如客户端发送请求,统一是一种数据结构,那么服务器编程时因为客户端的结构固定,也会轻松很多
不知道我描述的清不清楚,大家来讨论一下,分享一下经验,尤其是socked编程有经验的同志比方现在比较流行的AMF,XML等

解决方案 »

  1.   

    固定和不固定是相对的。如果你用xml,不妨直接使用web service以及soap协议。
      

  2.   

    没有什么特别固定的。最为固定的结论,就是:潮流总是在变。例如十二年前是web service/soap,而现在是直接使用json甚至bson进行轻量级的交互。
      

  3.   

    1.请求资源:
      目前比较流行的就是REST了,比如说:
      WCF on RESTful(也叫做:WCF的web编程模型)
      随便贴个MSDN的老文章
      http://msdn.microsoft.com/zh-cn/magazine/dd315413.aspx
      楼主也可以搜一搜百科,但是里面有些解释我并不认同,所以就不贴出链接了,
      
    2.传送数据:
      比较流行的是:JSON,XML
      

  4.   

    可能我描述的不够清晰,大家可以这么理解一下,就是是否需要在发送端对要发出的数据做序列化,然后在接收端进行反序列化,这样的好处就是确保了数据传输的类型准确性,在输入校验方面有很大的帮助,否则不论客户端还是服务器都要对接收的数据做类型转换,经常会出错,而现在我如果只需要一个序列化工具就可以将这些事情从开发中分离,能大大加快开发(二次开发)的效率
    如果两端(客户端和服务端)间的数据交互都是对象级别的,发送时序列化,接收时反序列化,那么开发起来只要定义好两端的DTO对象,就可以了,不需要考虑对方到底传来的数据是什么,该怎么转化为什么类型,不用自己写排错处理等等,现在有好些人在做这些东西,当然更多的是已经做好的,但这个难点在于跨平台,应为服务端和客户端很可能使用了不同的技术或语言,序列化的对象怎么能够跨平台地实现无缝的反序列化,是一个很头痛的问题比较流行的是xml,可问题是xml实在是在序列化方面有欠缺,比如ILIst不能够自行序列化,而且xml的数据压缩率很低下
      

  5.   

    不是都说了吗,JSON或者XML比较常用的
      

  6.   

    asp.net同时在客户端和服务器端支持json序列化和反序列化
    C#对象:System.Web.Script.Serialization.JavaScriptSerializer
    参见:http://msdn.microsoft.com/zh-cn/library/system.web.script.serialization.javascriptserializer.aspx
    JavaScript对象:Sys.Serialization.JavaScriptSerializer  
    参见:http://msdn.microsoft.com/zh-cn/library/bb310857.aspx