WPF參考書推薦
下面先整理下,本人主要學習的WPF參考書:
1、WPF編程寶典(C#2010)
該書:(必讀)
心得體會:讀完該書后,你對WPF的基礎和基本控件的使用,包括WPF的編程模型,相比Winform的特性和如何開始在實際的項目中下手,都有了基本的認知。里面還介紹了控件模板的使用,WPF必須掌握模板。里面包含了WPF的方方面面,不過,深度還有待繼續挖掘。
2、深入淺出WPF
該書 (入門必讀)
心得體會:該書寫的淺顯易懂,特別適合對WPF不了解,又渴望快速對WPF上手的書,符合中國人的閱讀習慣,很容易就看完該書,不過,該書中沒有包含太多的結合項目實例的內容。是本好書。
3、WPF Programmer's Reference: Windows Presentation Foundation with C# 2010 and .NET 4
該書:(建議閱讀)
心得體會:該書是英文版的,剛開始讀起來會比較的吃力,不過,一旦你看完前二本的WPF的書之后,再度,就不會那么吃力了。該書將WPF的特性和用法都介紹的非常的詳細,對實際開發WPF項目過程中的人有很大的幫助,能夠解決很多的基本問題。
4、WPF 4 Unleashed
該書 (建議閱讀)
心得體會:該書的內容基本上和上述幾本書上大體的內容是相近的,但是在一些具體的WPF特性方面,會有更深入的講解,比較適合深入研究WPF的人士閱讀。
5、Sams Teach Yourself WPF in 24 Hours
該書 (建議閱讀)
心得體會:該書的內容上采用教學時的方式,分了二十四個學時,剛開始的時候會比較容易,后面的內容,相對就會比較深入,適合從頭開始學習WPF的人,學習完后,會對WPF基本使用掌握。
以上的介紹,僅代表個人意見,請大家不要拍磚。
WPF 系列包含的內容
- WPF基礎知識介紹
- WPF布局介紹
- WPF控件介紹(包含第三方控件)
- WPF自定義模板
- WPF依賴屬性、路由事件
- WPF的MVVM編程
- WPF開發框架Prism
- WPF開發框架WAF
- WPF開發框架Caliburn
WPF 為什么我們選擇?
介紹
Windows APIWindows Presentation Foundation (WPF) 是下一代顯示系統,用於生成能帶給用戶震撼視覺體驗的 Windows 客戶端應用程序。使用 WPF,您可以創建廣泛的獨立應用程序以及瀏覽器承載的應用程序。 WPF 的核心是一個與分辨率無關並且基於矢量的呈現引擎,旨在利用現代圖形硬件的優勢。WPF 通過一整套應用程序開發功能擴展了這個核心,這些功能包括可擴展應用程序標記語言 (XAML)、控件、數據綁定、布局、二維和三維圖形、動畫、樣式、模板、文檔、媒體、文本和版式。
相比Winform的優勢
1、WPF所有的操作都不依賴於GDI和GDI+,而是間接依賴於強大的Direct3D,這就意味着通過WPF可以做出以前WinFrom無法想象的視覺效果,包括3D效果的應用程序。目前最新的顯卡GPU已經支持DirectX 11,絢麗的逼真3D效果通過WPF實現也是非常簡單的事情。
2、WPF實現徹底把程序架構,業務邏輯和用戶界面(UI)徹底分開,WPF引擎把XAML描述的UI元素解釋為相應的.NET對象,從而在應用程序創建相應的控件,UI人員和程序人員均可對此控件進行編輯加載,從而實現用戶界面和程序架構的徹底分離,而Winform這一點是做不到的。
WPF具有超強的用戶體驗,簡單便捷的部署方式(易於更新升級),更簡便的編程方式,實現絢麗效果比較簡單的特點。今天越來越多的軟件廠商開始采用WPF作為應用程序開發模式,一些基於WPF開發的桌面應用程序也走進我們的視野,WPF QQ等。與此同時,世界各大控件廠商也紛紛推出了基於WPF的用戶界面控件包,以更加絢麗、簡單、高效的控件模式提供用戶界面解決方案。當我們面對如此多的WPF控件的時候,如何選擇適合自己軟件使用的WPF控件的確是個難題,下面我就4款主流的WPF控件作一些對比介紹,希望對選擇WPF控件有幫助。
開發模式和團隊協作上的改變
winform開發模式:需求->設計->開發(功能與界面設計[根據美工設計的界面效果,通過圖片或者GDI來實現特殊效果])->測試->交付
WPF開發模式: 需求->設計(功能設計與界面設計)->開發(功能開發) 與設計(界面設計[模板和樣式即可實現])->測試->交付
總結:主要是體現在開發和設計階段,將設計與開發人員從原來的設計人員設計后,開發人員需要實現特殊的效果。並且開發人員需要書寫大量的代碼,除了書寫基本的功能代碼還需要書寫界面效果的代碼。WPF通過blend等可以讓界面設計人員設計完的效果轉換為xaml語言,開發人員只需要采用MVVM編程模式,書寫業務邏輯代碼即可,而不要再次跟進界面控件的名稱來進行View的更新。關於綁定,這塊是WPF最有特點的部分之一。
系統設計
winform:我們需要在界面內容書寫調用業務邏輯的相關代碼。這樣,當業務邏輯發生變化,我們需要修改頁面,同時修改界面內的代碼。或者是我們修改業務布局,不修改業務邏輯,這時我們也需要開發人員才可以完成。
WPF: 有了WPF之后,上面的二種情況,則不會那么復雜了,1、當業務邏輯變化時,只需要修改ViewModel中的相關代碼即可。2、當業務邏輯不發生變化時,任何對界面的修改,都可以讓界面設計人員去完成,這樣才能做到各司其職和協作。
未來發展
微軟未來的發展方向上來說,windows8 的Metro風格的觸摸應用,采用xaml語言進行編程的方式,基本上熟悉WPF的朋友們,上手都沒啥好說的,window phone8上,熟悉WPF的開發人員,轉wp開發也是比較容易的,因為基本的就是語法上的區別,總體來說不會那么困難。所以說,你掌握了WPF,那么就等於掌握了一個基礎,未來能夠快速學習新技術的基礎,跟着微軟,就是要不斷的學習。
WPF 也有缺點
WPF的優點很多,缺點也同樣明顯,WPF的UI線程模式,對於不熟悉多線程的朋友,剛開始學習的時候,會有些問題,WPF在想能和運行效率上不如winform,而且,界面效果,如果不會進行界面設計的人,設計出來的頁面,還不如winform的界面來的簡介。而且就桌面簡單應用來說,不如winform來的快,不過其強大的特性和優勢,還是推薦WPF,WPF大大提高了用戶體驗,特別適合桌面應用。
WPF 天馬行空
WPF對界面樣式和控件樣式,可以說是天馬行空一樣,只要是你能想到的自定義方式,你都可以進行自定義控制,強大的動畫支持,讓我們能夠深愛這樣的技術,我們目前的項目中大量的使用WPF技術,剛開始學習WPF的時候,往往容易陷入winform的編程模式,就是拖拽控件,然后將控件命名,在后台代碼中操作控件,這樣的模式,只適合簡單的應用,熟悉WPF的同仁都知道,采用MVVM才可以解決這樣的問題,一旦你掌握了MVVM,路由,命令,依賴屬性后,對於WPF中的控件,綁定,自定義動畫,自定義界面效果等你都可以隨意想象和發揮。也許真的天空才是你的極限,不過實際的企業級應用當中,更多的是更符合用戶使用習慣的方式,所以我們設計時更貼近用戶的使用習慣。