你必须知道的Windows Phone 7开发

fmms 13年前
     <span style="widows:2;text-transform:none;text-indent:0px;border-collapse:separate;font:medium 'Times New Roman';white-space:normal;orphans:2;letter-spacing:normal;color:#000000;word-spacing:0px;"><span style="line-height:25px;border-collapse:collapse;font-family:'Microsoft YaHei',Tahoma,Helvetica,SimSun,sans-serif;font-size:14px;"><strong>托管代码是你唯一的选择</strong><br /> <br /> 对于普通的ISV和开发者来说,托管代码将是唯一的选择。你将不能使用c++来编写程序,同时,也不能对已有的native dll或者系统函数进行P/Invoke调用。也就是说,不要奢望将你的某些代码封装在native dll里面然后在托管代码里面调用。<br /> <br /> <strong>两种开发模型可以选择</strong><br /> <br /> 而编写托管代码将有两种方式,一种是编写Silverlight的应用程序,另外一种方式是编写XNA的程序。<br /> <br /> 这里的Silverlight 程序不同于常规意义上的Silverlight,虽然它是脱胎自Silverlight 3,但是又去掉了一部分不适用于移动设备的特性,同时又加入了一些Silverlight 4的特性或者是针对移动设备的代码。同时,常规概念中咱们所看到的Silverlight程序都是in browser的;但是对于Windows Phone 7上的Silverlight应用程序来说,它们都是out browser的,也就是说脱离浏览器单独运行的。<br /> <br /> 对于XNA程序来说,对于绝大部分国内的开发者来说或许是个陌生的东西。它是以前微软推出的用来开发XBox上的游戏以及Zune上的应用程序的一套开发 工具。很遗憾的是,由于XBox和Zune一直没有正式的进入国内,所以国内的开发真关注这方面的内容的甚少。同样,它也是采用托管代码。它的开发环境是 一套基于Visual Studio称之为XNA Game Studio的东西。<br /> <br /> <strong>Windows Phone 7 应用程序架构</strong><br /> <br /> </span></span>    <a href="https://simg.open-open.com/show/399c1c1a53aa146c67469077578894cf.png" target="_blank"><img style="cursor:pointer;" alt="你必须知道的Windows Phone 7开发 " src="https://simg.open-open.com/show/399c1c1a53aa146c67469077578894cf.png" width="554" height="407" /></a>    <span style="widows:2;text-transform:none;text-indent:0px;border-collapse:separate;font:medium 'Times New Roman';white-space:normal;orphans:2;letter-spacing:normal;color:#000000;word-spacing:0px;"><span style="line-height:25px;border-collapse:collapse;font-family:'Microsoft YaHei',Tahoma,Helvetica,SimSun,sans-serif;font-size:14px;"><br /> <br /> 我们会看到,最底层是.NET Compact Framework,它是一些核心组件。在此之上则是一些通用服务,例如传感器API,位置API,Windows Live服务,网络服务,多媒体等等。再网上一层则是 Silverlight 或者 XNA 自己特有的一些内容。最上层则是你基于这两种不同架构所编写的应用程序。<br /> <br /> <strong>开发工具的选择</strong><br /> <br /> 目前您可以下载 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才行。<br /> <br /> 安装这套开发工具需要您使用Windows 7或者Vista SP2操作系统,需要3G的硬盘空间。对于内存需求的是2G,同时还需要一块支持DirectX 10的显卡。<br /> <br /> 同时,如果您是一位前端设计人员,想要仔细研究研究Silverlight的话,那么则可以下载Express Blend 4 Beta,然后再安装上Expression Blend Add-in for Windows Phone以及Expression Blend SDK for Windows Phone. 您就可以体验在Expression Blend里面设计Windows Phone 7的应用程序了。<br /> <br /> <strong>工程类型</strong><br /> <br /> 安装完开发工具之后,打开Visual Studio 2010 Express for Windows Phone。您会发现有如下工程类型可以选择:<br /> <br /> </span></span>    <a href="https://simg.open-open.com/show/052a1221b976b11b99a852148231b778.png" target="_blank"><img style="cursor:pointer;" alt="你必须知道的Windows Phone 7开发 " src="https://simg.open-open.com/show/052a1221b976b11b99a852148231b778.png" width="554" height="272" /></a>    <span style="widows:2;text-transform:none;text-indent:0px;border-collapse:separate;font:medium 'Times New Roman';white-space:normal;orphans:2;letter-spacing:normal;color:#000000;word-spacing:0px;"><span style="line-height:25px;border-collapse:collapse;font-family:'Microsoft YaHei',Tahoma,Helvetica,SimSun,sans-serif;font-size:14px;"><br /> </span></span>    <a href="https://simg.open-open.com/show/475805917fc3db2fee86f0df4c9c1c94.png" target="_blank"><img style="cursor:pointer;" alt="你必须知道的Windows Phone 7开发 " src="https://simg.open-open.com/show/475805917fc3db2fee86f0df4c9c1c94.png" width="554" height="277" /></a>    <br />    <span style="widows:2;text-transform:none;text-indent:0px;border-collapse:separate;font:medium 'Times New Roman';white-space:normal;orphans:2;letter-spacing:normal;color:#000000;word-spacing:0px;"><span style="line-height:25px;border-collapse:collapse;font-family:'Microsoft YaHei',Tahoma,Helvetica,SimSun,sans-serif;font-size:14px;"><br /> 我们会发现在Silverlight应用程序中,除了类库工程之外我们有两种应用程序可以选择。一种是“Windows Phone Application”,另外一种是“Windows Phone List Application”。<br /> <br /> 第一种工程是一个非常普通的Silverlight应用程序。第二个工程是一个主界面为一个Listbox的应用程序,它给你演示如何在界面中使用列表。 但是,我相信绝大部分人需要等待的是标准的Pivot类型的窗体以及它哪6个Hub中类似于滑动窗体一般的界面。这两种窗体的模板在目前的CTP版本中尚 未出现,希望在正式版中能够看到。<br /> <br /> </span></span>    <a href="https://simg.open-open.com/show/f289a3c53920861350636adef9128ef1.png" target="_blank"><img style="cursor:pointer;" alt="你必须知道的Windows Phone 7开发 " src="https://simg.open-open.com/show/f289a3c53920861350636adef9128ef1.png" width="554" height="245" /></a>    <span style="widows:2;text-transform:none;text-indent:0px;border-collapse:separate;font:medium 'Times New Roman';white-space:normal;orphans:2;letter-spacing:normal;color:#000000;word-spacing:0px;"><span style="line-height:25px;border-collapse:collapse;font-family:'Microsoft YaHei',Tahoma,Helvetica,SimSun,sans-serif;font-size:14px;"><br /> <br /> 至于XNA Game Studio类型的工程则丰富多彩了,不但有Windows Phone Game,还有Windows Game和XBox 360 Game。<br /> <br /> <strong>系统的本质</strong><br /> <br /> 我们新建一个普通的Silverlight应用程序,然后在界面上拖拽进入一个Button控件。然后双击Button,在其Click事件中编写如下代码:<br /> <br /> MessageBox.Show(System.Environment.Version.ToString(), System.Environment.OSVersion.ToString(), MessageBoxButton.OK);然后按下F5运行起程序,Visual Studio 将会自动调用起Windows Phone 7的模拟器并将你的程序部署上去运行起来。然后在模拟器中点击那个Button,则会得到如下结果:<br /> </span></span>    <a href="https://simg.open-open.com/show/f4d3d5bf43b253cb88bf04b611a5b7ac.png" target="_blank"><img style="cursor:pointer;" alt="你必须知道的Windows Phone 7开发 " src="https://simg.open-open.com/show/f4d3d5bf43b253cb88bf04b611a5b7ac.png" width="449" height="263" /></a>    <span style="widows:2;text-transform:none;text-indent:0px;border-collapse:separate;font:medium 'Times New Roman';white-space:normal;orphans:2;letter-spacing:normal;color:#000000;word-spacing:0px;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px;-webkit-text-decorations-in-effect:none;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;"><span style="line-height:25px;border-collapse:collapse;font-family:'Microsoft YaHei', Tahoma, Helvetica, SimSun, sans-serif;font-size:14px;"><br /> <br /> 这就很清楚了,Windows Phone 7其实是基于WinCE 7的内核。而它上面所运行的托管代码是.NET Compact Framework 3.7。<br /> <br /> <strong>小结</strong><br /> <br /> Windows Phone 7是一个全新的平台,对于绝大部分开发人员来说即熟悉又陌生。熟悉的是它延续使用了C#来开发应用,陌生的是它采用Silverlight和XNA作为开 发的选择。但是,不管怎么来说,离Windows Phone 7的正式上市还有很长的事件,足够我们进行学习和研究了。希望在Windows Phone 7正式上市之日我们能看到大量的Windows Phone 7应用程序出现在用户面前。<br /> <br /> 参考来源:<a href="/misc/goto?guid=4959500767852472140" rel="nofollow" target="_blank">http://blogs.msdn.com/abhinaba/a ... gramming-model.aspx</a></span></span>