当前位置: 首页 > web开发 > Silverlight > 正文

Silverlight入门:第三部分 - 数据访问

时间:2010-12-10 博客园 焦炜

现在我们已经有了一个基础布局,同时也在上面放了一些控件,接下来让我 们开始获取数据。因为我们想要搜索Twitter上的内容,所以我们需要充分使用 他们提供的Web服务API。在继续之前,我要先说明在本次的应用程序中,我们不 会自己建立一个数据库或其它数据源,但是我要指出的是你有很多种方式可以通 过Silverlight访问数据。

数据访问选项

对于在Silverlight中访问数据,初学者的误解之一就是他们在Silverlight 中寻找ADO.NET类库。别找了,找不到的。记住,Silverlight是部署在互联网上 的客户端技术,你不能要求一个浏览器插件去直接访问你的数据库……除非你想 把数据库直接暴露在网络上。我们都知道绝对不能这么做。

所以比较可行的方法是在服务层上暴露数据。这也是Silverlight进行数据通 信的方式。这里有一些主要的访问手段:

* Web服务: SOAP, ASP.NET web services (ASMX), WCF services, POX, REST 终端

* 套接字: 网络套接字通信(Network Socket Communication)

* 文件: 通过Web请求访问静态内容

套接字

套接字可能是最先进的数据访问终端。你需要有一个套接字主机,并且在我 写这篇文章的时候,还需要通过指定的端口范围通信。如果这些你都可以接受, 那么这是非常有效且强大的数据访问方式。但如果你的应用程序是公开面向网络 的,那么我并不认为这种方式可以成为主流。就我的观点,这种方式更加通常被 用于商业应用。这里有一些套接字的资料:

* 软件开发工具包(SDK)文档

* 通过套接字访问数据 (Dan Wahlin, MVP) – 这是Silverlight2的资料, 但不会影响你理解概念

在决定使用它之前,你必须先真正理解你的部署方案,不要盲目地使用它。

文件访问

Silverlight可以与本地文件或网络文件进行交互。对于访问本地文件,虽然 应用程序无法直接访问文件系统,但是仍然可以通过OpenFileDialog和 SaveFileDialog来让用户自己保存数据流到本地,从而进行读写操作。

此外,你还可以通过Silverlight使用标准HTTP命令来读写网上的纯文本文件 以及XML文件信息。

你可能发现自己正是用这种方式来保存程序设置数据或者进行简单的数据访 问的。

Web服务(Web Services)

这是Silverlight访问数据的核心——通过服务层。Silverlight支持在VS中 使用我们熟悉的添加服务引用的方式来访问基础ASP.NET Web Services(ASMX)或 者基于WCF的服务,并且还将会为你生成强类型的代理代码。

另外,你还可以通过标准HTTP协议访问POX(Plain old XML)或基于REST的 终端。理解这些不同服务类型的应用场合,通常是开发人员学会了解自己的项目 最适合什么数据访问方式的最佳途径。

上面的第三项.NET RIA服务是一个新的框架,旨在使数据访问更加简单方便 。链接的视频将会为你介绍那个主题。如果你有一个与你的Silverlight应用程 序放在一起的数据库,那么如果想要让这个数据库为你的Silverlight应用程序 服务的话,.NET RIA服务是最好的方法。