WP開發入門指南:如何學習WP開發?
新的體驗,新的開始
學習Windows Phone開發的目的是為了開發Windows Phone應用,但什么樣的應用才算好的應用呢?毫無疑問,我們需要一些榜樣作為參照,我們希望了解一個標準的Windows Phone應用應該是怎樣的,而這正是學習Windows Phone開發的第一步。
一般而言,我們有以下3種途徑體驗Windows Phone:
- 買個Windows Phone手機親自體驗一下。這是最簡單直接的,如果你真的打算加入Windows Phone開發陣營,Windows Phone手機是必須的,買到之后不要急著越獄,先以一個普通用戶的身份使用一段時間,并且觀察和體驗一下內置的應用是怎樣設計的。
- 如果你還在觀望,不想現在入手Windows Phone手機,那么你可以通過網上的視頻間接體驗一下,這里推薦一個《解讀Windows Phone 7 Mango》視頻(英文),短短15分鐘涵蓋了Live Tiles、人脈、消息、Office、游戲、多任務、Bing等多個特性。此外,官方的windowsphone.com上也有非常豐富的視頻和文字內容。
- 如果你喜歡看書,這里推薦《Windows Phone 7 Plain & Simple》和《Windows Phone 7 For Dummies》,這兩本書包含大量截圖,并且詳細講述了Windows Phone的使用步驟,唯一的不足就是缺少Windows Phone 7.5的內容,不過就了解Windows Phone的體驗來說已經足夠了。
安裝開發工具 ,寫個Hello World應用
當你對Windows Phone有了一個感性的認識之后,接下來就是下載和安裝開發工具了, 并且熟悉一下開發工具。這套開發工具是免費的,包含Visual Studio 2010 Express for Windows Phone、Expression Blend 4 for Windows Phone和Windows Phone模擬器等,足以應付日常Windows Phone應用的開發任務了。
安裝開發工具之后,按照慣例應該寫個Hello World應用,這個應用不必很復雜,它的目的是為了讓你經歷一次簡單的開發過程,同時驗證開發工具的安裝和配置沒有問題。
值得提醒的是,Windows Phone模擬器是不能在虛擬機里面運行的,而且它對顯卡也有要求,需要“使用 WDDM 1.1 驅動程序的支持 DirectX 10 或更高版本的圖形卡”,否則,Windows Phone模擬器的表現會有點不正常,比如看不到一些動畫效果、淺色主題渲染問題以及IE瀏覽器和WebBrowser控件無法顯示網頁內容等。
找個實際的需求開發一下,邊做邊學
有了前面的準備,接下來就可以正式學習Windows Phone開發了。如果你想系統地學習,可以找一些書來看,這里推薦Charles Petzold的《Programming Windows Phone 7》,這本書免費提供PDF版,并且附帶完整的代碼示例,喜歡閱讀經典電子書的同學絕對不能錯過。如果你傾向于中文內容,也沒有問題,因為這本書已經由國內的Windows Phone開發者林永堅、姜泳濤和李鵬翻譯并出版了,書名是《Windows Phone 7程序設計》。
想要更好的把知識學到手,你需要通過一個實際的應用把它們串聯起來,這里推薦Allen Lee的《WP7有約》,這個系列文章通過一個實際的應用詳細展現一個完整的開發過程以及在這個過程中的所思所想,具有一定的借鑒價值。
實際上,你不必把Windows Phone的知識塞滿腦子才能開發,只要你有C#的基礎,對Windows Phone的基本概念有所了解,就可以開始了。你可以挑選一個常見的需求,比如很多人都做過的微博客戶端,或者你自己想要的功能,然后著手分析和設計,接 著進行實現。在這個過程中,你會遇到各種各樣的問題,各種不懂和各種郁悶,但你不應感到失落,因為這些困難為你提供了學習的目標和方向,你的知識和經驗正 是從解決每一個這樣的困難積累起來的,而所有這些困難串聯起來最終成就了你要開發的應用以及你的成就感。
無論你選擇什么需求進行開發,有一點必須切記,那就是你必須對它們有興趣。這點很重要,因為在你做出決定之后的一段時間里你都要和它們打交道,所以 最好是你有機會用到的,這樣就能建立一個有效的反饋循環,幫助自己深入了解這些需求。當然,如果你能接觸到潛在的用戶就更好了,你可以通過與他們的交流拓 寬你對這些需求乃至整個應用的視野。
還有一點值得提醒的,開始的時候不必太過擔心你的設計和實現不好,因為隨著時間的推移,你會發現需求產生變化,當初設想的某些需求消失了或者合并到 其他需求里,以及一些新的需求產生了等等,這些都可能對設計和實現帶來沖擊。這對于你來說至少有兩個好處,第一,它讓你有機會重新審視原先設計和實現的不 足,這些經驗教訓應該記錄下來,第二,它讓你深刻體會到需求變更對整個過程有哪些影響。
不管怎樣,盡早開始!
學用第三方庫
隨著開發過程的推移,你很快就會發現標準的控件無法滿足你的需要,這個時候就需要求助于第三方控件庫了。
Silverlight for Windows Phone Toolkit是最常用的第三方庫之一,它包含大量常用的控件,比如WrapPannel、ContextMenu等,同時也包含了大量不受歡迎的bug,比如Allen Lee在《WP7有約(二):課后作業》最 后一節提到的從新的頁面返回LongListSelector控件所在頁面時出現的異狀。這些開源的第三方庫可以極大地豐富你的開發工具包,但在使用之前 你需要有個心理準備,萬一出了問題,你有可能需要自己閱讀和調試代碼,找出并修復問題。這是一個好的學習機會,你除了可以學習如何使用這些第三方庫,還可 以學習它們是如何設計和實現出來的,不過,如果項目比較緊就另當別論了。
Coding4Fun Windows Phone Toolkit是另一個最常用的第三方庫,它也包含大量常用控件,比如RoundButton、Message Prompt等,當然也存在問題,比如Allen Lee曾經在Expression Blend里使用它的某個版本時碰到的RoundButton模板異狀。 這個時候,你可以到官網那里反應問題,你需要盡可能把問題描述清楚,最好能夠提供期望效果和實際效果的截圖,幫助開發人員更好地你的問題。實際上,你在測 試自己開發的應用,也應該詳細地描述并存檔,以便你或者你的搭檔將來定位錯誤的時候不會無從入手,而且將來添加新的功能時也可以利用這些信息進行回歸測 試。
關鍵在于,你應該從現在開始一點一點地積累使用經驗以及遇到問題時的應對措施,你可以把這些知識集中起來,比如Alexis的《Windows Phone實用開發技巧合集》,它們將會在你日后開發應用的時候給予非常可觀的回報。
分享和交流
當想法僅存在于你的腦子里時,它是無序的;當你把它寫下來時,面前的文字馬上就會化身成一面鏡子,清楚地映出你的想法。事實上,在你寫下它的過程中,你的大腦會非常努力地進行整理,你甚至會察覺有些想法正在發生變化,這對于理解你的想法非常有幫助。寫下來之后,拿出給別人看看,你會得到別人的反饋,無論是正面反饋還是負面反饋,都能拓寬你的視野。
前面曾經說過,你不必在開始的時候擔心你的設計和實現不夠好,沒有人能夠把將來所有情況都考慮進來,某些經歷的確實會導致歸納過程產生偏頗,這個時 候你需要的不是獨自苦思,而是拿著你的想法去找別人,從交流的碰撞中尋求更好的突破。如果你能在交流中暫時放下對某些想法的固著,你可能會發現更好的想 法,而不是僅僅對原來想法的小修小補。
曾經有個老師說:“一個知識,你聽懂了不算真的懂,你能把別人講懂了才算真的懂。”我相信這是分享和交流的另一個好處,也正是許多人愿意在博客里分享心得的主要原因。
最后,我們把上面的內容總結成一條學習之路: