For more than five years, Java 2 Platform, Micro Edition (J2ME) and its predecessors, such as PersonalJava, have served as the only viable platforms for developing managed smart clients on mobile or embedded devices. But that will soon change. With the introduction of Visual Studio .Net (VS.Net) 2003 in the first half of 2003, Microsoft will make its managed environment, .Net, available on Windows-powered mobile devices with its new product, the .Net Compact Framework (.Net CF).
History has proven that Microsoft can effectively leverage its positions in existing markets to push its agendas in emerging markets. Given Windows' dominance in the desktop market and .Net's presence in the enterprise market, every mobile Java developer must be prepared for the coming challenge. As Java developers, we must learn the latest Java tools. Equally important, we must learn what is happening in the .Net camp. We cannot just pretend that .Net does not exist or believe that we are too smart to learn from "them."
In this two-part series, I analyze the new challenges posed by .Net CF and how J2ME stands up to the competition. In Part 1, I present a high-level comparison and discuss the directions the two platforms will head in the future. Concrete code examples and case studies will follow in Part 2.
Read the whole series: "Let the Mobile Games Begin," Michael Juntao Yuan (JavaWorld):
J2ME and .Net CF are platforms for managed smart mobile clients. They are critical new technologies for advanced mobile commerce. Compared with micro-browser technologies such as WAP (Wireless Application Protocol), smart clients support rich user interfaces (UIs), leverage device extensions (e.g., GPS (global positioning system) and bar-code scanners), and support more flexible integration and security schemes. Smart clients also reduce network traffic and improve transactional stability through on-device data storage. Compared with smart clients on native platforms (such as eMbedded Visual C++ or C++ SDKs for the Symbian OS), Java- or .Net-managed environments greatly improve developer productivity, application reliability, and mobile code security.
Designed for mobile computing, .Net CF is a lightweight version of Microsoft's .Net Framework. The .Net CF Common Language Runtime (CLR) runs standard .Net byte code applications. .Net CF contains a subset of standard .Net API libraries necessary for mobile application development. It runs only on Windows CE/Pocket PC-powered high-end PDAs.
In the Java camp, the situation is more complex. J2ME contains standardized configurations and profiles designed to provide the best compromise between portability and performance for a range of mobile devices. Configurations support the Java core APIs. Profiles are built on top of configurations to support device-specific features such as networking and UIs. Each valid combination of configuration and profile targets a specific type of device:
Learn more about J2ME and .Net Compact Framework technologies:
Mobile development tools:
Mobile database tools:
Mobile Java specifications mentioned in this article:
JavaWorld resources: