Silverlight 2.0 数据传输之愚见.

看到网上有很多高手写的教程,里面只提到了Silverlight中数据传输的几种方式,却没有介绍每种方式各自的用途的优缺点,

对于我这样的初学者来说,学的也是举步维艰,只好去网上翻了各种各样的资料,最后总结一些自己的愚见,如果高手看见了,希望能不吝啬的斧正我的错误观点.

而各位网友如果觉得这篇博文对于你有用,也请能顶一顶或者发表一些自己的看法,权当激励我这个新人了.

------------------------------------------------------------------------------------

网上介绍的Silverlight 2.0的几种数据传输方式(带链接):

1.数据与通信之WebClient

2.数据与通信之WebRequest

3.数据与通信之WCF

4.数据与通信之ASMX

5.数据与通信之JSON

6.数据与通信之ADO.NET Data Services

 

-------------------------------------------------------------------------------------

1:WebClient

在Silverlight 2.0中用来替代Downloader对象的一个新对象.在网上的教程里用它来实现了数据的传递,但它真实的用途是被用来上传和下载数据(包括流媒体),

另外它支持的一个激动人心的功能,就是不仅是异步传输,并且支持进程级的分离操作.

简言之,就是多线程.

可想而知,当使用WebClient对象下载流媒体或是其他大型文件时,如果不分离出线程供下载进程单独使用,那么UI将变成一种似乎无法响应的状态.

WebClient对象有3个常用的事件,即DownloadStringCompleted、OpenReadCompleted、和DownloadProgressChanged.

DownloadStringCompleted(用于下载文本信息)在Silverlight的事件中委托中注册,一旦这个事件被触发,那么就表示当前的下载内容已完成.

OpenReadCompleted(用于下载流数据,即资源流)这个对象同上.

DownloadProgressChanged用于监视下载进度.

另外提一下,用于分离新进程的类是BackgroundWorker类.以后我会上教程.

 

2:WebRequest

目前我对这个对象知之甚少,只在 苏鹏(限于篇幅,大家可以百度一下,一个牛人!) 发布的(Silverlight探秘系列课程(13):网络通信与开发示例)中听到他简要的介绍.

但是在Silverlight中它不支持跨域访问,并且需要ashx文件(一般处理程序)作为桥接.所以我暂时发表不了见解.如果有了解的人,希望能给我发E-mail做点介绍.不胜感激.

 

3:WCF

目前我就是使用这个服务来提供数据的传输了(但是似乎我没有用对地方),因为WCF是一种发布和提供服务的"方法",并不是说专门用来提供数据,简而言之,就是拿它和后面

的ADO.NET Data Services作对比的话,WCF是提供的服务的服务,而ADO.NET Data Services是提供数据的服务.我想以后我会摆正自己的态度,并且对它们做一个更深入的

了解.

关于WCF的使用方式,建议大家能做一个系统的学习,而不是看一些速成的教程,因为它涉及到的有很多方方面面,比如安全等等.

如果说道用途的话,我觉得,它能提供Silverlight中用于验证用户身份的服务吧.(当然了,还有其他更多更好的用途,但是互联网的发展,就是向"软件即服务"靠拢,以后编程就不是面向对象了,而是面向服务,WCF可以说是必学的科目)比如用户通过WCF提交用户名和密码给服务器,服务器验证后返回布尔值.并且注册此客户的Session.

当然了,只是愚见而已,因为对于WCF我还只能算是了解皮毛.如果有高手发现我犯了常识性错误,忘请指教!!!

 

4:ASMX

很遗憾的告诉大家,我至今都没有弄懂ASMX的意思和在Silverlight中的用途,对不住大家了!

 

5:JSON

JSON是Ajax与服务器交互时使用的数据方式,它比XML更简洁,并且更灵活.因此同样的数据,JSON比XML小得多.因此传输速度也快的多,我想关于JSON,大家应该也得有个了解,

但是我能告诉大家的是,JSON并不是一种数据传输方式,而是一种数据传输格式,它可以通过多种方式传送到前端,比如WCF.而Silverlight 2.0中也提供了对于解析和反解析JSON的支持.

 

6:ADO.NET Data Services

正如前面说说的,ADO.NET Data Services是一种提供数据的服务,即把数据服务化,本来我想做一个关于ADO.NET Data Services数据传输的Demo,但是碰到了一些我无法理解问题,

所以我对大家的阐述也就只能到此为止了.下一次我将讲述Silverlight工程中所有文件的用途和联系.让大家能对系统自动创建的一堆文件有个了解.

posted @ 2008-11-23 20:07  胡云锋  阅读(1912)  评论(5编辑  收藏  举报