天天看點

你必須知道的Windows Phone 7開發

  托管代碼是你唯一的選擇

  對于普通的ISV和開發者來說,托管代碼将是唯一的選擇。你将不能使用C++來編寫程式,同時,也不能對已有的native dll或者系統函數進行P/Invoke調用。也就是說,不要奢望将你的某些代碼封裝在native dll裡面然後在托管代碼裡面調用。

  兩種開發模型可以選擇

  而編寫托管代碼将有兩種方式,一種是編寫Silverlight的應用程式,另外一種方式是編寫XNA的程式。

  這裡的Silverlight 程式不同于正常意義上的Silverlight,雖然它是脫胎自Silverlight 3,但是又去掉了一部分不适用于移動裝置的特性,同時又加入了一些Silverlight 4的特性或者是針對移動裝置的代碼。同時,正常概念中咱們所看到的Silverlight程式都是in browser的;但是對于Windows Phone 7上的Silverlight應用程式來說,它們都是out browser的,也就是說脫離浏覽器單獨運作的。

  對于XNA程式來說,對于絕大部分國内的開發者來說或許是個陌生的東西。它是以前微軟推出的用來開發XBox上的遊戲以及Zune上的應用程式的一套開發工具。很遺憾的是,由于XBox和Zune一直沒有正式的進入國内,是以國内的開發真關注這方面的内容的甚少。同樣,它也是采用托管代碼。它的開發環境是一套基于Visual Studio稱之為XNA Game Studio的東西。

  Windows Phone 7 應用程式架構

你必須知道的Windows Phone 7開發

  我們會看到,最底層是.NET Compact Framework,它是一些核心元件。在此之上則是一些通用服務,例如傳感器API,位置API,Windows Live服務,網絡服務,多媒體等等。再網上一層則是 Silverlight 或者 XNA 自己特有的一些内容。最上層則是你基于這兩種不同架構所編寫的應用程式。

  開發工具的選擇

  安裝這套開發工具需要您使用Windows 7或者Vista SP2作業系統,需要3G的硬碟空間。對于記憶體需求的是2G,同時還需要一塊支援DirectX 10的顯示卡。

  工程類型

  安裝完開發工具之後,打開Visual Studio 2010 Express for Windows Phone。您會發現有如下工程類型可以選擇:

你必須知道的Windows Phone 7開發
你必須知道的Windows Phone 7開發

  我們會發現在Silverlight應用程式中,除了類庫工程之外我們有兩種應用程式可以選擇。一種是“Windows Phone Application”,另外一種是“Windows Phone List Application”。

  第一種工程是一個非常普通的Silverlight應用程式。第二個工程是一個主界面為一個Listbox的應用程式,它給你示範如何在界面中使用清單。但是,我相信絕大部分人需要等待的是标準的Pivot類型的窗體以及它哪6個Hub中類似于滑動窗體一般的界面。這兩種窗體的模闆在目前的CTP版本中尚未出現,希望在正式版中能夠看到。

你必須知道的Windows Phone 7開發

  至于XNA Game Studio類型的工程則豐富多彩了,不但有Windows Phone Game,還有Windows Game和XBox 360 Game。

  系統的本質

  我們建立一個普通的Silverlight應用程式,然後在界面上拖拽進入一個Button控件。然後輕按兩下Button,在其Click事件中編寫如下代碼:

MessageBox.Show(System.Environment.Version.ToString(), System.Environment.OSVersion.ToString(), MessageBoxButton.OK);

  然後按下F5運作起程式,Visual Studio 将會自動調用起Windows Phone 7的模拟器并将你的程式部署上去運作起來。然後在模拟器中點選那個Button,則會得到如下結果:

你必須知道的Windows Phone 7開發

  這就很清楚了,Windows Phone 7其實是基于WinCE 7的核心。而它上面所運作的托管代碼是.NET Compact Framework 3.7。

  小結

  Windows Phone 7是一個全新的平台,對于絕大部分開發人員來說即熟悉又陌生。熟悉的是它延續使用了C#來開發應用,陌生的是它采用Silverlight和XNA作為開發的選擇。但是,不管怎麼來說,離Windows Phone 7的正式上市還有很長的事件,足夠我們進行學習和研究了。希望在Windows Phone 7正式上市之日我們能看到大量的Windows Phone 7應用程式出現在使用者面前。