程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> WPF基礎到企業應用系列1——開篇有益

WPF基礎到企業應用系列1——開篇有益

編輯:關於.NET

1.開篇前言

關於本人——聖殿騎士剛入住博客園和51CTO寫技術博客,目前主要在一家外資企業從事項目管理、技術架構及企業技術培訓工作。由於工作和項目需要,所以對一些技術進行了較為深入的研究,之前在整個公司做過一些技術專場的培訓,由於每次時間較短且人員較多的關系,沒能講得很透徹,所以挺對不住那些同事的。現在在園子裡開一個博客,希望能把所學的微薄知識書寫出來,以供大家參考。近期將針對這些培訓專場推出“OO到設計模式”、“WCF基礎到企業應用”、“WPF基礎到企業應用及優化”、 “Silverlight基礎到企業應用及優化”、“Windows Azure基礎到企業應用”等系列博文,由於是自己對這些技術的使用總結和心得體會,錯誤之處在所難免,懷著技術交流的心態,在博客園發表出來,所以希望大家能夠多多指點,這樣能使一部分人受益同時也能糾正我的錯誤觀點,以便和各位共同提高!

關於WPF基礎到企業應用系列——這幾年給自己的感覺就是一直很忙,也不知道在忙些什麼,反正生活和工作都不消停,一直說寫書,但是寫了兩章就一直擺在那裡,在寫這個專題前花了點時間寫了一個31 天重構學習筆記索引,感覺重新找回了那份心靜的感覺,所以打算繼續寫一個系列文章,全當總結和技術交流。開篇之前猶豫了很久:1,面對自己喜歡的這麼多技術,不知道先寫哪一個系列為好(OO與設計模式、WCF、WPF、Silverlight、.NET多線程編程、LinQ、AOP和IOC在.net項目中綜合應用、 ASP.NET MVC、Windows Azure等),最後打算先寫WPF,然後再Silverlight,進而寫其他的系列。畢竟WPF照現在的這種趨勢發展,遲早會在C/S應用程序中獨占鳌頭。Silverlight也必將在企業級開發當中逐漸應用起來。2,WPF從2007開始接觸以來,使用比較多,也相對比較熟悉,況且作為WPF子集的Silverlight,講了WPF,Silverlight就相對簡單了。3,主要是考慮怕自己書寫的文章不能教導於人,反而誤導他人。所以懷著對這些問題的考慮,我一定會盡心盡力的寫好每一篇文章,不負大家所望!

2.內容提綱

· 1.開篇前言

· 2.內容提綱

· 3.系列安排

· 4.開發工具

· 5.參考資料

· 6.面試問題

· 7.關於前景

· 8.效果展示

· 9.本文總結

3.系列安排

前篇

· 1. WPF 基礎到企業應用系列1——開篇有益

· 2. WPF 基礎到企業應用系列2——WPF前世今生

· 3. WPF 基礎到企業應用系列3——WPF開發漫談

· 4. WPF 基礎到企業應用系列4——WPF千年輪回

· 5. WPF 基礎到企業應用系列5——WPF千年輪回 續前緣

· 6. WPF 基礎到企業應用系列6——WPF布局全接觸

· 7. WPF 基礎到企業應用系列7——深入剖析依賴屬性(核心篇)

· 8. WPF 基礎到企業應用系列8——深入剖析WPF事件機制 (核心篇)

· 9. WPF 基礎到企業應用系列9——深入剖析WPF命令機制 (核心篇)

· 10.WPF 基礎到企業應用系列9——WPF Binding全接觸 (核心篇)

中篇

· 11. 資源、樣式、模板

· 12. 尺寸縮放、定位與變換元素

· 13. WPF控件分類介紹與使用技巧

· 14. 用戶控件和自定義控件開發

· 15. 多語言、皮膚和主題

· 16. 2D圖形

· 17. 3D圖形

· 18. 動畫(幾種動畫的應用)

· 19. 音頻、視頻、語音

· 20. 文檔、打印、報表

後篇

· 21. Win32、Windows Form以及ActiveX之間的互用性

· 22. 構建並部署應用程序(ClickOnce部署、微軟setup /InstallShield+自動更新組件)

· 23. MVC、MVP、MVVM全解析

· 24. WPF的模式講解及實例(MVC Demo)

· 25. WPF的模式講解及實例(MVP Demo)

· 26. WPF的模式講解及實例(MVVM Demo)

· 27. 性能優化(WPF項目的瓶頸)

· 28.一個完整WPF項目(普通架構版)

· 39. 一個完整WPF項目(MVVM架構版)

· 30. WPF 4.0新功能

4.參考資料

提到參考資料,大家第一感覺就是MSDN,當然我也不例外,這個網站基本上是學習微軟技術的首選站點,除了這個網站以外,我還參考了很多其他的社區和網站,基本上都在.NET 技術社區之我見(英文篇)做了介紹,比如CodeProject、CodePlex 、windowsclient、C# Corner等,除了這些網站還有一些國外技術專家blog。

1.Programming Windows Presentation Foundation

http://www.amazon.com/Programming-Windows-Presentation-Foundation-Chris/dp/0596101139/sr=8-2/qid=1164814449/ref=pd_bbs_2/104-6804148-3392750?ie=UTF8&s=books

這本書出得很早,在學WPF之初就是這本書和MSDN作為教材,優點:書中講解的語言淺顯易懂並且講解的順序和思路也很清晰,內容也是面面俱到,例子也舉得很恰當。缺點是講得很簡單,稍偏向於入門書籍;書中的理論和例子都是針對於WPF的測試版,所以和正式的版本有一些出入,你會發現從書中拷貝下來的例子在程序中不能運行,這個你也不要見怪,只要能明白原理就行。

2.Windows Presentation Foundation Unleashed (WPF) (Unleashed)

http://www.amazon.com/Windows-Presentation-Foundation-Unleashed-WPF/dp/0672328917/sr=8-5/qid=1164814449/ref=pd_bbs_sr_5/104-6804148-3392750?ie=UTF8&s=books

這本書是WPF正式版出來以後出版的,所以和上一本比起來就有很大的優勢,並且講的內容也比上一本詳細,所以在很長一段時間,除了MSDN,它就成了很權威的教材。在閱讀的時候雖然沒有Programming Windows Presentation Foundation那麼輕松,但同時這裡面的例子會給你帶來很強的成就感。

這本書是Adam Nathan寫的,Adam是WPF Team的核心成員,也是WPF的專家。

3.Applications = Code + Markup: A Guide to the Microsoft Windows Presentation Foundation

http://www.amazon.com/Applications-Code-Markup-Presentation-Foundation/dp/0735619573/sr=8-1/qid=1164814449/ref=pd_bbs_1/104-6804148-3392750?ie=UTF8&s=books

WPF官方網站(http://wpf.netfx3.com)上推薦的書。

這本書是Charles Petzold寫的,也是WPF的專家。所以裡面有很多的技術內幕和使用技巧都值得我們學習和操練,但我一直沒有堅持看完,原因很簡單,這本書不太適合入門,所以當時就沒有選擇這一本書,到學會了WPF以後,又經常關顧於國外的各大社區和論壇,上面很多內容可以解除你對WPF學習和使用中的疑問,所以它就一直擱置到了一邊,直到寫這個系列之前才翻完大半。

4,WPF4是大家都期待的,因為前面幾個版本存在著一些問題,如性能優化不上去、某些特性不支持等原因。那麼WPF4的公布,讓很多人都比較欣喜,如下第一排3本就是針對WPF4(VS2010)的,所以有興趣的同仁也可以去找相關的資源。

當然國內也有一些書籍可以參考,如微軟經典紅皮書對WPF的講解可以作為入門學習,還有WPF揭秘,雖說有一些翻譯上的小錯誤,但是整體還是可以的。

5.開發工具

大部分的應用程序都會使用如下配置和工具開發:

CPU:2.40GHz  內存2G

操作系統:Windows XP+SP3英文版

開發工具:Visual Studio 2008+SP1英文版

Expression Design 3

Expression Blend 3

Expression Encoder 3

由於最近用上了一台新機器,也可能會使用它做某些開發:

CPU:i7四核 2.8GHz    內存:4G   硬盤:1T       顯卡:GTX260 高清2G     顯示器:24高清

操作系統:Windows 7  Professional

開發工具:Visual Studio 2010

Expression Design 4

Expression Blend 4

Expression Encoder 4

6.面試問題

關於面試這個問題,每個公司都會有自己的面試要求,尤其是美國和印度對WPF的重視程度,讓WPF的應用逐漸變得廣泛。面試題目也變得多了起來,之前承擔了一些WPF的面試工作,所以收集、整理和寫了一些面試題目,以供大家參考,由於是自己對這方面的一些看法,所以有錯誤的地方也請大家見諒,對每個面試者,我覺得都要以尊敬的態度,不管技術如何,不管學歷如何,人都有他擅長的一方面。同時你的理解和他的理解可能各有千秋,也不要把某些觀點強加於人而傲視別人。所以我覺不管是面試者或者是被面試者,都要懷著謙虛和尊敬別人的態度。

初級工程師

較強.NET 2.0 基礎知識& 願意學習新技術

解釋什麼是依賴屬性,它和以前的屬性有什麼不同?為什麼在WPF會使用它?

什麼是樣式(Style)?

什麼是模板(template)?

綁定(Binding )的基礎用法

解釋這幾個類的作用及關系: Visual, UIElement, FrameworkElement, Control

視覺樹vs 邏輯樹?

屬性變更通知(INotifyPropertyChange 和ObservableCollection)

ResourceDictionary

UserControls

事件的三種方式(冒泡、直接、隧道)

中級工程師

Routed Events(路由事件) & Commands (命令)

綁定詳解(包括綁定到單一屬性、實體、集合、值轉換、觸發機制、驗證等)

怎樣布局一個漂亮的UI(你們以前的項目是怎麼做的?)

WPF和之前的技術交互(WPF/WinForms)

animations 、storyboarding

ClickOnce 部署(優點和缺點)或者是自己通過微軟setup/InstallShield+自己的自動更新組件。

樣式、主題和觸發器

自定義控件

怎樣才能工作線程更新UI?

高級工程師

什麼是attached behavior(附加行為或者附加事件)?

PRISM,CAL & CAG等等框架,是否使用過?你們是怎麼用的?沒有使用的話,解釋一下自己的開發模式和框架。

怎樣才能工作線程更新UI?

WPF 3D和動畫的應用(是否使用過?用過哪些?)。

Silverlight和WPF的異同。

怎麼開發自定義控件?可以簡單介紹一下自己開發的控件。

你之前的WPF項目開發流程是怎樣的?

三種開發模式(MVVM/MVP/MVC)的理解。

WPF的性能調整(你是怎麼優化WPF性能的?)

聊聊你做WPF的一些經驗和體會。

7.關於前景

關於WPF的前景,我不想做過多的介紹,有很多人已經對這方面做了很深入的研究,那麼我們就可以做一下簡單的總結:

由於WPF帶來了很多優秀的功能和特性:

1.超強的用戶體驗;

2.簡單便捷的部署方式(易於更新升級);

3.更簡便的編程方式。

4,實現絢麗效果比較簡單。

所以在以下幾個方面得到了很廣泛的應用:

1.企業應用系統(主要做一些管理系統,國內已經很多公司在使用了);

2.一些Silverlight目前很難達到的效果同時又要求能從網絡浏覽到(如Asahiyama Zoo (日本北海道旭山動物園))

3.桌面應用程序(如雅虎推出即時通訊軟件和QQ等)。

4,一些對效果要強較高應用的產品

WPF正因為有那麼多優秀的特性和功能並且微軟一直在這方面努力,我們相信它一定會帶來一場C/S用戶程序的革命。對這個應用,我也曾專門了解過,在國內現在很多公司都在對WinForm進行升級到WPF,在國外如美國和印度等國家,對WPF的使用也逐漸普遍起來。上周公司首席科學家請客到新加坡一家六星級酒店吃飯,我以項目組附帶的形式很榮幸也被邀請,旁邊剛好是一個印度的Architect,我也順便問了他們國家對Windows azure、WPF和Silverlight等技術的應用,發現他們國家對這些技術應用得很早並且也形成了自己的一些成熟體系。最近公司做的項目有很多以色列人來演示他們做的智能系統(UI用WPF實現,智能撲捉用攝像頭,這樣人站在電視機前面就可以用自己的身體玩很多體驗,比如你可以真實體驗三維游戲、你可以用你的身體直接做很多網絡裡的事情),他們比我們現在做的系統(我們的系統是用WPF做UI,然後在電視上通過藍牙和遙控器實現點播網絡視頻、游戲和新聞等)高級很多,同時也讓我們看到他們對這方面的研發能力。所以相信WPF一定可以逐漸流行起來,就讓我們拭目以待。

8.效果展示

上面談了這麼多WPF的東西,有些沒有接觸過WPF的同仁也許會問:WPF到底能實現什麼樣的效果?WPF在哪些公司用到過?WPF究竟能不能應用於企業開發,那麼我這裡就簡單收集了一些WPF的一些效果圖和一些商業運用產品截圖,希望大家看到以後,能對WPF有一個全面的了解。

WPF部分例子的效果圖:

WPF企業使用案例(部分案例介紹來自網絡):

AMD Live :AMD為提升PC用戶數字娛樂體驗的新平台,一個結構化、可視化的在線照片、音樂、視頻的播放軟件

從這個界面來看真的是非常強大,娛樂性已經與蘋果系統幾乎無異。

下載地址:http://experience.amdlive.com/us-en/Home-Page/AMD-LIVE-Explorer.aspx

這位仁兄(http://www.cnblogs.com/lovebread/archive/2010/05/06/1728492.html)也用Blend模擬了一個比較相似的界面:

Chosun Daily iReader :基於WPF技術做的朝鮮日報閱讀器,可以看到高保真影像。

Entellium Rave:中小企業CRM提供商 Entellium

專供中小企業使用的 CRM系統,漂亮的界面與復雜內容的結合,邏輯層與表現層的分離使得這種平衡得以實現。

WPF概念版QQ

圖片來自於:http://www.cnblogs.com/technology/,這位仁兄詳細體驗了WPF帶來的快感,更多圖片也可以訪問他的博客。

Yahoo:雅虎推出即時通訊軟件

功能很強大並且還可以實現很多自定義操作。

Asahiyama Zoo (日本北海道旭山動物園)。

是微軟和日本北海道旭山動物園共同制作的動物園虛擬體驗工具,你可以通過它對動物園進行虛擬體驗,實現了很好的效果。

地址:http://www.asahiyamazoo-aict.jp/asahiyamazoo.xbap

9.本文總結

本文從幾個方面談了WPF系列安排、開發工具、參考資料、面試問題、關於前景、效果展示等內容,通過這篇文章,我們主要了解什麼是WPF以及WPF到底能給我們帶來哪些體驗。由於對Windows Live Writer使用不習慣和它發布日志有問題等原因,這篇文章花了5個多小時才完成,那麼從下一次起,我將和大家一起進入“WPF基礎到企業應用系列之旅”!

最後聖殿騎士會盡心盡力寫好這個系列,同時由於是自己對這些技術的使用總結和心得體會,錯誤之處在所難免,懷著技術交流的心態,在博客園和51CTO發表出來,所以希望大家能夠多多指點,這樣在使一部分人受益的同時也能糾正我的錯誤觀點,以便和各位共同提高,後續文章敬請關注!

出處:http://www.cnblogs.com/KnightsWarrior/

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved