WCF编程:创建基于服务的Windows应用程序

披露: 您的支持有助于保持网站的正常运行!我们会为此页面上推荐的某些服务收取推荐费.


Windows Communication Foundation(WCF)是一个运行时环境,并且.NET Framework中的一组API用于创建面向服务的连接应用程序。 WCF是Microsoft的统一编程模型,用于构建面向服务的应用程序.

历史简介

在过去的十年中,面向服务的通信和应用程序的日益普及对软件开发产生了深远的影响。应用程序依赖于各种服务进行交互已成为常态。在Microsoft的Windows开发平台上,Windows Communication Platform(WCF)实现了这些更改.

WCF于2006年作为.NET Framework 3.0的一部分首次引入,并在.NET Framework 3.5和4.0版中进行了进一步更新。 WCF的最新版本是.NET Framework 4.5版的一部分。.

Windows Communication Foundation用于基于.NET Framework的许多软件中.

WCF功能

WCF是用于开发人员创建依赖于Web服务发送和接收数据的面向服务的应用程序的工具。 Web服务的一般优势是可以松耦合,而不是为每个应用程序专门编码。换句话说,在任何平台上创建的任何应用程序都可以连接到任何服务.

WCF实现了Web服务互操作性的现代行业标准,例如HTTP,SOAP,XML,WS-Addressing,W3C Web Services Addressing等。消息(或者我们应该说数据)可以以几种不同的方式进行交换.

最常见的通信模式是请求-应答,但是WCF也支持其他模式,例如单向消息或双工交换模式。可以对消息进行加密以保护数据,并可以强制执行用户身份验证。使用行业标准解决方案(例如SSL或WS-SecureConversation)来实现安全性。可以使用不同的协议和编码来传输消息,最常见的是通过HTTP进行文本编码的SOAP消息。 WCF还支持通过TCP,MSMQ或命名管道,编码为文本或使用MTOM标准的优化二进制文件发送消息。还可以创建自定义传输协议和编码.

WCF支持使用通过WS-ReliableMessaging实现的会话以及使用MSMQ排队的消息来进行可靠的消息交换。 WCF还内置了对持久消息传递的支持,可防止由于通信问题而导致数据丢失.

WCF使用以下三种事务模型之一提供了广泛的事务支持:WS-AtomicTransactions,System.Transaction命名空间中的API或Microsoft分布式事务处理协调器.

WCF是一个非常灵活的平台,可以轻松扩展并与其他Microsoft技术集成,例如Windows Workflow Foundation(WF),Microsoft BizTalk和Silverlight.

使用WCF

实际上,WCF是用于在两方之间建立客户端-主机通信的通用通信机制。这就是使它如此有用的原因,因为您可以配置服务参数,例如传输协议,安全性,编码等,而无需修改客户端应用程序代码。您还可以在运行在不同平台上的不同编程语言编写的服务和客户端之间建立通信.

在Visual Studio IDE中创建WCF服务和客户端需要六个步骤:

  1. 定义WCF服务合同可指定服务支持的操作。通过定义C ++,C#或Visual Basic接口来创建合同,并且该接口中的每个方法必须对应于特定的服务操作。每个接口必须已应用ServiceContractAttribute,每个操作必须已应用OperationContractAttribute,否则它们不会被公开.
  2. 通过创建一个类来实现服务的用户定义接口,可以实现服务合同.
  3. 托管和运行WCF服务包括以下任务:为服务的基地址创建URI实例,托管服务,添加公开服务的终结点,启用元数据交换以及打开服务主机.
  4. 创建客户端包括使用命令行服务模型元数据实用工具生成服务代理和配置文件。.
  5. 配置客户端包括指定客户端用来访问服务的端点。端点具有地址,绑定和合同,并且在配置客户端的过程中必须分别指定这些地址.
  6. 使用客户端实际上会从生成的代理中调用服务,并在操作调用完成后关闭客户端.

使用WCF服务库模板或Visual Studio中的WCF服务应用程序模板可以大大简化上述步骤,因为上述大多数任务将自动完成.

我应该学习和使用WCF吗?

在大多数情况下,这取决于手头的一项具体任务:如何解决它,什么是最有效且面向未来的解决方案?也许一个简单的例子是此问题的最佳答案.

您正在为具有许多分散销售地点的客户开发销售点软件套件,并且必须连接到客户现有的核心业务SQL数据库。有两种可能的解决方案。首先是建立WAN,并使用路由器或VPN连接将客户的所有销售地点连接到核心数据库.

第二种解决方案是简单地实现WCF客户端-服务器解决方案并通过Internet访问数据库。在许多情况下,使用WCF可能非常有用且经济.

WCF资源

如果您正在为Microsoft平台开发客户端-服务器应用程序,则应查看WCF上的以下资源:

  • Microsoft开发人员网络(MSDN)Windows Communication Foundation主页提供WCF的完整概述-包括文档,参考资源,指南和教程。.
  • Visual Studio中的Microsoft开发人员网络(MSDN)WCF部分介绍了Visual Studio中可用的WCF工具,并提供了简短的操作方法.
  • Microsoft开发人员网络(MSDN)WCF应用程序部署方案是一篇不错的文章,展示了不同的WCF使用方案和用例.

WCF书籍

我们选择了几本有关WCF的最受尊敬的书:

  • 编程WCF服务:Juval Lowy和Michael Montgomery撰写的《设计和构建面向服务的可维护系统》(2015年):本书提供了独特的见解,而不是文档,可帮助您学习构建可维护,可扩展和可重用所需的主题和技能。基于WCF的应用程序.
  • 《使用实体框架进行WCF多层服务开发》(2014年),作者:Mike Liu:如果您是C#,VB.NET或C ++开发人员,并且想开始使用WCF和实体框架,那么这本书非常适合您。本书将教您使用实体框架作为后端开发WCF服务的所有基本知识.

结论

由于WCF是Microsoft产品,因此依靠.NET Framework来创建面向服务的软件解决方案,因此它具有强大的功能。这不是新事物,但仍然有意义,可能还会持续数年.

从技术的角度来看,我们已经概述了WCF可以发挥重大作用的几种情况。尽管是Microsoft技术,但WCF支持与大多数非Windows系统的互操作性,只要它们运行Java.

进一步阅读和资源

我们有更多与编码和开发有关的指南,教程和信息图:

  • Microsoft Visual Basic / Visual Studio:这是我们在Visual Studio上的基础入门,重点是Visual Basic.
  • ADO.NET简介:与数据库交互的主要.NET系统.
  • C#资源:作为.NET固件中最受欢迎的语言之一,C#非常有助于了解.

您应该学习什么代码?

对应该学习哪种编程语言感到困惑?查看我们的信息图,您应该学习什么代码?它不仅讨论了语言的不同方面,还回答了一些重要问题,例如:“我将以编程为生赚多少钱?”

您应该学习什么代码?
您应该学习什么代码?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me