托管代码是你唯一的选择
对于普通的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 应用程序架构
我们会看到,最底层是.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。您会发现有如下工程类型可以选择:
我们会发现在Silverlight应用程序中,除了类库工程之外我们有两种应用程序可以选择。一种是“Windows Phone Application”,另外一种是“Windows Phone List Application”。
第一种工程是一个非常普通的Silverlight应用程序。第二个工程是一个主界面为一个Listbox的应用程序,它给你演示如何在界面中使用列表。但是,我相信绝大部分人需要等待的是标准的Pivot类型的窗体以及它哪6个Hub中类似于滑动窗体一般的界面。这两种窗体的模板在目前的CTP版本中尚未出现,希望在正式版中能够看到。
至于XNA Game Studio类型的工程则丰富多彩了,不但有Windows Phone Game,还有Windows Game和XBox 360 Game。
系统的本质
我们新建一个普通的Silverlight应用程序,然后在界面上拖拽进入一个Button控件。然后双击Button,在其Click事件中编写如下代码:
然后按下F5运行起程序,Visual Studio 将会自动调用起Windows Phone 7的模拟器并将你的程序部署上去运行起来。然后在模拟器中点击那个Button,则会得到如下结果:
这就很清楚了,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/archive/2010/03/13/windows-phone-7-series-programming-model.aspx