Silverlight 2.0 数据传输之愚见

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工程中所有文件的用途和联系.让大家能对系统自动创建的一堆文件有个了解.

Tag标签: Silverlight
0
0
0
(请您对文章做出评价)
« 上一篇:Demo1.2版本的两个BUG!请各位注意!
» 下一篇:Silverlight 工程文件解析

<script src="http://partner.googleadservices.com/gampad/google_service.js" type="text/javascript"></script><script type="text/javascript"> try { GS_googleAddAdSenseService(&quot;ca-pub-4210569241504288&quot;); GS_googleEnableAllServices(); } catch (e) { } </script><script src="http://partner.googleadservices.com/gampad/google_ads.js"></script><script type="text/javascript"> try { GA_googleAddSlot(&quot;ca-pub-4210569241504288&quot;, &quot;cnblogs_blogpost_body&quot;); GA_googleAddSlot(&quot;ca-pub-4210569241504288&quot;, &quot;cnblogs_commentbox_up&quot;); GA_googleAddSlot(&quot;ca-pub-4210569241504288&quot;, &quot;cnblogs_blogpost_bottom&quot;); } catch (e) { } </script><script type="text/javascript"> try { GA_googleFetchAds(); } catch (e) { } </script><script type="text/javascript"> var blog_ad_has_shown = false; </script>

posted on 2008-11-23 20:07 胡云锋 阅读(796) 评论(5)  编辑 收藏 网摘 所属分类: Silverlight

Silverlight 2.0 数据传输之愚见

<!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"> <rdf:Description rdf:about="http://www.cnblogs.com/3833069hu/archive/2008/11/23/1339495.html" dc:identifier="http://www.cnblogs.com/3833069hu/archive/2008/11/23/1339495.html" dc:title="" trackback:ping="http://www.cnblogs.com/3833069hu/services/trackbacks/1339495.aspx" /> </rdf:RDF> -->

<!-- done-->

 

1401517
  回复   引用     
#1楼 2008-11-23 23:20 | 管理员[未注册用户]
晕!博主新来的吧?

博客园不是幼儿园,不是什么文章都能放到首页上的

此类入门级文章请撤下首页


  回复   引用   查看     
#2楼 2008-11-23 23:26 | LanceZhang       
怎么链接全都是Terrylee的文章
  回复   引用   查看     
#3楼 [楼主 ] 2008-11-23 23:28 | 胡云锋       
回LanceZhang:
请注意那里的小标题,"网上介绍的...."

  回复   引用   查看     
#4楼 [楼主 ] 2008-11-23 23:29 | 胡云锋       
麻烦各位看我的文章时,注意我的意图,我不是重新讲怎么用它们来传输数据,而是讲它们的作用!
  回复   引用     
#5楼 2008-12-14 13:21 | grt[未注册用户]

我在运行你的silverlight2例子时出现如下页面脚本错误提示:
Sys.InvlidOperationException:
ImageError error #4001
in control 'Xaml1' :AG_E_NETWORK_ERROR
这是什么原因?怎么解决?