[zz]WCF分布式开发步步为赢(0):WCF学习经验分享,如何更好地学习WCF?
WCF分布式開發學習,應該從哪里開始?
?? 學習WCF是不是就不需要學習Enterprise Sevices(COM+).Net Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息隊列?
?? WCF分布式開發學習,如何制定一個合理的計劃,才能更好地學習WCF分布式應用開發。應該從哪里開始?
?? 如何下載和安裝WCF開發相關的組件。
?? 有什么好的WCF學習書籍、論壇?
?? 對很多WCF學習的初學者來說,往往這些都是要面臨的問題。
?? 今天整理這個文章,首先是希望對許多WCF的學習者,有個幫助。其次就是算是對《WCF分布式開發步步為贏》系列課程的一個完善。
?? 這個問題一直是很多開發者關注的問題.按照微軟的說法,WCF是微軟分布式應用程序開發的集大成者。因此很多人就認為學習WCF編程,就不需要了解其他的技術.這個說法有一定的道理.WCF的出現確實解決了很多問題,它整合了.Net平臺下所有的和分布式系統有關的技術,例如.Net Remoting、ASMX、WSE和MSMQ。以通信(Communiation)范圍而論,它可以跨進程、跨機器、跨子網、企業網乃至于 Internet;可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作為宿主(Host)。開發人員可以構建跨平臺、安全、可靠和支持事務處理的企業級互聯應用解決方案。既然WCF如此強大,開發者再不用去分別了解.Net Remoting,ASMX等各種技術了。
?? 我也遇到過類似的問題,現在就把自己和別人的一些經驗與大家分享,希望對WCF的愛好者有參考作用。
【1】什么是WCF:
??? WCF全稱Windows Communication Foundation,是Microsoft為構建面向服務的應用提供的分布式通信編程框架,是.NET Framework 3.5的重要組成部分。使用該框架,開發人員可以構建跨平臺、安全、可靠和支持事務處理的企業級互聯應用解決方案。
根據微軟官方的解釋,WCF(之前的版本名為“Indigo”)是使用托管代碼建立和運行面向服務(Service Oriented)應用程序的統一框架。它使得開發者能夠建立一個跨平臺的安全、可信賴、事務性的解決方案,且能與已有系統兼容協作。WCF是微軟分布式應用程序開發的集大成者,它整合了.Net平臺下所有的和分布式系統有關的技術,如Enterprise Sevices(COM+).Net Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息隊列。以通信(Communiation)范圍而論,它可以跨進程、跨機器、跨子網、企業網乃至于 Internet;以宿主程序而論,可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作為宿主(Host)。WCF可以支持的協議包括TCP,HTTP,跨進程以及自定義,安全模式則包括SAML, Kerberos,X509,用戶/密碼,自定義等多種標準與模式。也就是說,在WCF框架下,開發基于SOA的分布式系統變得容易了,微軟將所有與此相關的技術要素都包含在內,掌握了WCF,就相當于掌握了叩開SOA大門的鑰匙。
??? Web 服務中包含了用于應用程序間通信的標準協議,它在全球范圍內的廣泛采納改變了軟件開發。例如,如今 Web 服務提供的功能包括安全性、分布式事務協調和可靠的通信。Web 服務所發生的這些改變的效益應反映在開發人員所使用的工具和技術方面。設計 Windows Communication Foundation (WCF) 的目的是為分布式計算提供可管理的方法,提供廣泛的互操作性,并為服務定位提供直接的支持。
??? 類型化編程模型(稱為“服務模型”)設計用來降低分布式應用程序的開發難度,并為 ASP.NET Web 服務、.NET Framework 遠程處理和企業服務領域的專業開發人員,以及將要從事 WCF 開發的人員提供熟悉的開發體驗。該服務模型的特點在于它將 Web 服務的概念直接映射到 .NET Framework 公共語言運行庫 (CLR) 中的對應內容,包括將消息靈活且可擴展地映射到用諸如 Visual C# 或 Visual Basic 等語言實現的服務。該服務模型提供支持松散耦合和版本管理的序列化功能,并提供與諸如消息隊列 (MSMQ)、COM+、ASP.NET Web 服務、Web 服務增強 (WSE) 等現有 .NET Framework 分布式系統技術以及很多其他功能的集成和互操作性。(參考MSDN)
【2】如何學習:
???? 既然WCF介紹里提到了以上技術概念:
技術集成:Enterprise Sevices(COM+).Net Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息隊列
宿主程序:ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作為宿主(Host)。
?
【2.1】必備技術前提:
(1).NET 基礎知識,包括CLR,基本類庫等概念。
(2)c# 或者VB.NET,任何一個機遇.NET平臺的編程語言。目前是c#為主。
(3)ASP.NET 及IIS網絡應用程序相關知識
(4)Visual Studio 開發工具熟練使用。
【2.2】可選技術條件:
(1)Enterprise Sevices(COM+),企業服務應用程序,微軟.NET 平臺下對COM+的一個包裝。集成了COM+的特性。
(2).Net Remoting,.NET 平臺下分布式環境里應用程序通信的技術,適合企業局域網,效率較高。
(3)Web Service(ASMX),微軟推出的基于ASP.NET 框架的Web Service技術。開發和部署簡單。
(4)WSE3.0,這里是一個過渡技術。已經出現了IIS外托管WebService,支持傳輸優化等特性,安全模型進一步提升。
(5)MSMQ消息隊列,微軟平臺下,比較成熟的一個技術,適合構建離線消息和松耦合的系統。
【2.3】擴展知識:
????? 這些知識屬于SOA,構建面向服務的應用系統,或者EAI必須面對的知識,目前對于WCF來說,你可以先不需要了解這些知識,但是基本學習過程結束,希望從事SOA相關的工作,必須對下面的知識需要有個深入的、系統的學習。
(1)XML,擴展標記語言,標準數據化的格式,大部分跨平臺系統都會使用它來表示數據。
(2)SOAP,簡單對象訪問協議。簡單對象訪問協議(SOAP,全寫為Simple Object Access Protocol)是一種標準化的通訊規范,主要用于Web服務(web service)中。目前有兩個版本SOAP1.1 和SOAP1.2,
(3)安全,消息簽名、加密算法、證書等概念
(4)WS-*規范,這個是目前跨平臺服務的必須遵守的規范,因為這個是唯一一個被大多數廠商知識的規范,而且處于持續的完善中。
【3】學習資源:
??? 1.那里獲取最新的Visual Studio 或者the .Net Framework??
微軟發布了 SP1 for VS 2008 和.Net Framework 3.5, 這是最新的連接:
Visual Studio 2008 SP1: http://www.microsoft.com/downloads/details.aspx?FamilyId=FBEE1648-7106-44A7-9649-6D9F6D58056E&displaylang=en
Visual Studio Express SP1: http://www.microsoft.com/express/sp1/
.Net Framework 3.5 SP1: http://www.microsoft.com/downloads/details.aspx?FamilyId=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=en
微軟發布了 VS 2010 和.Net Framework 4.0, 這是最新的連接:
Visual Studio 2010 Beta2:http://msdn.microsoft.com/en-us/netframework/cc896557.aspx
??? 2.哪里有WCF 文檔和代碼示例?
??? .Net Framework 3.5 MSDN 文檔和例子
?????????? 文檔: http://msdn2.microsoft.com/en-us/library/ms735119(VS.90).aspx
?????????? 文檔: http://msdn2.microsoft.com/en-us/library/ms751514(VS.90).aspx
?????????? 例子下載: http://go.microsoft.com/fwlink/?LinkId=87352
??? WCF 社區
?????????? 社區: http://wcf.netfx3.com/
??? WCF 安全向導
?????????? 視頻, 教程, 和例子: http://www.codeplex.com/WCFSecurity
??? WCF4.0:WCF4.0新特性體驗(1):WCF4.0新特性預覽及學習資源推薦 ?
??? 3.WCF書籍:
??? (1)《Programming WCF Services》,Juval Lowy著,評論:內容詳細,基礎,全面。英語好的可以看英語版。
?????????? 《WCF服務編程》,Juval Lowy著,中文版本由張逸、徐寧翻譯。書籍印刷質量一般。初學和有點基礎的朋友可以看看。
??? (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:從原理到實踐》。原書可能很不錯,但是中文翻譯版本評論一般。說是翻譯的詞匯比較拗口。看中文名字個人感覺應該是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技術內幕》,Frank Xu Lei(我本人,將于2010年6月正式出版)翻譯。很好的系統介紹WCF底層框架結構和通信原理的書籍。從構建面向服務的(SOA)應用系統角度出發,對WCF框架做了詳細的架構性分析。此外,這本書也給了我們一些實踐方面的指導,并提供了許多示例代碼。適合WCF高級開發人員和架構師。
?? 以上書籍都是Amazon上評價很好的書籍,4星半,接近5顆星,確實值得一讀,建議大家看英文原著書籍,這些書籍都是WCF經典著作。而且作者的水平很高,無論技術實力,還是工作經驗,都已經得到同行的認可。推薦《WCF服務編程》+《WCF技術內幕》。前者涵蓋初中級知識,后者偏重底層原理與框架實現機制。
????
4.推薦論壇:
??? 【中文論壇】:微軟WCF中文技術論壇,成立不久,付仲愷大哥在Web Cast講授《構建WCF面向服務的應用程序系列課程》常回答大家的問題。歡迎訪問。
??? 【英文論壇】:微軟WCF英文技術論壇,老外很多,問題種類設計各個方面。也很專業。基本WCF相關的問題都可以解決或者找到提示。
【4】總結:
???? 最后的建議:
?? (1)是最好對以前的技術有所了解,學習技術態度要扎實。如果你是新手,有足夠的時間,建議你從基礎學起,現了解Enterprise Sevices(COM+).Net Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息隊列等相關概念以后,再來學習WCF技術。我整理了WCF分布式開發必備知識(4)? 和WSE3.0構建Web服務安全(4) 系列,對這些技術進行了整理。給出了可以執行的代碼。大家可以參考。
?? (2)如果項目時間緊迫,可以直接奔WCF編程學習,但是等自己時間充裕的話,建議還是回頭好好學習一下。起碼是有個了解。不會在討論這些技術問題的時候總是一臉的茫然。例如理解WCF IIS托管,就必須對IIS和ASP.NET底層相關知識有深入的了解。想掌握WCF安全編程,對WS-security知識要熟悉。否則很難理解WCF的安全模型。
?? (3)根基決定高度。在WCF學習的態度上,認真一些,我們一步一個腳印,一定會成為有很多收獲。這個其實也是通常學習技術的一個態度。? 技術需要一個積累的過程。
?? (4)實踐是檢驗真理的唯一標準。呵呵,動手才能更好地理解WCF的一些技術概念,對相關特性才能深入體會。只是紙上談兵,沒有太多實際意義。最大的收獲來之于試驗。學習最好的方式就是:WCF in Practice!
?? (5)希望對所有的WCF技術初學者,都能有所啟示或幫助!
???(6)高手的話,可以研究WCF底層相關的知識,比如線程模型、安全協議,通道模型等等。
??????????也希望WCF前輩多多補充。分享學習經驗,推薦學習書籍。給新人以提示。因為經常和一些WCF愛好者討論這個問題。
?? 最后就整理一個文章。算是一個補充吧。
??? 謝謝。?
轉載于:https://www.cnblogs.com/lihf/articles/1785830.html
總結
以上是生活随笔為你收集整理的[zz]WCF分布式开发步步为赢(0):WCF学习经验分享,如何更好地学习WCF?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QtWebkit中浏览器插件的设计-1
- 下一篇: window 2008 和 window