Windows Phone開(kāi)發(fā)工具初體驗(yàn)
這是為《程序員》4月期寫(xiě)的文章,是在《雙重驚喜——Windows Phone Developer Tools初體驗(yàn)》的基礎(chǔ)上增加了一些內(nèi)容,包括WebBrowser空間、MediaPlayer空間,還有一個(gè)非常簡(jiǎn)單的XNA程序。希望對(duì)Windows Phone開(kāi)發(fā)有興趣的朋友有一些幫助。
本文引用地址:http://www.ljygm.com/article/201610/306005.htmWindows Phone開(kāi)發(fā)工具在MIX 2010上火熱登場(chǎng)了。Windows Mobile開(kāi)發(fā)者們壓抑許久的熱情終于爆發(fā)出來(lái),對(duì)于Windows Phone的華麗轉(zhuǎn)身,開(kāi)發(fā)者們褒貶不一,有人對(duì)Silverlight、 XNA等新技術(shù)充滿(mǎn)期待,有人對(duì)放棄以前版本兼容性、不支持C++開(kāi)發(fā)滿(mǎn)腹怨言。
無(wú)論如何,Windows Phone為我們帶來(lái)了新的用戶(hù)體驗(yàn)、新的開(kāi)發(fā)工具,總比讓開(kāi)發(fā)者守著Windows Mobile的老面孔,一起慢慢變老,要好吧?下面,就讓我們看看Windows Phone開(kāi)發(fā)工具會(huì)為開(kāi)發(fā)者們帶來(lái)哪些驚喜,呃,或者驚訝。
Windows Phone開(kāi)發(fā)工具的社區(qū)預(yù)覽版(CTP)可以在MSDN上下載。其中包括Visual Studio 2010 Express for Windows Phone, Windows Phone模擬器, Silverlight for Windows Phone和XNA 4.0 Game Studio。目前,Windows Phone開(kāi)發(fā)工具只能安裝在Windows 7和Vista SP2上,還需要顯卡支持DirectX 10。
打開(kāi)VS 2010后,我的感覺(jué)喜憂(yōu)參半,喜的是Windows Phone提供了兩種不同的開(kāi)發(fā)平臺(tái):Silverlight for Windows Phone和XNA 4.0,憂(yōu)的是,以前Windows Mobile的C++和.NET Compact Framework都用不上了。所以,以前的Windows Mobile程序員也要經(jīng)歷一個(gè)痛苦的轉(zhuǎn)型過(guò)程。
接下來(lái),我們就看看Windows Phone帶來(lái)的雙重驚喜吧!
Silverlight for Windows Phone
Silverlight for Windows Phone險(xiǎn)些淪為一個(gè)笑話(huà),Windows Mobile程序員在抱怨,Symbian上的Silverlight都出來(lái)了,Windows Mobile上的Silverlight在哪里?這次,Silverlight for Windows Phone來(lái)了,而且所有Windows Phone上的應(yīng)用必須用Silverlight來(lái)寫(xiě)。
Silverlight最大的優(yōu)勢(shì)在于與Expression Blend的無(wú)縫整合,可以快速設(shè)計(jì)出非常漂亮的用戶(hù)界面,將程序員從繁瑣的UI開(kāi)發(fā)中解放出來(lái)。而且Silverlight for Windows Phone不再是Silverlight的子集,而是支持Silverlight的全部功能。這樣的好處是,已有的Silverlight程序很容易移植到Windows Phone手機(jī)上。
在程序菜單的XNA Game Studio 4.0下打開(kāi)VS 2010,創(chuàng)建一個(gè)新工程,在Visual C#下找到三個(gè)模板,選擇”Windows Phone Application”。

不知道Phone List Application是啥,看起來(lái)Windows Phone的界面會(huì)以List為主了。點(diǎn)擊OK后,會(huì)直接進(jìn)入IDE的主界面:

似曾相識(shí),左邊是工具欄,可以拖拽控件到UI設(shè)計(jì)器上,與XAML界面對(duì)應(yīng)。根據(jù)示例程序,我準(zhǔn)備編寫(xiě)一個(gè)瀏覽器和媒體播放器,首先是從Toolbox中將MediaElement和WebBrowser控件拖拽到UI設(shè)計(jì)器上。

為了播放多媒體文件,我們還要在Solution Explorer里將wmv文件添加到工程里。做法和Windows Mobile工程一致,選擇Content類(lèi)型,wmv文件會(huì)和工程一起發(fā)布。
接下來(lái)就是編寫(xiě)代碼了。MediaElement組件需要設(shè)置Source屬性,然后調(diào)用Play方法。而WebBrowser選擇Navigate方法來(lái)訪問(wèn)指定網(wǎng)站。
private void button1_Click(object sender, RoutedEventArgs e)
{
textBlockListTitle.Text = textBox1.Text;
if (Convert.ToBoolean(checkBox1.IsChecked))
{
webBrowser1.Visibility = Visibility.Collapsed;
mediaElement1.Visibility = Visibility.Visible;
// play Video
mediaElement1.Source = new Uri(Wildlife.wmv, UriKind.Relative);
mediaElement1.Position = TimeSpan.FromMilliseconds(0);
mediaElement1.Play();
}
else
{
mediaElement1.Visibility = Visibility.Collapsed;
webBrowser1.Visibility = Visibility.Visible;
// Browser
webBrowser1.Navigate(new Uri(textBox1.Text, UriKind.Absolute));
}
}

代碼編輯完成后,選擇Windows Phone Emulator作為目標(biāo)設(shè)備。直接按F5,Windows Phone Emulator會(huì)被啟動(dòng)。
Silverlight for Windows Phone類(lèi)庫(kù)中增加了很多Phone獨(dú)有的功能。Microsoft.Phone的命名空間下,包括Phone、電話(huà)本、電子郵件、Camera、Bing地圖、Marketplace、瀏覽器和搜索等功能。Microsoft.Device.Sensors中包括各種各樣的傳感器,其中包括重力感應(yīng)。Silverlight中還包括了Location和Push Notification等獨(dú)有功能。
我的程序運(yùn)行起來(lái)就是下面這個(gè)樣子。程序帶有強(qiáng)烈的Zune風(fēng)格,不但有標(biāo)題,而且還有明顯的Block List Title。另外就是輸入法,帶有明顯iPhone的痕跡,不過(guò)對(duì)電容屏的支持看來(lái)不是問(wèn)題了。
我還沒(méi)有仔細(xì)看Windows Phone Emulator的實(shí)現(xiàn)機(jī)制,不過(guò)從啟動(dòng)速度來(lái)看,絕對(duì)不是把整個(gè)Windows Phone放在模擬器里執(zhí)行了。原來(lái)Windows Device Emulator那個(gè)基于三星2410的小身板估計(jì)也跑不起來(lái)。反正也是Managed Code,估計(jì)又是JIT編譯那套?;秀遍g,仿佛回到了Pocket PC 2002的年代。

評(píng)論