星空の城

          一個程序員的記事本
          posts - 10, comments - 22, trackbacks - 0, articles - 0

          .NET程序設計之四書五經

          Posted on 2006-02-10 16:16 7夜 閱讀(457) 評論(0)  編輯  收藏 所屬分類: C#抵抗勢力
          Microsoft? .NET 是 Microsoft XML Web services 平臺。XML Web services 允許應用程序通過 Internet 進行通訊和共享數據,而不管所采用的是哪種操作系統、設備或編程語言。Microsoft .NET 平臺提供創建 XML Web services 并將這些服務集成在一起之所需。對個人用戶的好處是無縫的、吸引人的體驗。 — 微軟公司 

          可見,.NET之中最重要的技術首推 Web Services。大多數貼著.NET標簽的技術都在某種程度上支持 Web Services。然而.NET絕非僅僅是 Web Services而已,在.NET技術發布之初,微軟貼上.NET標簽的還包括.NET框架(包括通用語言運行時CLR和.NET框架類庫兩大部份)、Visual Studio.NET、.NET My Services、.NET企業服務器等。 

          要想透徹理解.NET,就必需透徹理解Web services,同時還必須領會以上列舉的每一種.NET技術的基本要素。很可惜,我個人期待的Eric Newcomer的著作《Understanding Web Services: XML, WSDL, SOAP, and UDDI》目前在國內還不得見。不過,無論你打算學習Windows Forms,還是ASP.NET(含Web Services),抑或其他.NET技術,我認為首先應該建立對.NET平臺的通盤認識,然后從CLR開始,自底向上,深入學習.NET各專項知識。

          直到今天,David Chappell的《Understanding .NET: A Tutorial and Analysis》(《.NET大局觀》,華中科技大學出版社)仍然是一本不錯的.NET大局觀讀物。David善于將復雜的技術用簡單而清晰的方式表達出來。尤其值得一提的是,這本書對于Web Services的清晰介紹,在別的書里很難看到。然而,有感于一些讀者的誤解,作為譯者之一,在此我想重提侯捷先生的一句話:“讀者基礎”從來都是一個說不清楚、難以量化的東西。不妨試讀一二,如果滿意,它就適合你。

          我時常光顧的一家書店的.NET圖書總量,在很短的時間內就趕上了Java圖書總量。林林總總,內容遍及各個領域,包括微軟中間語言(Intermediate LanguageIL)、CLR.NET框架類庫、.NET語言、Visual Studio .NET,以及像COM互操作、多線程這樣的高級主題。限于篇幅,本文重點推介三本好書,不過,僅此三本已經涵蓋了.NET平臺的大半江山。

          CLR、Windows Forms和ASP.NET 

          Jeffrey Richter, Applied Microsoft .NET Framework Programming
          《Microsoft .NET框架程序設計(英文版)》,機械工業出版社
          《Microsoft .NET框架程序設計(修訂版)》,清華大學出版社 

          .NET框架主要包含兩大塊:其一是CLR,其二是類庫,而CLR則是.NET框架中其他任何東西的基礎。無論是要透徹理解像C#Visual Basic.NET這樣的.NET語言,還是要全面把握ASP.NETADO.NETWindows Forms這樣的.NET框架類庫,你都必須對CLR有一個很好的理解。Richter的這本書就是CLR方面的權威著作,它詳細地講解了CLR的構造和工作機理,而.NET框架類庫并非本書的重點。 

          RichterWin32程序設計領域的權威技術作家,本書則奠定了他在.NET世界同樣的地位。這本書對于程序集、裝箱/拆箱、事件和委托、異常機制以及垃圾收集等關鍵主題的講解準確而清晰,同時還給出了許多寶貴的建議和忠告。因此,盡管Visual Studio .NET這樣的集成開發環境很容易上手,但為了有效地構建各類高效的應用程序,我推薦你在動手編寫代碼之前,認真閱讀一下這本書。 

          這本書對于完全的初學者有一定的難度,而對于有經驗的程序員(包括Windows DNA程序員和Java程序員)來說,這本書正是他們夢寐以求的.NET讀物。 

          順帶一提,這本書的中譯本先后出過兩個版本。“修訂版”的譯者李建忠先生是我的朋友。因我虛長建忠幾歲,在他決定接受此書修訂邀請之前曾征求我的意見 — 很幸運 — 他沒有理會我的建議,各位讀者朋友今天才得以看到這個傾注著譯者心血的譯本。 

          Charles Petzold, Programming Windows with C# (Core Reference)
          《Programming Windows with C# (Core Reference)(影印版)》,世界圖書出版公司
          《Microsoft C# Windows 程序設計》(上、下冊),北京大學出版社

          這部著作的問世,證明Petzold 依然是Windows GUI程序設計領域的首席作家。本書專注于使用Windows Forms類庫和C#語言編寫傳統的Windows桌面應用程序。是的,本書沒有涉及CLR、ADO.NET以及ASP.NET等“更重要的”.NET技術。除了對C#語言浮光掠影的簡介外,它沒有越雷池半步,全神貫注于Windows Forms程序設計,深入解釋了Windows Forms類庫的方方面面。

          盡管Visual Studio .NET提供了大量的可視化工具和向導,使我們得以快速地設計用戶界面并享用其生成的代碼框架,但Petzold 沒有讓Visual C# .NET自動生成代碼,本書所有代碼都是手工編寫而成 — 這也是Petzold一貫的風格。不妨首先按照Petzold的方式,學會怎樣編寫你自己的代碼,在理解了足夠多的Windows Forms知識的基礎上,再使用IDE來縮短你的項目開發周期。

          淵博的領域知識,高超的寫作技巧,清晰的寫作風格,使得本書如此之厚,而又如此簡潔、清晰。閱讀本書,宛若和Windows程序設計大師面對面地交流,許多疑惑,豁然開朗。 

          Windows Forms程序設計領域,我還要特別提一下Chris Sells的著作《Windows Forms Programming in C#》,原因倒不僅僅在于我是這本書中文版的領銜譯者。 

          我們知道,GUI應用程序開發方面的參考書往往會走向兩個極端。一種是充斥著IDE截屏圖的開發工具“快速入門”,我想各位讀者對這種書不應該陌生。而上面提到的Petzold的著作則走向“另一個極端” — 它只字不提IDE提供的可視化的交互設計特性。我不否認Petzold的方式對于學習者來說行之有效 — 我本人就是Petzold著作的受益者。然而,你知道,作為一名開發實際.NET應用的程序員,我們幾乎總是工作于像Visual C# .NET這樣的IDE中,因此,我們必須能夠游刃有余地運用IDE提供的各項功能,同時還必須洞悉IDE背后隱藏的Windows Forms及與之緊密相關的知識。Sells 的這本書能夠讓你心想事成。請耐心等候,好戲還在后頭。 

          Jeff Prosise, Programming Microsoft .NET
          《Microsoft .NET程序設計技術內幕》,清華大學出版社
           

          和前面兩本書一樣,這也是一本“文不對題”的著作,中文版的書名則更加離譜。盡管這本書在內容上劃分為三大塊,對于Windows Forms等技術主題也花了一定的篇幅,但本書的出發點顯然在于ASP.NET應用程序開發,它的大部分篇幅要么是講述Web應用開發和Web Services技術,要么是講述與此兩者密切相關的東西。 

          這并不奇怪。盡管.NET平臺包含許多東西,但首先同時也是最重要的是,它的出發點是為了提供一種更好的編寫以Internet為中心的應用的方式(請不妨再回顧一下.NET的定義)。可以說,Prosise準確地把握、解釋和示范了.NET平臺最主要的一大塊內容。 

          鑒于傳統的ASP技術是如此流行,ASP.NET對開發人員的影響肯定要比 .NET框架類庫的其他任何部份都要大。客觀地說,在.NET世界,ASP.NET的地位要比Windows Forms的地位來得重要。 

          順帶一提,Prosise的著作一向是一線程序員的鐘愛。在程序員面前,他的作品沒有什么架子,你可以一邊翻著他的書,一邊寫程序。 

          .NET語言 

          CLR.NET語言定義了一套通用的語義,而不同的.NET語言則以不同的語法表達了這一語義。在.NET平臺中,語言已經退居次席。和大多數.NET程序員一樣,我選擇的.NET語言是C#

          如果你安裝了VS.NET 2002或VS.NET 2003中文版,請到VS.NET的安裝目錄下搜索一個名為“C# Language Specification.doc”的文檔。其作者是Scott Wiltamuth 和 Anders Hejlsberg。區別在于,VS.NET 2002攜帶的是英文版,而VS.NET 2003攜帶的則是中文版。你也可以訪問MSDN主頁(文后給出了具體鏈接)。這兒除了有C# Language Specification外,還有C# Programmer's Reference這樣的非常有用的參考手冊。

          此外,如果你是一名完全的C#初學者,不妨留心一下Petzold的《Programming in the Key of C#: A Primer for Aspiring Programmers》。這是Petzold專為C#初學者編寫的一本小書。我相信這本書早晚有一天會出中文版。本著Petzold的一貫水準,它不應該讓你失望。

          結語 

          微軟起初為許多玩意兒貼上了.NET標簽,盡管當時其中一些既未使用.NET框架,也不直接支持.NET框架。這也導致了巨大的混亂和混淆,同時也為.NET招致了更多的非議和批評。我們應該還有印象,在.NET戰略發布之后的很長時間內,仍然有許多人迷惑不解:到底什么是.NET?或者說,.NET到底是什么?

          今天,多少有點諷刺意味的是,就在一些產品真的支持.NET技術之際,它們反而丟掉了.NET標簽。比方說,內置了.NET框架的“Windows .NET Server”在發布前夕被重命名為Windows Server 2003.NET企業服務器亦在陸續支持.NET框架、成為貨真價實的“.NET企業服務器”的同時,而被撕掉.NET標簽。而所謂的“Office .NET”終究只是一個謠傳,但Office 2003的確提供了對.NET實實在在的支持。比方說,Word 2003 文檔和模板以及 Excel 2003 工作簿都可以運行所引用的 .NET 程序集中的代碼,而這些 .NET 程序集代碼的安全性則是由.NET框架而非WordExcel進行管理的。

          但是,有兩樣東西的.NET標簽貼得一直非常牢靠:一是.NET框架,二是Visual Studio .NET。我們可以感覺到,目前.NET標簽基本上局限于使用在“技術范圍”之內,這與其說是微軟的妥協退步,倒不如說是一種理智的進步。“高科技”企業向來有拿技術名詞糊弄外行的惡習,這也是市場營銷人員的慣用伎倆(比如新模范馬路上的手機廣告可以是“內置Java技術……”)。也許微軟意識到了誠實一點于人于己都有好處。

          .NET標簽的縮水并不意味著微軟.NET技術戰略發生了根本性的動搖。盡管像.NET My Services這樣的技術沒有像微軟預想的那樣成功,但.NET平臺的核心技術卻一直穩步向前發展,并業已取得無可辯駁的成功。回頭看看一兩年前包圍著.NET的許多誣蔑和毀謗,如今早已不攻自破,事實再次證明微軟將續寫不敗的神話。無論如何,和您一樣,我希望.NET和它的競爭對手能夠共同擁有美好的明天。


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 威海市| 呈贡县| 浦东新区| 治多县| 察哈| 周口市| 法库县| 雷山县| 绥芬河市| 民丰县| 讷河市| 崇仁县| 潮州市| 禄丰县| 和林格尔县| 盐源县| 平泉县| 娱乐| 鹿泉市| 西丰县| 仙游县| 马鞍山市| 建瓯市| 吉林省| 嘉峪关市| 新竹市| 侯马市| 周至县| 石阡县| 三亚市| 葫芦岛市| 游戏| 石嘴山市| 岳阳市| 西乌珠穆沁旗| 沧源| 灯塔市| 休宁县| 龙里县| 迭部县| 友谊县|