自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Windows Phone開發(fā)工具初體驗

移動開發(fā)
無論如何,Windows Phone為我們帶來了新的用戶體驗、新的開發(fā)工具,總比讓開發(fā)者守著Windows Mobile的老面孔,一起慢慢變老,要好吧?下面,就讓我們看看Windows Phone開發(fā)工具會為開發(fā)者們帶來哪些驚喜,或者驚訝。

無論如何,Windows Phone為我們帶來了新的用戶體驗、新的開發(fā)工具,總比讓開發(fā)者守著Windows Mobile的老面孔,一起慢慢變老,要好吧?下面,就讓我們看看Windows Phone開發(fā)工具會為開發(fā)者們帶來哪些驚喜,或者驚訝。

Windows Phone開發(fā)工具的社區(qū)預覽版(CTP)可以在MSDN上下載。其中包括Visual Studio 2010 Express for Windows Phone, Windows Phone模擬器, Silverlight for Windows Phone和XNA 4.0 Game Studio。目前,Windows Phone開發(fā)工具只能安裝在Windows 7和Vista SP2上,還需要顯卡支持DirectX 10。

打開VS 2010后,我的感覺喜憂參半,喜的是Windows Phone提供了兩種不同的開發(fā)平臺:Silverlight for Windows Phone和XNA 4.0,憂的是,以前Windows Mobile的C++和.NET Compact Framework都用不上了。所以,以前的Windows Mobile程序員也要經(jīng)歷一個痛苦的轉(zhuǎn)型過程。

接下來,我們就看看Windows Phone帶來的雙重驚喜吧!

Silverlight for Windows Phone

Silverlight for Windows Phone險些淪為一個笑話,Windows Mobile程序員在抱怨,Symbian上的Silverlight都出來了,Windows Mobile上的Silverlight在哪里?這次,Silverlight for Windows Phone來了,而且所有Windows Phone上的應用必須用Silverlight來寫。

Silverlight最大的優(yōu)勢在于與Expression Blend的無縫整合,可以快速設計出非常漂亮的用戶界面,將程序員從繁瑣的UI開發(fā)中解放出來。而且Silverlight for Windows Phone不再是Silverlight的子集,而是支持Silverlight的全部功能。這樣的好處是,已有的Silverlight程序很容易移植到Windows Phone手機上。

在程序菜單的XNA Game Studio 4.0下打開VS 2010,創(chuàng)建一個新工程,在Visual C#下找到三個模板,選擇”Windows Phone Application”。

VS 2010 for Windows Phone

不知道Phone List Application是啥,看起來Windows Phone的界面會以List為主了。點擊OK后,會直接進入IDE的主界面:

VS 2010 for Windows Phone

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

VS 2010 for Windows Phone

為了播放多媒體文件,我們還要在Solution Explorer里將wmv文件添加到工程里。做法和Windows Mobile工程一致,選擇Content類型,wmv文件會和工程一起發(fā)布。

接下來就是編寫代碼了。MediaElement組件需要設置Source屬性,然后調(diào)用Play方法。而WebBrowser選擇Navigate方法來訪問指定網(wǎng)站。

  1. private void button1_Click(object sender, RoutedEventArgs e)  
  2.         {  
  3.             textBlockListTitle.Text = textBox1.Text;  
  4.    
  5.             if (Convert.ToBoolean(checkBox1.IsChecked))  
  6.             {  
  7.                 webBrowser1.Visibility = Visibility.Collapsed;  
  8.                 mediaElement1.Visibility = Visibility.Visible;  
  9.                 // play Video  
  10.                 mediaElement1.Source = new Uri("Wildlife.wmv", UriKind.Relative);  
  11.                 mediaElement1.Position = TimeSpan.FromMilliseconds(0);  
  12.                 mediaElement1.Play();  
  13.             }  
  14.             else 
  15.             {  
  16.                 mediaElement1.Visibility = Visibility.Collapsed;  
  17.                 webBrowser1.Visibility = Visibility.Visible;  
  18.    
  19.                 // Browser  
  20.                 webBrowser1.Navigate(new Uri(textBox1.Text, UriKind.Absolute));  
  21.             }  
  22.         } 

VS 2010 for Windows Phone

代碼編輯完成后,選擇Windows Phone Emulator作為目標設備。直接按F5,Windows Phone Emulator會被啟動。

Silverlight for Windows Phone類庫中增加了很多Phone獨有的功能。Microsoft.Phone的命名空間下,包括Phone、電話本、電子郵件、Camera、Bing地圖、Marketplace、瀏覽器和搜索等功能。Microsoft.Device.Sensors中包括各種各樣的傳感器,其中包括重力感應。Silverlight中還包括了Location和Push Notification等獨有功能。

我的程序運行起來就是下面這個樣子。程序帶有強烈的Zune風格,不但有標題,而且還有明顯的Block List Title。另外就是輸入法,帶有明顯iPhone的痕跡,不過對電容屏的支持看來不是問題了。

我還沒有仔細看Windows Phone Emulator的實現(xiàn)機制,不過從啟動速度來看,絕對不是把整個Windows Phone放在模擬器里執(zhí)行了。原來Windows Device Emulator那個基于三星2410的小身板估計也跑不起來。反正也是Managed Code,估計又是JIT編譯那套?;秀遍g,仿佛回到了Pocket PC 2002的年代。

Windows Phone Emulator Windows Phone Emulator Windows Phone Emulator

#p#

Windows Phone新界面

既然把Windows Phone Emulator起來了,我們就順便參觀下Windows Phone的新界面吧。點左邊的Back鍵,會將應用程序的Debugger斷掉,不知道程序是否退出了。點中間的Win Button,會回到主界面。

不過主界面上只有IE一個圖標。Windows Phone模擬器中還沒有包括其他的系統(tǒng)功能,比如電話、電子郵件、搜索等。模擬器也沒有辦法模擬重力感應、Location定位服務。希望到Windows Phone開發(fā)工具正式發(fā)布時,這些系統(tǒng)功能都可以被支持。

Windows Phone模擬器 Windows Phone模擬器 Windows Phone模擬器

IE的用戶體驗非常好,一開始新手發(fā)蒙,沒找到地址欄,后邊就非常順利了。無論是頁面縮放時的平滑動畫,還是輸入時切換到適當大小的設計,都非常順手。特別是Multi-Tab的設計,感覺非常舒服。特意試了Google Map,顯示一切正常。智能手機時代,有一個好的瀏覽器,其實就成功了一半。

哦,還有一點,我在Windows Phone Emulator里沒有做任何配置,就可以上網(wǎng)了。

#p#

XNA 4.0

在移動開發(fā)界,XNA還不是一個響亮的名字,但是在游戲開發(fā)界,Xbox 360上的XNA則是泰山北斗級的開發(fā)技術(shù)。XNA不僅僅是一個.NET的游戲開發(fā)平臺,還包括了很多支持Xbox Live服務的功能,比如,Avatars技術(shù)支持在游戲中顯示用戶設計的形象。希望這項技術(shù)能夠和同名電影一樣,改變移動游戲開發(fā)的歷史。

Windows Phone支持的是XNA 4.0,與Zune HD上的XNA 3.1有啥區(qū)別?支持3D游戲!目前我們看到的這個XNA 4.0預覽版只支持Windows Phone開發(fā),不支持Windows和Xbox 360的游戲開發(fā)。

Silverlight for Windows Phone是典型的事件驅(qū)動型應用程序。而XNA是由時間驅(qū)動的應用程序,這也是游戲開發(fā)技術(shù)的典型特點。每隔固定時間,系統(tǒng)會觸發(fā)Update事件,使程序得以更新。

不那么多廢話了,創(chuàng)建個XNA 4.0的新工程吧!

創(chuàng)建個XNA 4.0的新工程

選擇Windows Phone Game就好了。IDE環(huán)境下沒有界面編輯器,需要程序員通過代碼來實現(xiàn)UI。XNA程序的結(jié)構(gòu)非常簡單,程序員只需要實現(xiàn)幾個簡單的方法,就可以實現(xiàn)一個簡單的XNA程序了。這些方法包括Initialize初始化方法、LoadContent加載文件、Update更新內(nèi)容和Draw繪制等方法。下面是示例代碼片段:

  1. protected override void LoadContent()  
  2.         {  
  3.             // Create a new SpriteBatch, which can be used to draw textures.  
  4.             spriteBatch = new SpriteBatch(GraphicsDevice);  
  5.             texture1 = Content.Load<Texture2D>("winphone");  
  6.             texture2 = Content.Load<Texture2D>("winphone");  
  7.    
  8.             soundEffect = Content.Load<SoundEffect>("Windows Ding");  
  9.    
  10.             spritePosition1.X = 0;  
  11.             spritePosition1.Y = 0;  
  12.    
  13.             spritePosition2.X = graphics.GraphicsDevice.Viewport.Width - texture1.Width;  
  14.             spritePosition2.Y = graphics.GraphicsDevice.Viewport.Height - texture1.Height;  
  15.    
  16.             sprite1Height = texture1.Bounds.Height;  
  17.             sprite1Width = texture1.Bounds.Width;  
  18.    
  19.             sprite2Height = texture2.Bounds.Height;  
  20.             sprite2Width = texture2.Bounds.Width;  
  21.    
  22.         }  
  23. LoadContent方法中使用Content.Load方法來加載資源文件,這些文件也是作為資源被加載到XNA程序中的。  
  24.  
  25.         protected override void Update(GameTime gameTime)  
  26.         {  
  27.             // Allows the game to exit  
  28.             if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)  
  29.                 this.Exit();  
  30.    
  31.             // Move the sprite around.  
  32.             UpdateSprite(gameTime, ref spritePosition1, ref spriteSpeed1);  
  33.             UpdateSprite(gameTime, ref spritePosition2, ref spriteSpeed2);  
  34.             CheckForCollision();  
  35.    
  36.             base.Update(gameTime);  
  37.         }  
  38. Update方法負責更新元素的位置,進行碰撞檢測。如果后退鍵被按下,則退出程序。  
  39.  
  40.         protected override void Draw(GameTime gameTime)  
  41.         {  
  42.             GraphicsDevice.Clear(Color.CornflowerBlue);  
  43.    
  44.             // TODO: Add your drawing code here  
  45.             // Draw the sprite.  
  46.             spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend);  
  47.             spriteBatch.Draw(texture1, spritePosition1, Color.White);  
  48.             spriteBatch.End();  
  49.    
  50.             spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.Opaque);  
  51.             spriteBatch.Draw(texture2, spritePosition2, Color.AliceBlue);  
  52.             spriteBatch.End();  
  53.    
  54.             base.Draw(gameTime);  
  55.         } 

Draw方法對更新后的元素進行繪制。

我們的第一個XNA程序會顯示兩張圖片,這兩張圖片會在屏幕中運行,運行到邊緣時,會反彈回來。

第一個XNA程序

寫在最后

Windows Phone開發(fā)工具不是完美無缺的,比如Visual Studio啟動調(diào)試程序的時間比較長,希望這是模擬器的問題,在Windows Phone設備上不是這樣。

寫完這篇文章,心中最多的還是感慨,我們不應該將Windows Phone視作Windows Mobile的升級了,這是一個全新的手機操作系統(tǒng)。Windows Phone的功能可能沒有Windows Mobile豐富,但是他贏得喝彩,靠的只有四個字——用戶體驗。

鳳凰涅磐,Windows Phone的路還很長,但是我們這些緊緊追隨的開發(fā)者們,要得不就是對未來的一絲憧憬嗎。

#p#

視頻: Windows Phone 7開發(fā)初體驗

原文鏈接:http://www.cnblogs.com/aawolf/archive/2010/08/28/1811438.html

【編輯推薦】

  1. WP7開發(fā)環(huán)境搭建(圖文教程)
  2. 在WP開發(fā)中如何使用MVVM Light框架
  3. 在WP7中使用Coding4Fun Button控件
  4. ToastPrompt在Windows Phone開發(fā)中的用法
  5. Windows XP環(huán)境下部署Windows Phone開發(fā)工具
責任編輯:王曉東 來源: 博客園
相關(guān)推薦

2010-04-21 17:07:54

Windows Pho

2012-05-15 14:28:58

XP安裝WP7開發(fā)環(huán)境

2010-11-24 16:36:02

Windows PhoUI設計Windows Pho

2010-07-21 09:11:57

Windows PhoWindows PhoWindows Pho

2010-03-16 09:41:57

Windows Pho

2010-05-23 10:29:29

Widget開發(fā)

2010-07-01 10:15:27

UML開發(fā)工具

2010-05-28 13:38:29

Linux開發(fā)工具

2010-09-17 09:34:29

開發(fā)工具Windows Pho

2009-06-23 10:06:03

2010-03-16 13:41:21

SilverlightMIX10

2010-10-25 09:54:09

Windows Pho

2011-09-15 15:03:10

2023-07-07 07:29:53

Kubernetes容器

2012-08-01 14:12:43

Windows Ser

2013-07-19 15:05:04

2010-10-11 14:42:49

Windows Pho

2012-05-23 15:11:56

Windows Pho

2010-08-01 16:11:53

Android

2013-07-30 12:37:56

Windows PhoWindows Pho
點贊
收藏

51CTO技術(shù)棧公眾號