18.1 了解WCF

  WCF是.NET Framework的扩展,同时WCF提供了一种在Windows环境下进行客户端开发和服务端开发的SDK,并且为服务提供了运行环境。WCF 提供了创建安全的、可靠的、事务服务的统一框架,整合了现有的分布式技术,开发人员能够使用WCF快速创建基于服务的应用程序。

18.1.1 什么是WCF
  WCF是基于Windows平台下开发和部署服务的软件开发包(Software Development Kit,SDK)。WCF提供了服务的运行环境,这样就让开发人员能够将CLR类型公开为服务,也能够通过使用CLR类型来使用服务。WCF框架模型如图18-1所示。
WCF框架模型
图18-1 WCF框架模型
  WCF 提供了创建安全的、可靠的、事务服务的统一框架,WCF 整合和扩展了现有分布式系统的开发技术,如Microsoft .NET Remoting、Web Services、Web Services Enhancements (WSE)等等,来开发统一的可靠系统。WCF简化了SOA框架的应用,同时也统一了Enterprise Services、Messaging、.NET Remoting、Web Services、WSE 等技术,极大的方便了开发人员进行WCF应用程序的开发和部署,同时也降低了WCF应用开发的复杂度。
  WCF支持大量的Web Service标准,这些标准包括XML、XSD、SOAP、Xpath、WSDL等标准和规范,所以对于现有的标准,开发人员能够方便的进行移植。同时WCF可以使用Attribute属性进行WCF应用程序配置,提高了WCF应用的灵活性。WCF遵循客户端/服务器模型在应用程序之间进行通信,客户端程序能够通过服务器端提供的EndPoint端直接访问服务,如图18-2所示。
WCF通信模型
图18-2 WCF通信模型
  虽然开发人员需要实现服务可以不使用WCF,但是WCF封装了现有的类和结构,提供了服务实现的便捷手段,通过使用WCF能够快速的实现服务并让其他的应用程序使用服务。WCF是微软提供的一系列协议的标准,包括服务交互、类型转换等。
  WCF中绝大部分的实现和功能都包含在一个单独的程序集System.ServiceModel.dll中,命名空间为System.ServiceModel。通过使用System.ServiceModel命名空间能够快速搭建WCF应用程序环境。WCF是.NET 3.0的一部分,但是.NET 3.0是基于.NET 2.0为基础而存在的,如果需要搭建和使用WCF应用,则服务器应该具备.NET 3.0环境。

18.1.2 为什么需要WCF
  在传统的应用程序开发中,例如在为麦当劳开发一个餐饮统计的应用程序,这个应用程序能够统计麦当劳的餐饮系统,包括每天客户购买的餐饮、餐饮的价格以及当天的餐饮统计。这个应用程序通常是安装在麦当劳店面主机中的,但是有很多的应用程序将需要对此餐饮统计应用程序进行访问和数据提取,这些应用程序有的是基于.NET的,有的是基于J2EE的,另一些可能是基于ASP.NET的Web应用,这样就造成了应用程序访问困难。如图18-3所示。
麦当劳业务模拟图
图18-3 麦当劳业务模拟图
  如图18-3中所示,麦当劳的餐饮业务也许需要支持很多其他的设备,在现在智能手机发达的今天,很多客户可能可以从移动客户端访问麦当劳的餐饮业务,这些移动客户端可能是PDA、Windows Mobile,GPhone或者IPhone。在其他的客户端访问时,例如总部可能需要提取分部的数据,用户可以从网站中购买餐饮,分部经理需要对当天的数据进行统计,或者购物中心应用程序访问餐饮应用程序以增删数据,这些流程都必须考虑到平台、协议和通信等诸多因素。
  WCF可以看作是ASMX、.NET Remoting、Enterprise Service、WSE、MSMQ这些技术的并集,虽然在复杂度上WCF很可能比这些技术更加复杂,因为WCF是面向服务构架的,所以对于上述的麦当劳餐饮业务的例子,如果使用WCF就能够很好的实现不同平台,不同设备之间的安全性、可依赖性、互操作性等特性,而因为WCF对现有技术的封装,开发人员可以无需关心ASMX,、Net Remoting这些技术的实现细节。

加支付宝好友偷能量挖...


评论(0)网络
阅读(89)喜欢(0)Asp.Net/C#/WCF