为button添加响应函数,双击button,在Click事件中些如下代码:
点击F5,直接 运行就可以了。
总结:做一个相同功能的HelloWolrd例子,Android需要修改修改三个文件,写18行代码,而WindowsMobile只需要拖拽两下,写一行代码。 无疑,WindowsMobile在GUI开发上快速的多。
界面风格比较
windows mobile 到了最新的6.5,界面上终于有了不小的改观,记得从6.1开始,对基础控件的绘制和渲染都有增强,但是要开发一个足够绚丽的界面,就像Pointui这种应用,难度还是很大的,因为大部分界面都要用GDI来自己绘制,因为微软提供的基础控件数量很有限,包括著名的 opennetcf库,在样式的支持上基本没有,所以自定义控件成为摆脱平庸UI的唯一方法。
这里还想要告诉大家的是微软一个龌龊的行为:如果我们想要对Button这个控件稍微的扩展一下,加上一点点我们自已的东东。结果是很麻烦,很麻烦。究其原因是:微软不是用GDI中的Graphics的函数进行绘制这些基本控件,实际上MS还是用的老办法,就象古老的C++程序一样,这样基于.net来做这件事情,唯一的方法就是捕获winproc消息,很不爽,而微软为什么要这么做呢,是为了避免咱们侵犯人家的外观专利。。。。
反观Android,在View的支持上不但提供了样式功能丰富的经典控件,而且允许灵活的扩展基础控件,不谈别的,就一个简单的例子,就说一下弹出对话框吧,如果我想在这个对话框中加入进度条,如图:

这是OPhone的一个基本控件,而如果在Windows mobile来实现的话,MessageBox肯定是不能扩展的,那么只能从头写一个,单是做一个背景透明的半窗体就很麻烦。所以在WindowsMobile的应用程序里,第三方的应用UI体验常常是良莠不齐,而且MFC的,ATL的,.netComactFramework的,技术混杂。归其原因是一方面微软用PC绑架了手机,.net平台做了一下裁剪就直接用了,可是,移动平台的UI与PC还是有很大区别的,另一方面就是不够开放。
系统核心对象比较
1:Form与Activity,View
做过Windows桌面编程的都会对Form有了解,Form 是应用程序中所显示的任何窗口的表示形式,即使一个Dialog也是对Form的一种派生。Form同时是一个容器,可包容其他继承自Control类的其他控件.
Windows Mobile下的Form的概念与桌面端是一致的。任何我们看到的界面都是一个包含在 Form中的布局。
而android中Activity,他相当于MVC模式中的Controler,它会与用户去交互,并对这些交互进行处理,我们可以通过调用 setContentView()来给Activity设置界面布局,Android的这种设计实现了界面设计和逻辑功能设计的真正分离,对View的高度抽象,也让界面具有高度扩展性,可以设计出更加丰富的界面体验。
2:Android中特有的Intent
Intent 提供了一个在不同应用的代码之间进行晚绑定 的机制。它主要被用来启动 Activity,还有服务等,它提供了应用中不同Activity之间,不同应用之间的通信方式,这既能对应用间的模块相互解耦,也让应用程序互相之间发挥共同的效力,这一点在windows mobile下是很难做到的,Form之间通常是依赖关系,耦合性很大,而一个应用要调用其他应用的某个功能,除非引用后者开放的类库,几乎没有什么好的办法可以做到。
3:ContentProvider和ADO.net
两者的设计目的有些相似,都是为了抽象数据访问层,ADO.net中有个很重要的概念:DataSet,我们可以通过各种数据源来填充DataSet,其实DataSet本质上就是一个内存中的数据库,有数据表,支持Sql查询,它支持多种数据源,如:sql数据库,xml,文本文件等。
相比起来,ContentProvider为我们提供了更大的灵活性,Content Provider用于将各个应用程序的数据进行共享,Content Provider是一个类,执行一套标准的方法,让其他的应用程序存储和获取Content Provider所处理的数据. 如果比较ADO.net和ContentProvider的话,ADO.net的数据访问模块是程序级别的,其他应用很难共享到既有应用对数据的加工处理,二ContentProvier通过一个唯一的ContentURI定位Provider,所有应用就可以通过构造ContentValues来对数据源进行操作。
总结:
对开发者来说,windows mobile与Android在体系架构上有很大不同,但在开发语言上,面向对象等方面,只要熟悉一下,两者之间的相互迁移并不难。
对于Mobile OS来说,不同于桌面操作系统,这必将有一场惨烈的淘汰赛,究竟是一家独大,还是三国分离,还是不同程度的整合,都是一个问号。未来的移动世界,网络肯定是永恒的主题,不同的操作系统也在这个方面做整合,互联网在不断嵌入到手机平台中,移动搜索,Widget技术,各种各样的网络服务,相信移动的世界会越来越精彩,而对于开发者的我们,多掌握一种技术,可能就是多一个机会。