zoukankan      html  css  js  c++  java
  • 跟我一起从零开始学WCF系列课程笔记(1):WCF概述

    一、WCF(Windows Communication Foundation)概述
    前提:熟悉Web Service(Web服务)编程      
            熟悉 VS2005/2008      
            熟悉分布式应用程序开发

    在学习什么是WCF之前,我们先看一个场景,如下:
    一家汽车租赁公司决定创建一个新的应用程序,用于汽车预定
    ---该租车预定应用程序的创建者知道,应用程序所实现的业务逻辑必须能够让公司内外运行的其他软件访问
    ---运行在WINDOWS桌面上的呼叫中心客户端应用程序——基于J2EE服务器构建、在非WINDOWS系统上运行的现有预定应用程序。由于最近与另一家汽车租赁公 司合并,此现有系统必须能够访问新应用程序的逻辑,以便为合并后公司的客户提供一致的体验。
    ---运行在各种平台上的合作伙伴应用程序,每个应用程序分别位于一个与该汽车租赁公司有业务合作的公司内。合作伙伴可能包括旅行社、航空公司,以及具有租车预定业务需求的其他组织

    如图所示: 


    在没有WCF的情况下,我们如何实现上图中的要求和功能呢?见下图: 


    如果没有WCF,应用程序可能要使用多种现有的.NET Framework技术
    --- ASP.NET Web服务(ASMX)。
    ---这种技术用于与基于J2EE的现有预定应用程序,以及与Internet上的合作伙伴应用程序进行通信。因为目前大多数平台都支持基本的Web服务,所有在WCF发布 之前,这是实现跨供应商互操作性的最直接的方法。
    ---.NET Framework远程处理。
    ---这种技术可用于与呼叫中心应用程序进行通信,因为二者都是建立在.NET Framework之上的。远程处理专门为紧密耦合的.NET到.NET通信而设计,因此它为本地网络中的应用程序提供了无缝而直接的开发体验。
    ---企业服务。
    ---租车预定应用程序使用该技术来管理对象生存期和定义分布式事务。在与此应用场景中的任何其他应用程序通信和集成时,这些功能会很有用。但是企业服务仅支持有限的一组通信选项。
    ---WSE。
    ---可与ASMX一起使用,以便于基于J2EE的预定应用程序以及合作伙伴应用程序进行通信。它实现了最新定义的一些Web服务协议(统称WS-*规范), 因此只要相关所有应用程序都支持这些新规范的兼容版本,WSE就可提供更加灵活的Web服务安全性。
    ---Microsoft消息队列(MSMQ)
    ---用于与基于Windows的合作伙伴应用程序进行通信,这些应用程序对数据传送、工作量分离以及应用程序生存期均要求有保证。消息队列提供持久稳定的消息传送,这通常是间歇式连接的应用程序的最佳解决方案。(适合构建离线消息和松耦合的系统)
    由于建立在.NET Framework之上,该汽车预定应用程序必须使用这些通信技术中的多种技术才能满足其要求。尽管这在技术上是可行的,但最终的应用程序实现起来将会很复杂,而且维护起来也很困难。


    WCF可用于前述所有情况,它整合了.Net平台下所有的和分布式系统有关的技术(System.Messaging, WSE, Remoting, ASMX, Enterprise Services)。
    WCF是公开和访问服务的Windows应用程序的首选技术。因此,租车预定应用程序使用这一种技术就可以实现其所有应用程序间的通信。
    ---WCF可使用Web服务进行通信,因此与同样支持SOAP的其他平台(例如基于J2EE的主流应用程序服务器)间的互操作性就变得简单明了。
    ---还可以对WCF进行配置和扩展,以便与使用并非基于SOAP的消息(例如像RSS这种简单的XML格式)的Web服务进行通信。
    ---性能是大多数业务中至关重要的考虑事项。开发WCF的目标就是要使之成为Microsoft所开发的速度最快的分布式应用程序平台之一。
    ---当通信双方都建立在WCF上时,为获得最理想的性能,本例中使用的线上编码是XML信息集的一个优化的二进制版本。消息仍遵循SOAP消息的数据结构,但其编 码使用该数据结构的二进制表示形式,而不是XML 1.0文本编码的标准尖括号加文本格式。使用此选项的意义体现在与呼叫中心客户端应用程序的通信中,因为该应用程序也是建立在WCF上,并且性能是一个重要的考虑事项。
    ---管理对象生存期、定义分布式事务以及企业服务的其他方面的功能现在可以由WCF来提供。任何基于WCF的应用程序都可以使用这些功能,这意味着租车预定应用 程序可以针对与之通信的任何其他应用程序使用这些功能。
    ---WCF支持一个大的WS-*规范集,因此可在与同样支持这些规范的任何其他平台进行通信时帮助提供可靠性、安全性和事务。
    ---建立在消息队列上的WCF排队消息选项使应用程序能够使用持久的排队,而无需使用另外一组应用程序编程接口。


    什么是WCF?
    WCF全称Windows Communication Foundation,是Microsoft为构建面向服务的应用提供的分布式通信编程框架,开发人员可以构建跨平台、安全、可靠和支持事务处理的企业级互联应用解决方案,且能与已有系统兼容协作。 以通信(Communiation)范围而论,它可以跨进程、跨机器、跨子网、企业网乃至于 Internet;可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作为宿主(Host)。
    ---提供统一的,可用于建立安全、可靠的面向服务的应用的高效开发平台。
    ---将Web服务的概念直接映射到.NET Framework公共语言运行库(CLR)中的对应内容,包括将消息灵活且可扩展地映射到用诸如Visual C#或Visual Basic等语 言实现的服务。该服务模型提供支持松散耦合和版本管理的序列化功能,并提供与诸如消息队列(MSMQ)、COM+、ASP.NET Web服务、Web服务增强(WSE)等现有的.NET Framework 分布式系统技术以及很多其他功能的集成和互操作性。







    那么,从ASP.NET Web Service到WSE,再到WCF,三者到底有哪些区别和提高呢?见下面三张图:

    (Security安全性 Reliability稳定性 Transaction事务性 Custom客户自定义传输协议 Metadata元数据)


    //全新的Web Service界面
    //属性化编程

    [ServiceContract]
    public interface IHelloService
    {
    [OperationContract]
    string Hello();
    }

    public class HelloService:IHelloService
    {
    public string Hello()
    {
    return "Hello";
    }
    }
    这是一个初入门级的方法,这个方法不仅可以被内部WCF客户端应用程序进行调用,我们也可以把它配置为在一个IIS里面集成的一个公开的Web服务方法,可以被J2EE应用程序调用,或者可以被Internet上其他任何合作伙伴的应用程序调用。


    WCF书籍: 
    (1)《Programming WCF Services》,Juval Lowy著。 评论:内容详细,基础,全面。英语好的可以看英语版。  
           《WCF服务编程》第3版由徐雷、徐扬翻译。2011年5月出版。 更新至.NET 4.0,介绍了WCF4.0的新特性,添加了对于云计算的介绍内容。
    (2)Windows Communication Foundation Unleashed ,(美)Craig McMurtry;Marc Mercuri;Nigel Watling;Matt Winkler
           中文名字《WCF揭秘》,赵科平翻译。评论:不适合初学者,算是中级教程。建议有一定WCF编程基础的人  
    (3)Learning WCF: A Hands-on Guide 。作者:MICHELE LEROUX BUSTAMANTE。中文版本由庞引明;侯伯薇翻译。    
          《学习WCF:从原理到实践》。原书可能很不错,但是中文翻译版本评论一般。说是翻译的词汇比较拗口。  
    (4)Essential Windows Communication Foundation (WCF): For .NET Framework 3.5 (Microsoft .NET Development Series) by Steve Resnick, Richard Crane, and Chris Bowen 《WCF本质论》,作者 by Steve Resnick, Richard Crane, and Chris Bowen 不错的书籍,Amazon上评论不错,和《WCF服务编程》一样属于讲解详细,通俗易懂的书籍。可以作为入门学习书籍,也可以作为开发的参考手册。知识点很清晰。
    (5)《Inside Microsoft Windows Communication Foundation》。Justin Smith先生所著。中文译名为《WCF技术内幕》。很好的系统介绍WCF底层框架结构和通信原理的书籍。从构建面向服务的(SOA)应用系统角度出发,对WCF框架做了详细的架构性分析。此外,这本书也给了我们一些实践方面的指导,并提供了许多示例代码。适合WCF高级开发人员和架构师。 
  • 相关阅读:
    Mifare系列3-卡的能源和数据传递(转)
    Mifare系列2-非接触卡标准(转)
    Mifare系列1-简介(转)
    oot 空间不足解决方法
    C语言位操作(转)
    C语言面试题(三)
    C语言运算符和优先级
    C语言面试题(二)
    C语言面试题(一)
    Ubuntu+Win7双系统grub的修复问题
  • 原文地址:https://www.cnblogs.com/EricaMIN1987_IT/p/2004779.html
Copyright © 2011-2022 走看看