從Windows API、MFC、Windows Forms到WPF(Windows Presentation Foundation),這二十年來的Windows程式設計技術,我都涉獵過。而Charles Petzold這一號人物,除了沒有寫MFC的書之外,他所寫的書,排成一排之後,簡直就等於Windows的發展史。

其中,他所寫的《Programming Windows》一書,更是經典,這本書出到第五版。十多年前,我有幸參與了《Programming Windows》的翻譯工作,巧的是,Charles Petzold最新的WPF書籍中文版翻譯工作,現在又落到我的頭上,這讓我有機會好好地閱讀這本書。

我之所以特別喜歡Charles Petzold的書,是因為他與眾不同的寫作方式。他總是深入挖掘Windows的GUI設計,絕對不流於表面,也因此他寫的書都很厚。

這幾年軟體開發的重點在Web,但Charles Petzold依然固守在Client端的GUI程式設計,我原本以為,他會漸漸沒落,事實上,《Programming Microsoft Windows with C#》的銷售也不能算很好。但是隨著WPF技術的出現,Charles Petzold的這本《Applications = Code + Markup》將會讓他再度成為重要的書籍作者。

這是一本「學習用書」而非「參考用書」。儘管如此,本書的讀者必須熟悉C#語言並具備.NET Framework的經驗,沒有經驗的讀者,可以閱讀Charles Petzold寫的線上免費書籍《.NET Book Zero: What the C or C++ Programmer Needs to Know about C# and the .NET Framework》。

《Applications = Code + Markup》介紹如何使用WPF編寫微軟Windows平臺的程式。WPF的程式可以是一般的獨立Windows應用(這樣的程式現在常稱為Client應用),或者是分散式(Distributed)應用的前端(也就是RIA,Rich Internet Application),未來也可能利用WPF/E取代一部分的Web技術,例如:ASP.NET。WPF被認為是Windows Vista的主要API,但是也可以用在已安裝.NET 3.0的Windows XP/SP2或Windows Server 2003。

WPF其實包含「兩個」互相關連的程式設計介面。你可以利用C#(或其他.NET語言)編寫WPF程式。WPF也具備一個讓人興奮的XML語言,稱為XAML,甚至可以只用XAML開發某些應用。但是一般來說,你會同時利用程式碼(Code)和標記(Makeup)一同開發出你的應用。現在,你應該能夠體會,為什麼這本書的書名為《Application = Code + Markup》。在WPF的觀念中,我們使用XAML(Markup)定義使用者介面視覺的部分(包括圖形和動畫),然後寫程式碼(Code)處理使用者的輸入。

WPF支援兩種非常不同的程式設計介面,每個程式設計員都應該要對於WPF的Code部分建立穩固的根基,寫起Markup的時候才不會遇到障礙。因此,本書分成兩個部分,各約半本書。第一部分先引導讀者如何利用C#寫出整個WPF程式(完全不用到XAML),第二部分再介紹XAML。

本書第二部分將焦點轉移到XAML。展示如何只用XAML建立小型的應用,以及如何結合XAML和C#以建立更大型、更複雜的應用。因為XAML是用來建立應用的視覺部分,所以本書大部分和圖形相關的內容,會放在第二部分。XAML的檔案大多數是用工具所產生出來的。然而,我們還是有必要具備「親自動手編寫XAML」的能力,本書試圖要教我們這麼做。

再過幾年Windows Forms也會被淘汰,而WPF才是未來的主流。雖然WPF尚未像Windows Forms提供這麼多控制項和標準對話框,但是未來卻很有發展潛力。特別是,如果你需要做很多客製化控制項和繪圖,WPF會是你需要的。如果你想好好地學習WPF,Charles Petzold寫的這本《Applications = Code + Markup》,不會讓你失望的。

 

Application = Code + Markup 

Charles Petzold/著

Microsoft Press出版

售價:59.99美元

Amazon三顆半星

《作者簡介》

蔡學鏞

清華大學資訊工程碩士,曾任華碩集團軟體工程師、元智大學資訊系講師、美商歐萊禮出版社技術編輯、台灣微軟特約專欄作家。

熱門新聞

Advertisement