最近正在开发一个项目,需要应用到Silverlight以及数据库。在正式开工之前需要掌握将数据从服务端送到客户端的技术,我们采用建立WCF服务的方法。
“做中学”是最好的学习方法,真正实践之后学习者将会有更多的自信和把握,这种感觉将激励他更好的走下去,这也就是“Hello World”的意义之一。
本文讲述如何一步一步搭建,完成借助WCF建立起Silverlight客户端和服务端的信息传输通道。
这里的解决方案使用Visual Studio 10,.Net Framework 4.0, Silverlight 4.0
1.建立名为DataHighway的Silverlight Application

下图中,Project DataHighway是客户端,Project DataHighway.Web是服务端。

2、新建两个项目。
创建名为DataHighway.Client的Silverlight Class Library,它是配合用户端的。
创建名为DataHighway.Server的Class Library,它是配合服务端的。

为两个新建项目设置统一的命名空间

3、我们设计在客户端和服务端可以传输一个类,里面装着一个人的基本信息。
在DataHighway.Client增加一个类,名为Person,在DataHighway.Client中生成Person.cs文件。
这个类要由客户端和服务端共享,而服务端并不支持System.Windows类库,所以在Person.cs中删除其System.Windows系列的引用。创建Person 类如下
1 using System;
2 using System.Net;
3
4 namespace DataHighway.Classes
5 {
6 public class Person
7 {
8 public string Name { get; set; }
9 public int Age;
10 public string School { get; set; }
11 public string Major { get; set; }
12 }
13 }
4、在DataHighway.Server项目中,添加Person.cs类的链接
右键DataHighway.Server项目,选择Add-> Existing Item,找到DataHighway.Client文件夹中的Person.cs文件,选择Add As Link

5、在服务端添加WCF服务
在DataHighway.Web项目中添加名为PersonService.svc的Silverlight-enabled WCF Service
如下图电脑开机信息各是什么?

6.在项目DataHighway.Web中添加到DataHighway.Server的引用(Add Reference)
如下图所示

7. 创建WCF函数,返回Person类Java的appendReplacement用法指南

在PersonService.svc.cs中修改代码
首先添加引用命名空间
using DataHighway.Classes;
然后修改PersonService.svc.cs代码如下:
1 using System;
2 using System.Linq;
3 using System.Runtime.Serialization;
4 using System.ServiceModel;
5 using System.ServiceModel.Activation;
6 using DataHighway.Classes;
7
8 namespace DataHighway.Web
9 {
10 [ServiceContract(Namespace = "")]
11 [SilverlightFaultBehavior]
12 [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
13 public class PersonService
14 {
15 [OperationContract]
16 public Person GetPerson()
17 {
18 return new Person()
19 {
20 Name = "Jun Tang",
21 Age = 20,
22 School = "University of Science and Technology of China",
23 Major = "Computer Science"
24 };
25 }
26 }
27 }
8.在客户端添加WCF服务引用
将PersonService.svc设置为Start Page,按F5进入Debug模式,记下PersonService.svc的地址
http://localhost:25688/PersonService.svc
右键DataHighway工程,添加服务引用(Add Service Reference),将刚才保存的地址复制进去

单击Advanced,确认Reuse types in all referenced assemblies,如下图

9.设计UI界面
使之能够明了的现实Person的各个属性
10.在客户端使用WCF服务
在客户端中添加引用(Add Reference)

在
MainPage.xaml.cs中添加引用
using DataHighway.Classes;
using DataHighway.PersonServices;
然后在MainPage.xaml.cs修改代码
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Net;
5 using System.Windows;
6 using System.Windows.Controls;
7 using System.Windows.Documents;
8 using System.Windows.Input;
9 using System.Windows.Media;
10 using System.Windows.Media.Animation;
11 using System.Windows.Shapes;
12 using DataHighway.Classes;
13 using DataHighway.PersonServices;
14
15 namespace DataHighway
16 {
17 public partial class MainPage : UserControl
18 {
19 public MainPage()
20 {
21 InitializeComponent();
22 ClientTest();
23 }
24 void ClientTest()
25 {
26 var client = new PersonServiceClient();
27 client.GetPersonCompleted += (sender, ea) =>
28 {
29 textBoxName.Text = ea.Result.Name;
30 textBoxAge.Text = ea.Result.Age.ToString();
31 textBoxSchool.Text = ea.Result.School;
32 textBoxMajor.Text = ea.Result.Major;
33 };
34 client.GetPersonAsync();
35 }
36
37 }
38 }
11、将DataHighwayTestPage.html设置为Start Page,运行程序

上图中是在客户端显示,而Jun Tang同学的个人信息却是从服务端通过WCF服务传过来的。
目标圆满达成!
分享到:
相关推荐
在这个实例中,WCF将作为桥梁,连接Silverlight客户端和后端数据库。 然后,LINQ是.NET语言的一个特性,它允许开发者使用一致的查询语法对各种数据源(如数据库、XML文档、对象集合等)进行查询。在本实例中,LINQ...
在本实例中,我们将使用WCF作为通信桥梁,连接Silverlight客户端和SQL Server数据库。SQL Server是微软的一款关系型数据库管理系统,具有高性能、高可用性和安全性,是存储和管理业务数据的理想选择。 步骤一:创建...
在CODESIMTH的模板中,开发者可以快速生成基础的项目结构,包括Silverlight客户端项目、WCF服务接口定义、服务实现以及与SQL Server数据库相关的实体类和数据访问代码。这极大地提高了开发效率,减少了重复工作,...
WCF RIA Services允许开发人员在服务器端定义业务逻辑和服务操作,并自动在Silverlight客户端生成对应的调用代码,减少了手动编码的工作量,提高了开发效率。 **核心概念** 1. **服务操作(Service Operations)**...
4. **Silverlight客户端调用**: 在Silverlight应用中,需要添加对WCF服务的引用,这通常通过添加服务引用来完成。然后,可以创建服务代理对象并调用其方法来执行数据库操作。由于跨域限制,可能需要配置客户端的跨域...
2. **配置服务**: 开发者需要在服务器端配置WCF服务,定义数据合同和服务合同,以便与Silverlight客户端进行交互。 3. **生成代理类**: 客户端通过使用“Add Service Reference”生成WCF服务的代理类,使得在...
- 控制台应用程序的开发,以及如何与Silverlight客户端和服务端协同工作。 通过分析和研究这个实例,开发者可以掌握Silverlight中的高级特性,并了解如何将它们应用到实际项目中,提升自己的开发技能。
5. **WCF RIA Services**:在Silverlight 2中,可以使用WCF RIA Services简化客户端和服务端之间的通信,特别是处理数据操作。通过RIA Services,可以直接在Silverlight中调用服务器端的业务逻辑和数据服务。 6. **...
- RIADataGrid:这可能是Silverlight客户端项目的目录,包含了XAML和C#代码,实现了MVVM模式的用户界面和业务逻辑。 此压缩包提供的"silverlight4+mvvm+RIAService"学习Demo,涵盖了Silverlight开发的核心技术,...
WCF(Windows Communication Foundation)服务是常用的通信桥梁,它允许客户端(如Silverlight应用)和服务器端进行数据交换。 在“WCFServiceDataBinding”这个压缩包文件中,我们可以预期找到一个使用WCF服务进行...
在服务端,我们需要创建一个Web Service,如EmployeesInfoWebService.asmx,作为Silverlight客户端与数据库之间的桥梁。这个Web Service通常会包含各种方法,如获取所有员工信息的方法(GetEmployeesInfo),该方法...
在这个示例中,WCF作为桥梁,负责在Silverlight客户端与后端数据库之间传递数据。它支持多种传输协议和数据编码,确保跨平台通信的灵活性。 Windows Identity Foundation (WIF) 是身份管理和认证的框架,为应用程序...
创建项目时,可以通过 Visual Studio 的模板来快速搭建基础结构,包括 Silverlight 客户端、WCF 服务以及数据库访问层等组成部分。 **转换现有 Web 应用:** 对于已经存在的 Web 应用程序,可以利用 RIA Services ...
在Silverlight 3中,我们可以利用WCF创建服务端接口,使客户端(Silverlight应用)能够通过SOAP或RESTful方式与服务器进行通信,实现数据交换和远程调用。 **XAML(Extensible Application Markup Language)**是...