进行基于.NET CompactFramework的开发有段时间了,渐渐地BOSS们发现仅位于Windows mobile平台的应用已经远远不够,我们内部也做过一次调查,参加调查的人数大概一百多人,仅有10%的人使用的是基于Windows mobile的手机,85%用的是S60 第三版,剩下的则是Linux及其他,如何让开发出来的程序能够顺利地跨平台,自然而然我们想到了java,公司里的一个java牛人立即用2天时间用J2ME做了个数据查询,并宣称在三个平台下能够顺利应用(Symbian,windows mobile,linux),在赢得一片称赞声之后,我不禁对这个跨平台性产生了疑问,真的能很好地跨平台吗?
J2ME我不是特别了解,从开发环境上看,感觉与.NET很像,java的一些特性跟c#也很像,入门确实很容易,各个J2ME规范之间的切换也很方便,不过从我接触的几个J2ME开发人员来看,他们基本上都是做手机游戏开发,针对的也是较低版本的机子,但这个做企业移动应用合适吗?
老实说,从公司现有的需求来讲,现在要做的是将windows mobile平台下的应用搬到Symbian下,因此我们可以选择的开发平台还有Symbian c++,c++的开发效率要低一些,但对细节能够照顾得很全面。下面是我参照我们组所总结的关于这几个开发平台的优劣。
一、J2ME
1、移植性好,使用J2ME技术开发的程序,只要手机支持J2ME规范就能够运行这个程序;
2、开发效率快,因为网络上相关资料很多,并且和手机操作系统关联性不大,所以程序的开发周期将被大大缩短;
3、入门快,java语言是一个很容易上手的语言,对于一个有过开发经验的人来说,这个门槛被大大降低了。
1、功能有限,为了实现J2ME的移植性,J2ME无法实现一些系统功能,一些厂商的利益关系也造成了一些手机无法很好地支持J2ME规范;
2、速度比较慢,由于J2ME技术运行在JVM的基础上,再加上手机的硬件限制,所以运行速度会相对较慢;
二、Symbian C++
1、程序运行效率高,Symbian能够保证在它的平台下用c++开发出来的程序的高性能;
2、资料丰富,Symbian论坛与Nokia论坛上提供支持这方面开发的丰富的资料;
3、切换性好,对于Symbian的各个版本,只需做稍许微调就能够很好地在这上面应用。
1、移植性差,用Symbian c++ 开发的程序无法移植到Windows mobile及其他平台;
2、开发效率低,由于涉及到Symbian的相对底层,因此对这个平台要有一定的了解才能够进行;
3、门槛较高,c++语言的特性也造成了驾奴它的难度,因此对开发人员的要求会很高。
三、Windows Mobile(Compact Framework)
1、开发效率高,visual studio 200X或许是这个世界上功能最强大的IDE了,在加上c#的特性,因此用这个平台上用Compact Framework来开发应该是开发效率最高的;
2、文档齐全,微软的文档一向以全面著称,而且各种培训视频均能免费下载到;
3、入门容易,只要你拥有桌面开发经验或者.NET平台下经验,你就能很快地做出一个能在你的windows mobile手机上跑得很溜的软件。
移植性差,compactframework的特性造成了它移植到别的平台上的困难,虽然我在网上有看到一些关于它的跨平台,但效果却无法令人满意。
这其中有我一些很片面的看法,选择哪种开发平台还是得看具体的需求,总不能说在一个装Windows Mobile上的PDA上用J2ME死磕,或者相对低版本的手机上用.NET耗着。这篇文章旨在抛砖引玉,望高人多多指点,让我们都少走一些弯路。