vs.net 2005 beta 2初体验
在经历了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给收编了,这些工具的出现也很正常。native应用开发的事情估计要下回再说了。
好了,最后给大家看看我昨天晚上的劳动成果吧。祝大家今天有个好心情,不过据说沙尘暴要来了,嗨,vs.net 2005 beta 2还真会挑时候……