WCF學習——WCF簡介(三)


引用網址:https://www.cnblogs.com/JamelAr/p/7068742.html

一、WCF簡介

  1、什么是WCF?

    WCF的全稱是:Windows Communication Foundation。從本質上來說,它是一套軟件開發包,是微軟公司推出的符合SOA思想的技術框架。

  2、WCF中包括哪些東西?

    WCF為程序員提供了豐富的功能,其中包括:托管、服務實例管理、異步、安全、事務管理、離線隊列等。並且WCF對產業中的標准協議進行了封裝和定義,    它把程序員從繁瑣的通信、格式編碼中解放出來,使得程序員能夠專注於業務邏輯的實現。同時,WCF統一了微軟公司之前推出的多種分布式技術,其中包     括:
      1.    Web服務和WSE。
      2.    .Net Remoting。
      3.    .Net 企業服務。
      4.    微軟消息隊列(MSMQ)。

  3、WCF用來做什么?

    主要是用來做松耦合的分布式通訊的,它還有另外一個名字叫Indigo,是微軟邁向SOA一個重要的標志。WCF是.Net Framework的一個子集。

  4、WCF體系框架

    WCF的體系基本包含了4個方面,分別為契約、服務運行時、消息和寄宿。

      1    契約(能干什么)
        從SOA的概念上來看,契約屬於一個服務公開接口的一部分。一個服務的契約,定義了服務端公開的服務方法、使用的傳輸協議、可訪問的地址、傳輸        的消息格式等內容。基本上,契約的定義描述了該服務的功能和作用,它告訴SOA系統中的其它節點這個服務是“干什么”的。
      2    服務運行時(怎么干)
        服務運行時定義了服務在運行時的具體行為。如果說契約描述了服務是“干什么”的,那么服務運行時就在一定程度上描述了服務是“怎么干”的。
      3    消息
        消息方面包含了消息的傳輸方式、消息的編碼與解碼。消息方面的內容基本屬於服務邊界以內的具體實現。具體的傳遞時限,必須符合在契約中定義的        綁定協議。
      4    激活和宿主(在哪干)
        激活和宿主屬於WCF程序的部署方式。一個WCF服務需要在一個可運行的程序中寄宿,我們可以把宿主理解為WCF運行的容器。常用的寄宿方式包括        自寄宿、IIS寄宿、Windows激活服務、Windows服務、Com+組件等。根據SOA的原則,激活和宿主類型的變化不會影響服務本身的特性和外部對該服        務的訪問,而WCF在這一方面也確實做的非常出色。

  5.WCF體系結構

    

  6、WCF、WEB API、WEB SERVICE的異同

      

Web Service

1、它是基於SOAP協議的,數據格式是XML

2、只支持HTTP協議

3、它不是開源的,但可以被任意一個了解XML的人使用

4、它只能部署在IIS上 

WCF

1、這個也是基於SOAP的,數據格式是XML

2、這個是Web Service(ASMX)的進化版,可以支持各種各樣的協議,像TCP,HTTP,HTTPS,Named Pipes, MSMQ.

3、WCF的主要問題是,它配置起來特別的繁瑣

4、它不是開源的,但可以被任意一個了解XML的人使用

5、它可以部署應用程序中或者IIS上或者Windows服務中

Web API

1、這是一個簡單的構建HTTP服務的新框架

2、在.net平台上Web API 是一個開源的、理想的、構建REST-ful 服務的技術

3、不像WCF REST Service.它可以使用HTTP的全部特點(比如URIs、request/response頭,緩存,版本控制,多種內容格式)

4、它也支持MVC的特征,像路由、控制器、action、filter、模型綁定、控制反轉(IOC)或依賴注入(DI),單元測試。這些可以使程序更簡單、更健壯

5、它可以部署在應用程序和IIS上

6、這是一個輕量級的框架,並且對限制帶寬的設備,比如智能手機等支持的很好

7、Response可以被Web API的MediaTypeFormatter轉換成Json、XML 或者任何你想轉換的格式。

 

技術這么多,我該選誰?

1、當你想創建一個支持消息、消息隊列、雙工通信的服務時,你應該選擇WCF

2、當你想創建一個服務,可以用更快速的傳輸通道時,像TCP、NamedPipes或者甚至是UDP(在WCF4.5中),在其他傳輸通道不可用的時候也可以支持HTTP。

3、當你想創建一個基於HTTP的面向資源的服務並且可以使用HTTP的全部特征時(比如URIs、request/response頭,緩存,版本控制,多種內容格式),你應該選擇WebAPI

       4、當你想讓你的服務用於瀏覽器、手機、iPhone和平板電腦時,你應該選擇Web API

 

7、WCF的優勢

WCF性能優勢之統一性:

WCF是對於ASMX,.Net Remoting,Enterprise Service,WSE,MSMQ等技術的整合。

WCF性能優勢之互操作性:

於WCF最基本的通信機制是SOAP,這就保證了系統之間的互操作性,即使是運行不同的上下文中。

可以跨進程、跨機器甚至於跨平台的通信,只要支持標准的Web Service,例如J2EE應用服務器(如WebSphere,WebLogic)。應用程序可以運行在

Windows操作系統下,也可以運行在其他的操作系統,如Sun Solaris,HP Unix,Linux等等。

WCF性能優勢之安全與可信賴:


WS-Security,WS-Trust和WS-SecureConversation均被添加到SOAP消息中,以用於用戶認證,數據完整性驗證,數據隱私等多種安全因素。

WCF性能優勢之兼容性:

WCF充分的考慮到了與舊有系統的兼容性。安裝WCF並不會影響原有的技術如ASMX和.Net Remoting。

 

 

 

 

 源碼地址:

 

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM