在经历了N次安装CTP不成功的惨痛经历之后(N>4),我终于等到了正式的Beta2出来,我这次安装的是VS.NET的中文标准版,MSDN的订户现在可以在MSDN网站上下载英文的标准版和Team Suite版,其他的开发人员可能还要等几天。
好了,废话不说,安装过程和CTP的基本一致,安装完成后,VS.NET 2005的真面目就出现在我们面前了。
怎么样?感觉比VS.NET 2003漂亮了不少吧?开始页也不再是分页显示,比较有新意的是在右边占据很大部分的是MSDN的开发新闻,是从MSDN网站上获取的,不过目前看来好象只有英文的消息。
先写个DEMO吧,手已经开始痒了。还是老规矩“文件”-“新建”-“项目”,就出现了下面的界面:
和VS.NET 2005 Beta1还是有很多相似的地方,目前还没有Magneto的SDK,估计离Magneto的发布还要有一段时间,真不知道BillG在MEDC上会拿出什么东西来秀。
继续关心我们的DEMO吧。选择Visual C#下的“智能设备”中Pocket PC 2003中的“设备应用程序”,点击确定。我们会直接进入开发的主界面,而不再需要一个向导了。
好了,这就是智能设备应用开发的主界面了,看起来与VS.NET 2003最大的区别就是窗体设计器发生了很大的改变,这也是微软向开发者最早承诺的新特性。我们现在就可以真正开发“所见即所得”的移动应用程序了。其他的改变好象还不是很明显,顺便说一句,VS.NET 2005的工具条的确是漂亮一些了。
如果改变只有这些,那么微软就不是微软了,我们来按照写一个DEMO的思路逐渐开始探险的旅程,首先要往窗体上放一些控件。
请大家注意这些我已经画了红线的控件,记得大家在描述CF 1.0开发困难时经常会用这样一句话:“连DateTimePicker都不支持”。好了,现在CF 2.0终于痛改前非了。WebBrower一直都是大家想要的一个东西,这样把浏览器嵌入到自己的程序中就不再是一件难事了。
Notification这次也以控件的身份出现了,在这之前OpenNETCF里的Notification类好象是托管程序开发的唯一选择,不过里边竟然有BUG。不知道微软的官方类库会不会好一点?另外,DocumentList、OpenFileDialog都是一些非常有用的控件,以前在CF 1.0中解决不料的问题,这次看起来简单了好多。
为了实验新控件,我们不再写“Hello, world”了,太没技术含量J我们往窗体上拖了一个DateTimePicker控件和一个MothCalendar控件,以及一个Button。双击Button控件,就进入了代码编辑环境。
这就是Form1.cs里的所有代码,大家发现和以前有什么不一样了吗?对了,细心的开发者一定会问,那些控件的构造方法去哪里了?我们来看下面的画面。
大家先看右边的解决方案管理器,在Form1.cs下面多出了两个文件,Form1.Designer.cs和Form1.resx,后者无疑是一个资源文件,而前者呢?大家看Form1.Designer.cs里的代码是不是有些熟悉?对了,这就是那些控件的构造函数,现在全都搬到另外一个类里去了。除了使Form1.cs更简洁外,微软是不是还有其他的图谋,比如XAML?呵呵瞎猜的。大家在Form1类的声明中可以看到一个新的关键字partial,他就应该是这个变化的关键所在了吧?
好了,这个问题我们回头再研究,在编辑代码的时候,我还有点意外的发现,我们来看下:
哈哈,这是什么?重构这个词大家不陌生吧?如果不知道,推荐去看下Martin Flower的那本经典。尽管提供的重构功能不是很多,只是“重命名”之类的简单功能,但按照8020原则,这些功能就可以解决大部分的重构问题了。记得在那本《重构》中Martin介绍了SmallTalk下的自动重构工具,这回VS.NET已经引入了其中一些功能,看来微软的工程师也在看《重构》。不知道Martin的下一本书是不是有兴趣用C#来写呢?不过大师的眼睛里已经没有了语言……
继续写代码,将DateTimePicker的Text属性用MessageBox显示出来,很简单。在写代码的过程中,发现自动补齐功能也有新的变化,就是可以显示该方法的一些概要信息。
代码写完就要编译运行了,我们还是要选择部署的位置,模拟器怎么改名叫“仿真程序”了?真不习惯。编译方式和以前一样,按F5或者是界面上的那个绿三角。
我在这里发现了一个新模拟器的问题,就是模拟器运行起来,打印屏幕的按键又不起作用了,这个问题在Pocket PC 2002的模拟器上曾经出现过,PPC 2003 SDK里已经解决了,不知道这次为什么又这样?
写了这么多,总要把运行起来的程序给大家看一下呀。最后终于在VS.NET 2005的菜单里找到了一个老朋友:Remote Zoom,这个以前出现在EVC中的工具终于被VS.NET接受了。和他一起出现的还是那老几位:Remote File Viewer,Remote SPY++,不再一一介绍了。想想也正常,EVC都被VS.NET给收编了,这些工具的出现也很正常。
……