俗话说,物极必反,Windows Phone就像中国足球队一样,在所有人对他失去信心的时候,突然灵魂附体、RP爆发,干掉了韩国队。当然,就像东亚四强赛说明不了问题一样,MIX 2010上炫目的Demos只是过眼烟云,真正考验实力的还是几个月后世界杯的战场。
不过MIX 2010上的Demos的确给了曾经的Windows Mobile开发者们带来了一丝希望,最近一年,满世界都是iPhone和Android,咱不是不想说话,实在是没话可说啊。MIX 2010 Keynote视频:
http://www.microsoft.com/presspass/events/mix/videoGallery.aspx
Windows Phone开发工具也可以在MSDN上下载了,下载地址:
这里边已经包含了Visual Studio 2010 Express for Windows Phone, Windows Phone模拟器, Silverlight for Windows Phone和XNA 4.0 Game Studio。只要安装这一个文件就可以了,不用满世界乱找了,不过是在线安装,网络不快的同志们要淡定。
Windows Phone开发工具只能和VS 2010 RC版本一起使用,我安装了Visual Studio 2010 Premium版本,能够正确创建Windows Phone工程。
MSDN上关于Windows Phone开发的章节:
http://msdn.microsoft.com/en-us/library/ff402535(VS.92).aspx
打开VS 2010后,我的感觉喜忧参半,喜的是Windows Phone提供了两种不同的开发平台:Silverlight for Windows Phone和XNA 4.0,忧的是,以前Windows Mobile的C++和.NET Compact Framework都用不上了。所以,以前的Windows Mobile程序员也要经历一个痛苦的转型过程。
接下来,我们就看看Windows Phone带来的双重惊喜吧!
Silverlight for Windows Phone
Silverlight for Windows Phone险些沦为一个笑话,Windows Mobile程序员在抱怨,Symbian上的Silverlight都出来了,Windows Mobile上的Silverlight在哪里?这次,Silverlight for Windows Phone来了,而且所有Windows Phone上的应用必须用Silverlight来写。
在程序菜单的XNA Game Studio 4.0下打开VS 2010,创建一个新工程,在Visual C#下找到三个模板,选择”Windows Phone Application”。
不知道Phone List Application是啥,看起来Windows Phone的界面会以List为主了。点击OK后,会直接进入IDE的主界面:
似曾相识,左边是工具栏,可以拖拽控件到UI设计器上,与XAML界面对应。我拖拽了一个Button和一个TextBox上去。双击Button,进入了代码编辑器。
namespace WindowsPhoneApplication1
{
public partial class MainPage : PhoneApplicationPage
{
public MainPage()
{
InitializeComponent();
SupportedOrientations = SupportedPageOrientation.Portrait | SupportedPageOrientation.Landscape;
}
private void button1_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Hello, Windows Phone," + textBox1.Text);
}
}
}
请原谅我的没创意,Hello World灵魂附体!必须承认,Windows Phone开发工具的设计者用最大的诚意保留了.NET CF WinForm开发的痕迹,至少让我们用起来不是那么别扭。
编辑完成后,直接按F5,Windows Phone Emulator会被启动。整个过程没有任何拖泥带水,这是我感觉最好的一件事。当初配Android模拟器时那一大堆选项,让我实在有些不爽。
我的程序运行起来就是下面这个样子。MessageBox弹出来后,会有一个大大的Error标题,看起来MessageBox在Windows Phone里主要是用来显示错误的。另外就是输入法,带有明显iPhone的痕迹,不过对电容屏的支持看来不是问题了。
我还没有仔细看Windows Phone Emulator的实现机制,不过从启动速度来看,绝对不是把整个Windows Phone放在模拟器里执行了。原来Windows Device Emulator那个基于三星2410的小身板估计也跑不起来。反正也是Managed Code,估计又是JIT编译那套。恍惚间,仿佛回到了Pocket PC 2002的年代。
Windows Phone新界面
既然把Windows Phone Emulator起来了,我们就顺便参观下Windows Phone的新界面吧。点左边的Back键,会将应用程序的Debugger断掉,不知道程序是否退出了。点中间的Win Button,会回到主界面。不过主界面上只有IE一个图标。
旁边一位同事看了后,脱口而出:“这不是Zune吗?”嗯……
IE的用户体验非常好,一开始新手发蒙,没找到地址栏,后边就非常顺利了。无论是页面缩放时的平滑动画,还是输入时切换到适当大小的设计,都非常顺手。特别是Multi-Tab的设计,感觉非常舒服。特意试了Google Map,显示一切正常。
哦,还有一点,我在Windows Phone Emulator里没有做任何配置,就可以上网了。
XNA 4.0
可能移动开发者不熟悉XNA的名字,但是在游戏开发界,Xbox 360上的XNA则是大名鼎鼎。如今,Windows Phone一上来支持的就是XNA 4.0,与Zune HD上的XNA 3.1有啥区别?支持3D游戏!
目前我们看到的这个XNA 4.0预览版只支持Windows Phone开发,不支持Windows和Xbox 360的游戏开发(根本没Zune HD什么事……始乱终弃?)。
不那么多废话了,创建个XNA 4.0的新工程吧!
选择Windows Phone Game就好了。IDE环境下没有界面编辑器,需要程序员通过代码来实现UI,在这里我就不写代码了。默认程序运行起来是一个空白的窗体。就让它空着吧。未来,我们还要在这里写很多东西……
写在最后
趁着中午的功夫,匆忙地试了一下Windows Phone 开发工具,匆匆写下此文。心中最多的还是感慨,我们不应该将Windows Phone视作Windows Mobile的升级了,这是一个全新的手机操作系统。Windows Phone的功能可能没有Windows Mobile丰富,但是他赢得喝彩,靠的只有四个字——用户体验。
凤凰涅磐,Windows Phone的路还很长,但是我们这些紧紧追随的开发者们,要得不就是对未来的一丝憧憬吗。