前言
2008年在世界經濟歷史上是一個不平凡的一年,在這一年中,美國的五大投資銀行有兩家破產。金融危機席卷全球,美國的失業率在過去的一年從4%飆升到了10%,有些城市的失業率甚至高達20%;加拿大的就業數字也是慘不忍睹,多倫多的失業率劇升到了12%(2009年8月數據)。在這樣暗淡的經濟背景下,有關WPF的工作卻在快速增長,過去兩年,和WPF相關的工作職位在北美和歐洲每半年翻一番,WPF初級職位的薪水在5萬美元到7萬美元之間,高級職位在10萬美元以上。一般來說,新的開發平臺在中國的應用比歐美要晚2~3年,但隨著互聯網的普及和軟件開發外包到中國,這一遲后時間正在縮短。可以預見,在未來幾年內,和WPF相關的工作職位也會在中國快速增長;所以,學習WPF編程技術正當其時,擁有WPF技術必將使你在職場上更加揮灑自如,也就是說,學習WPF就是獲取新的工作機遇。
WPF是基于.NET的新一代界面開發平臺,它實現了桌面應用程序和互聯網應用程序的統一編程,實現了程序員長期夢想的數據驅動用戶界面,融合了動畫、多媒體的功能,跨越了圖形和控件、控件和排版等技術上的界限,在很短的時間內實現并超越了Flash和PDF的相關功能。近年來微軟在軟件開發上的投資額已和中等國家的GDP相當,其中.NET是微軟最大的投資項目。在.NET 2.0之后,微軟停止了WinForm的開發,而WPF實際上是微軟在今后一段時間內唯一要不斷投入的用戶界面開發平臺,這一平臺在Vista、Windows 7和Window Server上得到了廣泛的支持。建立在WPF上的應用程序將會自動隨著.NET的不斷開發而自動拓展新的功能:把WPF和WCF(Windows Communication Foundation)技術相結合,可以很容易地實現面向服務的軟件架構(SOA,Service Oriented Architecture);WPF對圖形流的支持,使得開發GIS應用程序更加方便;基于SilverLight和Ajax技術是互聯網開發的新熱點。所以,企業把應用程序的界面建立在WPF之上,不僅可以極大地縮短開發周期,而且可以把同一技術用在不同的項目上,從而極大地降低開發成本。比如過去開發桌面應用程序和互聯網應用程序一直是兩個不同的開發團隊,而使用WPF,我們只需要一個開發團隊。在過去的20年內,微軟一直是用戶界面開發的領跑者;若企業把應用程序建立在WPF之上,就不會擔心落伍。所以,應用WPF就是降低企業的開發成本。
本書特點
本書深入淺出地介紹了WPF中的各種新概念,使用了大量圖表和實例力圖以整體的形式把WPF展現在讀者的面前。筆者推崇Scott Meyers的寫作風格(Scott Meyers的C++系列叢書在軟件界有廣泛的影響——筆者注),即以散文的筆調描述技術細節,以避免枯操的敘述;希望讀者在閱讀本書時有一種像朋友在一起聚會的感覺,邊喝啤酒邊聊天,在聚會結束時,您會發現自己已經掌握了WPF技術。因此,閱讀本書是通向WPF專業編程的捷徑。
由于WPF是在.NET 3.0之后引入的,故讀者在使用WPF之前應該已經熟悉 .NET的編程環境、C#語言等基本知識。本書使用簡單的UML(Unified Modeling Language)描述WPF類和類間的關系,若您具有UML的基本知識,對閱讀本書會有幫助。書中的例子在Visual Studio 2008和.NET FrameWork 3.5上調試過,有時筆者也使用了微軟的Expression Blend 2.0調試,但后者不是必需的。
本書光盤使用說明
本書的配書光盤含有約100MB的源程序,所用的語言為C#和XAML。所有的例程在Visual Studio 2008和.NET Framework 3.5上調試通過,筆者在創建某些例程時,使用過Microsoft Blend 2.0。Microsoft Blend工具在創建WPF界面時非常有用,但對于運行本書的例程不是必需的。本光盤的內容是對本書的補充,因書中著重介紹WPF編程模型和基本概念,光盤中則含有完整的源代碼。
1.光盤中的目錄使用Yingbao.Chapterxx格式,如第1章的例程在Yingbao.Chapter1的目錄下,第2章的例程在Yingbao.Chapter2的目錄下等。全書共18章,整個光盤含有18個目錄。
2.在每個目錄下有一個相應的Visual Studio解決方案文件,其文件名采用Yingbao.Chapterxx.sln格式,如第1章Visual Studio解決方案文件名為Yingbao.Chapter1.sln,第2章Visual Studio解決方案文件名為Yingbao.Chapter2.sln等。該文件中含有一個或多個項目,如Yingbao.Chapter13解決方案中含有六個項目。運行某個項目,您需要在Visual Studio中的Solution explore窗口下單擊鼠標右鍵,在彈出菜單中選擇“Set as StartUp Project”條目,然后,您只要按下“F5”功能鍵,或在Visual Studio的“Debug”菜單下選擇“Start Debug”即可。
3.例程中命名空間的名字采用Yingbao.Chapterxx的格式,如第1章所有例程中的類都在Yingbao.Chapter1命名空間中,第2章的所有例程中的類都在Yingbao.Chapter2命名空間中。雖然對于本書的例程來說使用不同的命名空間不是必需的,但對于組織大型項目,使用命名空間是良好的習慣。
4.例程中的類名、屬性名、域名、方法名采用通用電氣(GE)編程規范,讀者也可用其他的公司或自己公司的編程規范。
感謝
寫作是一個費時費力的工作,筆者在寫作本書的時候,得到了家人的支持和理解。電子工業出版社的楊福平副總編和袁金敏編輯對本書的出版做了大量的工作,筆者在此表示衷心感謝。
聯系方式
最后,若您有什么建議和意見或者發現書中的錯誤,請和筆者聯系:Yingbao.Li@gmail.com。
李應保
2009年9月8日于加拿大
- 零起步輕松學單片機技術(第2版)
- Unreal Engine:Game Development from A to Z
- Splunk 7 Essentials(Third Edition)
- PowerShell 3.0 Advanced Administration Handbook
- 21天學通PHP
- 精通Windows Vista必讀
- PIC單片機C語言非常入門與視頻演練
- 模型制作
- 電腦上網直通車
- Cloudera Administration Handbook
- Red Hat Linux 9實務自學手冊
- Microsoft System Center Confi guration Manager
- Excel 2007常見技法與行業應用實例精講
- Godot Engine Game Development Projects
- 精通LabVIEW程序設計