(一)WCF简介

什么是 WCF?

 
        Windows Communication Foundation (WCF) 是一个统一框架,用于创建既安全可靠又可交互的分布式事务处理应用程序。Visual Studio 的早期版本中存在一些可用于在应用程序之间进行通信的技术。 如果要以一种能够实现从任何平台访问信息的方式来共享信息,则应使用 Web 服务(也称为 ASMX Web 服务)。如果只想在客户端和正在 Windows 操作系统上运行的服务器之间移动数据,则应使用 .NET 远程处理。如果需要事务处理通信,则应使用企业服务 (DCOM),或者如果需要排队的模型,则应使用消息队列(也称为 MSMQ)。
         WFC 将所有这些技术的功能汇集到一个统一编程模型中。这简化了开发分布式应用程序的过程。
         WCF 编程模型
         WCF 编程模型 WCF 编程模型基于以下两个实体之间的通信:WCF 服务和 WFC 客户端。该编程模型封装在 .NET Framework 的 System.ServiceModel 命名空间中。
        WCF 服务
        WCF 服务基于一个定义服务与客户端之间的协定的接口。它是用 ServiceContractAttribute 属性进行标记的,如下列代码中所示:
  1. <ServiceContract()> _
  2. Public Interface IService1
  3.     <OperationContract()> _
  4.     Function GetData(ByVal Value As StringAs String
  5. End Interface

       通过使用 OperationContractAttribute 属性标记 WCF 服务公开的函数和方法,可以定义这些函数和方法。另外,通过使用 DataContractAttribute 属性标记复合类型,可以公开序列化数据。这样可以在客户端中进行数据绑定。 定义了接口及其方法后,会将它们封装在一个实现该接口的类中。单一的 WCF 服务类可以实现多个服务协定。      为了使用 WCF 服务,通过通常所说的“终结点”公开了此服务。 只有使用终结点提供的方法才能与服务进行通信;您不能像访问其他类那样通过直接引用来访问该服务。
      终结点由地址、绑定和协定组成。地址定义服务的位置;该地址可以是 URL、FTP 地址、网络路径或本地路径。绑定定义与服务通信的方法。WCF 绑定提供一个用于指定协议(如 HTTP 和 FTP)、安全机制(如 Windows 身份验证或用户名和密码)和更多内容的通用模型。协定包括 WCF 服务类公开的操作。
      可以针对单一的 WCF 服务公开多个终结点。这样,不同的客户端便可以采用不同的方法与同一服务进行通信。例如,银行服务可以为雇员提供一个终结点,为外部客户提供另一个终结点,每个终结点都使用不同的地址、绑定、和/或协定。
       WCF 客户端
        WCF 客户端由“代理”和终结点所组成,前者使应用程序能够与 WCF 服务通信,后者与针对服务定义的终结点相匹配。 该代理在 app.config 文件中的客户端上生成并包括有关服务所公开的类型和方法的信息。例如,对于公开多个终结点的服务,客户端可以选择最能满足其需求的服务,以便通过 HTTP 进行通信以及使用 Windows 身份验证。
        创建 WCF 客户端后,可以像引用任何其他对象那样在代码中引用服务。例如,若要调用之前显示的 GetData 方法,则应编写与下列内容相似的代码:
  1. Dim client As New ServiceReference.Service1Client
  2. Dim returnString As String
  3. returnString = client.GetData("Hello")
  4. MsgBox(returnString)

Visual Studio 中的 WCF 工具

创建并测试 WCF 服务
 可以使用 WCF Visual Studio 模板为基础快速创建自己的服务。然后可以使用 WCF 服务自动主机和 WCF 测试客户端来调试和测试此服务。通过共同使用这些工具,可以快速方便地进行调试和测试,从而缩短调试和测试周期,并且不必在早期阶段提交给宿主模型。
  WCF 模板
WCF Visual Studio 模板为服务开发提供一个基类结构。在“添加新项目”对话框中可以使用一些 WCF 模板。这些模板包括 WCF 服务库项目、WCF 服务网站、和 WCF 服务项模板。 选择模板时,将为服务协定、服务实现、以及服务配置添加文件。所有必需的属性都已添加,同时将创建简单的“Hello World”服务类型,且不必编写任何代码。当然,您将需要添加代码以便为实际服务提供函数和方法,但是模板会提供基础。
  WCF 服务主机
为 WCF 服务项目启动 Visual Studio 调试程序(通过按 F5)时,将自动启动 WCF 服务主机工具以便以本地方式承载服务。WCF 服务主机将枚举 WCF 服务项目中的服务、加载该项目的配置、并为它所找到的每个服务实例化主机。 通过使用 WCF 服务主机,可以测试 WCF 服务,而不用在开发期间编写额外代码或提交给特定主机。
  WCF 测试客户端
 通过使用 WCF 测试客户端工具,可以输入测试参数、将该输入提交给 WCF 服务、并查看该服务发送回的响应。如果将 WCF 测试客户端与 WCF 服务主机结合起来,会提供满意的服务测试体验。 按 F5 调试 WCF 服务项目时,WCF 测试客户端将打开并显示在配置文件中定义的服务终结点的列表。可以测试参数并启动服务,重复此过程以连续测试和验证您的服务。
在 Visual Studio 中访问 WCF 服务
Visual Studio 2008 简化了创建 WCF 客户端的任务,同时将针对使用“添加服务引用”对话框添加的服务自动生成代理和终结点。所有必需的配置信息将添加到 app.config 文件中。大多数情况下,只需实例化该服务便可以使用此服务。 通过使用“添加服务引用”对话框,可以输入服务的地址或搜索在解决方案中定义的服务。该对话框将返回由服务和这些服务提供的操作所组成的列表。通过使用此对话框,还可以定义用于在代码中引用服务的命名空间。 通过使用“配置服务引用”对话框,可以自定义服务的配置。可以更改服务地址,指定访问级别、异步行为和消息协定类型,以及配置类型重用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值