向前向前向前!向Windows Phone平臺前進

  距離2010年10月11日微軟正式發佈Windows Phone 7(簡稱WP7)已通過去半年了,2011年2月初由傳出微軟和諾基亞結盟的利好消息,我經過微博、百度知道等網站看到wp7的關注度也在持續上升,可是在國內.net開發人員中對於Windows Phone 7開發技術卻響應者不多,雖然有Terry_龍 、Alexis 、linzheng、金山崟霸等牛人撰寫了很多wp7開發的文章,可是這些文章的評論卻少得可憐,0評論的一堆,常見的就是一兩條評論,「WP7有約」的十多條評論也是「人情評論」多一點,少見技術型評論。php


    就像PC機取代小型機、Web取代桌面大潮同樣,如今移動終端時代已經到來,移動開發必將成爲新的增加點,作爲.Net開發者的咱們對Windows Phone 7的關注應該是很是高的,爲何會出現如今的狀況呢?我和我身邊的朋友已經在開發社區上認識的朋友交流這個問題,不少人目前對WP7關注不足的緣由以下:
1)windows phone 7平臺剛推出,還不知道發展前景怎麼樣,iphone、android發展都那麼火了,還有wp7的市場嗎?並且大陸尚未上市,沒有中文支持,用的人太少,也沒有這方面的工做需求,怕學了一門沒發展的技術。
2)windows phone 7集成的都是Windows Live、FaceBook、Twitter等中國人不怎麼用的應用,沒有對咱們QQ、騰訊微博、優酷的支持,來中國確定水土不服。
3)Windows phone 7的學習資料很是少,沒有這方面的書。
4)WP7的開放性性不足,好比沒有提供輸入法接口、不能編寫真正的多任務、不能直接訪問攝像頭、不能直接訪問短信、不能編寫本地代碼。
5)Windows phone 7 的開發環境搭建麻煩,沒有開發調試的真機,Windows phone 7開發必須在Windows7下,因爲種種緣由我如今只能用windows xp。android

    對於第一點,傳智播客.Net培訓班的學生就常常問我「老師,你說windows phone能火起來嗎?」,個人回答是「若是我能準確預測windows phone能不能火起來,我就比巴菲特還厲害,我就不在這教大家,我早去投資微軟了」。雖然我不能給「windows phone能火起來」做擔保,可是我是很是相信微軟的實力的。不少人看iphone、android那麼火,就好像沒有wp7的容身之地了,我不想說iphone、android的缺點,免得捱罵,我只能說「戰鬥還沒開始」。遙想當年Netscape曾經最高佔據了95%的瀏覽器市場,微軟IE還不是短短几年就把Netscape踩死了?遊戲開發領域的OpenGL當年也是很是風光,可是微軟靠結盟的方式推廣DirectX,如今DirectX的已經蓋過了OpenGL;同是遊戲領域的微軟XBox不也從曾經獨佔鰲頭的PSP中搶走了一大塊市場;離咱們最近的.Net平臺也不是後發制人從Java中奪下了很大一塊市場,如今國內.Net開發的職位和Java開發職位數量相差無幾。微軟後發制人這一招一向玩兒的很好,因此我我的情感上相信在移動開發領域微軟也會再現一場經典的戰役。微軟目前推廣WP7的切入點找的也很是好,微軟利用他XBOX的市場優點來推廣WP7,因爲WP7支持XBOX的XNA遊戲開發技術,聽說XBOX下的XNA遊戲只要修改幾行代碼就能夠移植到WP7下運行。XBOX平臺下有大量優秀的遊戲,這樣在WP7下游戲的數量就會出現井噴(這點已經在真實的上演了),對於普通的手機用戶來講,他無論你是什麼系統,用的什麼技術,手機除了打打電話、發發短信、照照片以外,大部分時間就是一臺隨身遊戲機,因此微軟是準備靠WP7的遊戲優點搶佔市場,期待微軟這步棋走好。
   
   
    固然即便微軟敗了,那麼難道咱們學習的WP7開發的知識就浪費了嗎?要知道對於一個平臺上的開發來講,最難的不是具體某個技術,而是這個平臺的理念。好比對於Web開發,最難的是如何處理客戶端和服務器端的交互、如何作好頁面優化、如何作好SEO、如何處理用戶的訪問壓力等等,不管是asp.net開發仍是J2EE開發仍是PHP開發,開發一個大型的互聯網應用面對的問題不都是同樣的嗎?一個作PHP開發的人轉作asp.net會很難嗎?確定不會,由於在php中遇到的問題在asp.net中也能會遇到,php中解決一個難題和思路和asp.net中是同樣的。一樣對於手機開發來講,最難的不是一門語言,而是移動開發和桌面開發的不一樣要求、移動開發界面交互的特色、觸摸屏的應用、LBS等新理念。所以若是咱們熟悉了Windows Phone7開發,即便微軟敗了,咱們仍然可以用易經掌握的移動開發的理念去很快熟悉其餘移動操做系統的開發。
   
    「大陸尚未上市,沒有中文支持」這樣的問題也不用擔憂,由於這只是暫時性的問題,Windows Phone7中文版在2011年末就會推出。「windows phone 7集成的都是Windows Live、FaceBook、Twitter等中國人不怎麼用的應用,來中國確定水土不服。」這也只是一個臨時性問題,微軟根本尚未發佈中文版,如今看到的都是給老美用的版本,固然只有FaceBook這些應用了,你用擔憂中文版裏FaceBook不能用?微軟本地化作的是很是優秀的,微軟很是懂中國國情,這就是爲何谷歌離開中國而微軟在中國則發展的很happy的緣由。Windows Phone7中文版推出的時候你們在手機上確定看到的是QQ、新浪微博等這些本地化應用的。windows


    「用的人太少,也沒有這方面的工做需求」,我只能說,如今不趁着業餘時間學習一下,等你們都看清的時候早就晚了,閒着也是閒着,學一下Windows Phone開發,2011年末Windows Phone中文版出來,衆多廠商會須要大量Windows Phone開發的崗位的,到時候再臨時抱佛腳準備就趕不上最好的時機了,最好技術儲備,這種事情及早不及晚。
   
    「Windows phone 7的學習資料很是少」,看似書店裏沒有Windows phone 7開發的書,網上關於Windows phone 7開發的資料也比較少,其實研究過Windows phone 7的開發人員都知道,Windows phone 7開發大部分的內容都是Silverlight、XNA這些東西,真正WP7特有的技術並很少。若是不進行遊戲開發,那麼WP7開發只涉及到Silverlight和少許的WP7特有API了,並且Windows phone 7下的Silverlight和普通的Silverlight差異很是小,如今Silverlight資料很是多,因此這些Silverlight學習資料都至關於WP7的學習資料了。因此想學Windows phone 7又懶得裝WP7開發環境的能夠直接去學Silverlight就行。WP7特有API很是少,一兩天時間就能夠基本掌握。
   
    WP7的開放性性不足確實是大問題。我看着Windows Phone SDK的就來氣,開發的API太少了:沒有開放輸入法開發接口,因此咱們只能坐等微軟推出官方的中文輸入法!沒法直接訪問攝像頭,只能經過CameraCaptureTask讓用戶手動拍攝,我要作一個條碼掃描的程序就作不了呀!沒法直接發送短信,只能調用SmsComposeTask調用起來短信發送程序讓用戶點擊發送,我怎麼作短信羣發程序呀!沒法響應來電通知,我怎麼作「響一聲就掛」等來電防火牆呀!沒法訪問非獨立存儲以外的空間,我怎麼作一個文件瀏覽器,我怎麼作一個手機安全掃描軟件呀!沒法訪問聯繫人列表,我怎麼寫一個聯繫人導入導出程序呀!沒法編寫多任務程序我怎麼作定時任務提醒程序呀,連G-Alarm的WP7版本也只能尷尬的運行在前臺,一旦被別的程序帶進墓碑就只能乾等着睡過頭上班遲到了!有木有!Native Code的編寫權限只有OEM夥伴纔有,普通開發人員沒法編寫本地代碼,我怎麼作本身的系統應用呀!瀏覽器

     以目前微軟開放的API來看,咱們非OEM開發人員只能開發遊戲、大衆點評網客戶端這類的應用,像手機360安全衛士、來電通、鬧鐘等這類應用沒法實現。我相信這些都是暫時的,微軟在逐步完善,而不是一開始就推出一個完善的版本,這也是適合互聯網時代的發展速度,隨着Windows Phone的升級,Windows Phone的API會愈來愈豐富的,好比多任務功能在下個版本中就將提供,但願微軟儘快開放這些接口,能讓咱們開發出更豐富的應用。Windows Phone是基於Windows CE內核的,所以也請Windows CE高手研究一下Windows Phone,能讓咱們有更多undocumented的資料。固然對於想找一份Windows Phone開發的工做的人來講不用擔憂這些,將來Windows Phone程序開發的工做大部分都是開發大衆點評網客戶端、優酷網客戶端、手機版騰訊微博等類型的應用,開發這些應用使用WP7目前的API足夠了,可見微軟開放API也是考慮了目前手機應用開發的主流的。
   
  最後一點「Windows phone 7開發必須在Windows7下」確實是大問題,微軟爲了賣Windows7作出了這樣的決定,微軟能夠這麼玩兒,能夠我們傷不起呀!我認識的不少朋友都因爲這樣那樣的緣由暫時只能工做在Windows XP下,他們原本是對Windows Phone開發感興趣的,後來據說Windows phone 7開發必須在Windows7下就放棄了,看到網站上Windows phone 7的開發文章也只能看一看,無法把代碼拿過來run一把。並且在Windows7上搭建起了WP7開發環境也不爽,由於微軟的WP7的仿真器有不少缺點,好比不少設備沒法用,好比FM收音機永遠是off,加速度感應器永遠是平躺靜止狀態,振動控制器看不到效果,GPS沒法使用,攝像頭模擬器永遠都是一個隨機動的黑色方塊,麥克風沒法用……;並且WP7的仿真器和主機交互麻煩,好比想把一首mp3放到仿真器中播放很難,想把仿真器中生成的一個文件拷出來也很難;WP7的仿真器對硬件要求高,配置差一點的電腦運行起來很是卡,卡的沒法忍受。
  
  我想WP7開發環境的這些缺點是不少人沒法關注WP7的一個重要緣由,爲了解決這個問題,我用了一個月的時間折騰出一個「傳智播客Windows Phone7的模擬器」。這款模擬器有以下的優勢(好像廣告耶):
  1)能夠運行在windows xp下
  2)實現了WP7絕大部分API。包括啓動器、選擇器、外設(收音機、GPS、振動器、麥克風、攝像頭、加速度感應器)、WP7特殊控件(樞軸視圖、全景視圖、DatePicker、TimePicker、ListPicker、ApplicationBar)、XNA部分功能(Audio、觸摸屏、MediaLibrary、InputScope鍵盤處理)、墓碑機制(TombStone)等。
  3)不須要DirectX10支持,在低端顯卡上也能運行
  4)資源佔用小,不像WP7仿真器那樣對計算機性能要求高,所以普通筆記本就能運行
  5)開發調試方便,可以把本機磁盤映射爲手機的媒體庫。
  
  
  注意這裏我用的詞是模擬器,而不是仿真器。模擬器和仿真器的區別是:Emulator中文叫仿真器,是精確地在一種環境下仿真另外一種環境下的運行方式,其目的是徹底仿真。Simulator中文叫模擬器,是經過某種手段來模擬某些東西,不必定要徹底正確的原理,追求的只是儘量的相像。可是若是應用可以在這個模擬器下運行,幾乎不用作任何的修改就能夠在仿真器、真機中運行。
  
  如下是一些截圖:
  安全


  
  

DatePicker控件服務器

InputScope軟鍵盤app

加速度感應器和手機方向感應asp.net

 

因爲我這段時間只是在作API的整合,因此沒有作太多美化,界面還很難看,我將繼續整理,爭取早日把這個版本發佈出來供你們分享,但願能幫助Windows Phone開發的推廣盡本身的微薄之力。個人騰訊微博:http://t.qq.com/yzk369 。再加一句廣告:傳智播客.Net培訓飛速發展,急需牛X講師的加入,年薪10——20W。iphone

相關文章
相關標籤/搜索