`
star65225692
  • 浏览: 277270 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类

使用WCF建立起Silverlight客户端与服务端的桥梁

 
阅读更多

最近正在开发一个项目,需要应用到Silverlight以及数据库。在正式开工之前需要掌握将数据从服务端送到客户端的技术,我们采用建立WCF服务的方法。

“做中学”是最好的学习方法,真正实践之后学习者将会有更多的自信和把握,这种感觉将激励他更好的走下去,这也就是“Hello World”的意义之一。

本文讲述如何一步一步搭建,完成借助WCF建立起Silverlight客户端和服务端的信息传输通道。

这里的解决方案使用Visual Studio 10,.Net Framework 4.0, Silverlight 4.0

1.建立名为DataHighway的Silverlight Application

clip_image001

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

clip_image002

2、新建两个项目。

创建名为DataHighway.Client的Silverlight Class Library,它是配合用户端的。

创建名为DataHighway.Server的Class Library,它是配合服务端的。

clip_image003

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

clip_image005

clip_image007

 

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

clip_image008

5、在服务端添加WCF服务

在DataHighway.Web项目中添加名为PersonService.svc的Silverlight-enabled WCF Service

如下图电脑开机信息各是什么?

clip_image009

6.在项目DataHighway.Web中添加到DataHighway.Server的引用(Add Reference)

如下图所示

clip_image010

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

clip_image011

在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),将刚才保存的地址复制进去

clip_image012

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

clip_image013

9.设计UI界面

使之能够明了的现实Person的各个属性

10.在客户端使用WCF服务

在客户端中添加引用(Add Reference)

clip_image014

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,运行程序

clip_image015

上图中是在客户端显示,而Jun Tang同学的个人信息却是从服务端通过WCF服务传过来的。

目标圆满达成!

分享到:
评论

相关推荐

    silverlight+wcf+linq简单实例

    在这个实例中,WCF将作为桥梁,连接Silverlight客户端和后端数据库。 然后,LINQ是.NET语言的一个特性,它允许开发者使用一致的查询语法对各种数据源(如数据库、XML文档、对象集合等)进行查询。在本实例中,LINQ...

    sliverlight+wcf+sql简单实例

    在本实例中,我们将使用WCF作为通信桥梁,连接Silverlight客户端和SQL Server数据库。SQL Server是微软的一款关系型数据库管理系统,具有高性能、高可用性和安全性,是存储和管理业务数据的理想选择。 步骤一:创建...

    CODESIMTH 三层模板 (silverlight +WCF +SQL)

    在CODESIMTH的模板中,开发者可以快速生成基础的项目结构,包括Silverlight客户端项目、WCF服务接口定义、服务实现以及与SQL Server数据库相关的实体类和数据访问代码。这极大地提高了开发效率,减少了重复工作,...

    WCF RIA service 案例源码

    WCF RIA Services允许开发人员在服务器端定义业务逻辑和服务操作,并自动在Silverlight客户端生成对应的调用代码,减少了手动编码的工作量,提高了开发效率。 **核心概念** 1. **服务操作(Service Operations)**...

    silverlight访问sql server的com接口

    4. **Silverlight客户端调用**: 在Silverlight应用中,需要添加对WCF服务的引用,这通常通过添加服务引用来完成。然后,可以创建服务代理对象并调用其方法来执行数据库操作。由于跨域限制,可能需要配置客户端的跨域...

    silverlight(版权归陈敏所有)

    2. **配置服务**: 开发者需要在服务器端配置WCF服务,定义数据合同和服务合同,以便与Silverlight客户端进行交互。 3. **生成代理类**: 客户端通过使用“Add Service Reference”生成WCF服务的代理类,使得在...

    SilverlightDuplexSample

    - 控制台应用程序的开发,以及如何与Silverlight客户端和服务端协同工作。 通过分析和研究这个实例,开发者可以掌握Silverlight中的高级特性,并了解如何将它们应用到实际项目中,提升自己的开发技能。

    silverlight2 实例

    5. **WCF RIA Services**:在Silverlight 2中,可以使用WCF RIA Services简化客户端和服务端之间的通信,特别是处理数据操作。通过RIA Services,可以直接在Silverlight中调用服务器端的业务逻辑和数据服务。 6. **...

    silverlight4+mvvm+RIAService

    - RIADataGrid:这可能是Silverlight客户端项目的目录,包含了XAML和C#代码,实现了MVVM模式的用户界面和业务逻辑。 此压缩包提供的"silverlight4+mvvm+RIAService"学习Demo,涵盖了Silverlight开发的核心技术,...

    Silverlight4 数据访问 C#

    WCF(Windows Communication Foundation)服务是常用的通信桥梁,它允许客户端(如Silverlight应用)和服务器端进行数据交换。 在“WCFServiceDataBinding”这个压缩包文件中,我们可以预期找到一个使用WCF服务进行...

    6Silverlight访问数据库之MySQL数据库.pdf

    在服务端,我们需要创建一个Web Service,如EmployeesInfoWebService.asmx,作为Silverlight客户端与数据库之间的桥梁。这个Web Service通常会包含各种方法,如获取所有员工信息的方法(GetEmployeesInfo),该方法...

    使用自我跟踪实体和WCF服务构建的Silverlight示例-第2部分

    在这个示例中,WCF作为桥梁,负责在Silverlight客户端与后端数据库之间传递数据。它支持多种传输协议和数据编码,确保跨平台通信的灵活性。 Windows Identity Foundation (WIF) 是身份管理和认证的框架,为应用程序...

    DOT NET RIA Services July '09 Preview

    创建项目时,可以通过 Visual Studio 的模板来快速搭建基础结构,包括 Silverlight 客户端、WCF 服务以及数据库访问层等组成部分。 **转换现有 Web 应用:** 对于已经存在的 Web 应用程序,可以利用 RIA Services ...

    开发松耦合的Silverlight 3应用程序

    在Silverlight 3中,我们可以利用WCF创建服务端接口,使客户端(Silverlight应用)能够通过SOAP或RESTful方式与服务器进行通信,实现数据交换和远程调用。 **XAML(Extensible Application Markup Language)**是...

Global site tag (gtag.js) - Google Analytics