天天看點

國慶學WP7系列第二季--你必須知道的Windows Phone 7開發

轉自:http://www.devdiv.com/forum.php?mod=viewthread&tid=34366&extra=page%3D1%26filter%3Dtypeid%26typeid%3D305%26typeid%3D305

托管代碼是你唯一的選擇

對于普通的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 應用程式架構

國慶學WP7系列第二季--你必須知道的Windows Phone 7開發

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

開發工具的選擇

目前您可以下載下傳 Windows Phone Developer Tools CTP版。它裡面包含Visual Studio 2010 Express for Windows Phone CTP版,Windows Phone Emulator CTP版,以及Silverlight for Windows Phone CTP版和XNA Game Studio CTP版。在這裡需要特意說明的是,Visual Studio 2010 的Express版本支援了Windows Phone 的開發,也就是說它純粹是免費的了。而不像以前,我們要做Windows Mobile的開發,必須要購買Visual Studio才行。

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

同時,如果您是一位前端設計人員,想要仔細研究研究Silverlight的話,那麼則可以下載下傳Express Blend 4 Beta,然後再安裝上Expression Blend Add-in for Windows Phone以及Expression Blend SDK for Windows Phone. 您就可以體驗在Expression Blend裡面設計Windows Phone 7的應用程式了。

工程類型

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

國慶學WP7系列第二季--你必須知道的Windows Phone 7開發
國慶學WP7系列第二季--你必須知道的Windows Phone 7開發

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

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

國慶學WP7系列第二季--你必須知道的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,則會得到如下結果:

國慶學WP7系列第二季--你必須知道的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應用程式出現在使用者面前。

參考來源: http://blogs.msdn.com/abhinaba/a ... gramming-model.aspx