本专栏基于 Silverlight 2 的 Beta 2 版本。文中的所有信息均有可能发生变更。
目录
示例应用程序
跨域通信
Silverlight 客户端
绑定产品列表
异步通信
产品详细信息和绑定模式
更改事件
结束语
毋庸置疑,Silverlight 2 使得利用大量图形处理技术构建丰富 Internet 应用程序 (RIA) 变得非常容易。但另一方面,Silverlight 2 可以轻松构建相当专业的业务线 (LOB) 应用程序也是不争的事实。Silverlight 2 支持已启用了 Windows Presentation Foundation (WPF) 的功能强大且基于 XAML 的数据绑定子集。Silverlight 2 中的 XAML 绑定标记扩展简化了将实体绑定到 Silverlight 控件的过程。由于它们完全在客户端计算机上运行,因此 Silverlight 应用程序与通过服务器管理的实体是相互隔离的。这样一来,那些通过 RSS、具象状态传输 (REST) 以及 Windows Communication Foundation (WCF) 等技术实现的基于服务的通信必须是可供使用的。幸运的是,Silverlight 2 支持与这些技术和其他通信途径的交互,这使得 Silverlight 应用程序可以与后端 LOB 应用程序无缝交互。
我将演示如何构建 Silverlight 2 UI,以使其通过与 WCF 的通信实现与业务实体和数据库的交互。对于业务逻辑、实体模型和数据映射代码,任何表现层都可以使用它们。我会创建将由 Silverlight 2 应用程序使用的 WCF 服务,并建立托管 WCF 服务的服务器以允许跨域调用。请注意,您可以从《MSDN 杂志》网站下载这些示例。
示例应用程序
在开始编写代码之前,我们先深入了解一下此示例。图 1 呈现的是完整的应用程序,其中显示了从 Northwind 数据库检索到的产品列表。从 ListBox 中选择了某个产品后,该产品将被绑定到页面下半部分的控件上。当用户通过 CheckBox 和 TextBox 控件编辑产品并单击“Save”(保存)按钮时,产品信息会随即通过 WCF 发送到数据库中。单击“Cancel”(取消)按钮可通过 WCF 从服务器获得最新产品列表,同时更新 ListBox 及其绑定。
图 1 示例 Silverlight 应用程序