作者:馬寧
俗話說,物極必反,Windows Phone就像中國足球隊一樣,在所有人對他失去信心的時候,突然靈魂附體、RP爆發,幹掉了韓國隊。當然,就像東亞四強賽說明不了問題一樣,MIX 2010上炫目的Demos只是過眼煙雲,真正考驗實力的還是幾個月後世界盃的戰場。
不過MIX 2010上的Demos的確給了曾經的Windows Mobile開發人員們帶來了一絲希望,最近一年,滿世界都是iPhone和Android,咱不是不想說話,實在是沒話可說啊。MIX 2010 Keynote視頻:
http://www.microsoft.com/presspass/events/mix/videoGallery.aspx
Windows Phone開發工具也可以在MSDN上下載了,:
http://www.microsoft.com/downloads/details.aspx?FamilyID=2338b5d1-79d8-46af-b828-380b0f854203&displaylang=en
這裡邊已經包含了Visual Studio 2010 Express for Windows Phone, Windows Phone模擬器, Silverlight for Windows Phone和XNA 4.0 Game Studio。只要安裝這一個檔案就可以了,不用滿世界亂找了,不過是線上安裝,網路不快的同志們要淡定。
Windows Phone開發工具只能和VS 2010 RC版本一起使用,我安裝了Visual Studio 2010 Premium版本,能夠正確建立Windows Phone工程。
MSDN上關於Windows Phone開發的章節:
http://msdn.microsoft.com/en-us/library/ff402535(VS.92).aspx
開啟VS 2010後,我的感覺喜憂參半,喜的是Windows Phone提供了兩種不同的開發平台:Silverlight for Windows Phone和XNA 4.0,憂的是,以前Windows Mobile的C++和.NET Compact Framework都用不上了。所以,以前的Windows Mobile程式員也要經曆一個痛苦的轉型過程。
接下來,我們就看看Windows Phone帶來的雙重驚喜吧!
Silverlight for Windows Phone
Silverlight for Windows Phone險些淪為一個笑話,Windows Mobile程式員在抱怨,Symbian上的Silverlight都出來了,Windows Mobile上的Silverlight在哪裡?這次,Silverlight for Windows Phone來了,而且所有Windows Phone上的應用必須用Silverlight來寫。
在程式菜單的XNA Game Studio 4.0下開啟VS 2010,建立一個新工程,在Visual C#下找到三個模板,選擇”Windows Phone Application”。
不知道Phone List Application是啥,看起來Windows Phone的介面會以List為主了。點擊OK後,會直接進入IDE的主介面:
似曾相識,左邊是工具列,可以拖拽控制項到UI設計器上,與XAML介面對應。我拖拽了一個Button和一個TextBox上去。雙擊Button,進入了代碼編輯器。
namespace WindowsPhoneApplication1
{
public partial class MainPage : PhoneApplicationPage
{
public MainPage()
{
InitializeComponent();
SupportedOrientations = SupportedPageOrientation.Portrait | SupportedPageOrientation.Landscape;
}
private void button1_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Hello, Windows Phone," + textBox1.Text);
}
}
}
請原諒我的沒創意,Hello World靈魂附體!必須承認,Windows Phone開發工具的設計者用最大的誠意保留了.NET CF WinForm開發的痕迹,至少讓我們用起來不是那麼彆扭。
編輯完成後,直接按F5,Windows Phone Emulator會被啟動。整個過程沒有任何拖泥帶水,這是我感覺最好的一件事。當初配Android模擬器時那一大堆選項,讓我實在有些不爽。
我的程式運行起來就是下面這個樣子。MessageBox彈出來後,會有一個大大的Error標題,看起來MessageBox在Windows Phone裡主要是用來顯示錯誤的。另外就是IME,帶有明顯iPhone的痕迹,不過對電容屏的支援看來不是問題了。
我還沒有仔細看Windows Phone Emulator的實現機制,不過從啟動速度來看,絕對不是把整個Windows Phone放在模擬器裡執行了。原來Windows Device Emulator那個基於三星2410的小身板估計也跑不起來。反正也是Managed Code,估計又是JIT編譯那套。恍惚間,彷彿回到了Pocket PC 2002的年代。
Windows Phone新介面
既然把Windows Phone Emulator起來了,我們就順便參觀下Windows Phone的新介面吧。點左邊的Back鍵,會將應用程式的Debugger斷掉,不知道程式是否退出了。點中間的Win Button,會回到主介面。不過主介面上只有IE一個表徵圖。
旁邊一位同事看了後,脫口而出:“這不是Zune嗎?”嗯……
IE的使用者體驗非常好,一開始新手發矇,沒找到地址欄,後邊就非常順利了。無論是頁面縮放時的平滑動畫,還是輸入時切換到適當大小的設計,都非常順手。特別是Multi-Tab的設計,感覺非常舒服。特意試了Google Map,顯示一切正常。
哦,還有一點,我在Windows Phone Emulator裡沒有做任何配置,就可以上網了。
XNA 4.0
可能移動開發人員不熟悉XNA的名字,但是在遊戲開發界,Xbox 360上的XNA則是大名鼎鼎。如今,Windows Phone一上來支援的就是XNA 4.0,與Zune HD上的XNA 3.1有啥區別?支援3D遊戲!
目前我們看到的這個XNA 4.0預覽版只支援Windows Phone開發,不支援Windows和Xbox 360的遊戲開發(根本沒Zune HD什麼事……始亂終棄?)。
不那麼多廢話了,建立個XNA 4.0的新工程吧!
選擇Windows Phone Game就好了。IDE環境下沒有介面編輯器,需要程式員通過代碼來實現UI,在這裡我就不寫代碼了。預設程式運行起來是一個空白的表單。就讓它空著吧。未來,我們還要在這裡寫很多東西……
寫在最後
趁著中午的功夫,匆忙地試了一下Windows Phone 開發工具,匆匆寫下此文。心中最多的還是感慨,我們不應該將Windows Phone視作Windows Mobile的升級了,這是一個全新的手機作業系統。Windows Phone的功能可能沒有Windows Mobile豐富,但是他贏得喝彩,靠的只有四個字——使用者體驗。
鳳凰涅磐,Windows Phone的路還很長,但是我們這些緊緊追隨的開發人員們,要得不就是對未來的一絲憧憬嗎。