對于WCF性能學(xué)習(xí)全解析
首先,我認(rèn)為WCF性能很好,如果繼續(xù)得到改進(jìn)和增強(qiáng),我想該插件會被更多開發(fā)者使用。對于WCF的學(xué)習(xí),對于我們掌握怎樣正確創(chuàng)建WCF性能是很有幫助的,而且也可從中學(xué)到不少編程技巧。
WCF(Windows Communication Foundation)作為微軟基于SOA所推出的.NET平臺下的新一代框架產(chǎn)品集成了現(xiàn)有技術(shù)的優(yōu)點,代表了未來軟件架構(gòu)設(shè)計與開發(fā)的發(fā)展方向。因此,掌握并能在未來應(yīng)用中合理運(yùn)用WCF技術(shù),對于程序員特別是基于微軟技術(shù)開發(fā)的程序員而言是十分必要的?;诖?,文章通過介紹一套即時通信軟件的具體開發(fā)過程來展現(xiàn)基于WCF技術(shù)的分布式軟件研發(fā)的基本步驟與高級技巧。
對于一個好的分布式系統(tǒng)來講,設(shè)計時應(yīng)當(dāng)考慮到異構(gòu)性、開放性、安全性、可擴(kuò)展性、故障處理、并發(fā)性以及透明性等問題。基于SOAP的Web Service可以實現(xiàn)異構(gòu)環(huán)境的互操作性,保證了跨平臺的通信。利用WSE(Web Service Enhancements)可以為ASMX提供安全性的保證。.NET Remoting具有豐富的擴(kuò)展功能,可以創(chuàng)建定制的信道、格式化器和代理程序。Enterprise Service(COM+)提供了對事務(wù)的支持,其中還包括分布式事務(wù),可實現(xiàn)故障的恢復(fù)。#t#
MSMQ可以支持異步調(diào)用、脫機(jī)連接、斷點連接等功能,利用消息隊列支持應(yīng)用程序之間的消息傳遞。從功能角度來看,WCF整合了ASMX、.Net Remoting、Enterprise Service、WSE以及MSMQ等現(xiàn)有技術(shù)的優(yōu)點,它提供了一種構(gòu)建安全可靠的分布式面向服務(wù)系統(tǒng)的統(tǒng)一的框架模型,使軟件研發(fā)人員在開發(fā)分布式應(yīng)用時變得更加輕松。
1. 面向服務(wù)
既然WCF性能是一套面向服務(wù)的框架,服務(wù)自然便是WCF中最為重要的概念。服務(wù)是指暴露在外的一系列功能的集合,面向服務(wù)則是指一套構(gòu)建“面向服務(wù)程序”的抽象原則以及***方法。對于業(yè)務(wù)邏輯的理解,傳統(tǒng)的編程方式認(rèn)為應(yīng)將業(yè)務(wù)邏輯封裝為對象,該對象提供了與業(yè)務(wù)相關(guān)的一些功能;而基于WCF的程序設(shè)計卻更多的是考慮如何提供服務(wù)以及消費服務(wù)。與面向組件服務(wù)程序類似,基于SOA 的應(yīng)用程序?qū)⒎?wù)封裝到了單個邏輯程序當(dāng)中,如圖1所示。

2.WCF性能體系結(jié)構(gòu)
WCF擁有一個非常靈活的分層體系結(jié)構(gòu),分布式應(yīng)用程序可以使用高級API或者低級API編寫。高級API或者服務(wù)層可以用于調(diào)用方法和事件。服務(wù)層把這些高級的抽象代碼轉(zhuǎn)換為消息,以使用低級API上的信道和端口。圖2中顯示了WCF應(yīng)用程序的各個層。


















