Microsoft Mobile Platforms
You will need a mobile platform before you can think about developing mobile applications. In order to use third-party or custom-built applications from the field, workers need a mobile device and mobile devices require a mobile operating system. Running a Windows XP-based enterprise application client on a disconnected notebook can seem like a good idea, but you should wonder if this is the best form factor for your usage scenario. What if you need to work while standing up with no table or counter for the notebook to rest on? What if you work in an environment harsher or dirtier than a corporate office like a construction site, a factory, or the great outdoors while you conduct field surveys? What if your mobile user requires a lighter form factor than you can tuck into a suit jacket or holster on a belt? The first lesson in mobility 101 I always teach is that you need to pick the right device for the job
, otherwise you'll end-up trying to fit a square peg in a round hole. The device itself can make a difference based on the hardware options, extensibility features, ports, and capabilities it sports. But the single most important decision you need to make before you can choose a device is about software. Devices run various inceptions of some mobile operating systems (OS) or another, and just like the desktop or server world, you'll need to swear your allegiance to a mobile OS before moving on.
Microsoft has several options when it comes to choosing a mobile operating system. You will need to choose a form factor first since device operating systems are almost always embedded directly in the device itself. You can't walk into a computer store and buy Windows CE off the shelf as you would Age of Mythology or Windows XP Home Edition. Microsoft licenses Windows CE to device manufacturers (device OEMs) like HP, Toshiba, and Dell, who in turn embed the OS on a chip or a Flash ROM in the device. You then buy the device in a store, ready to use and pre-configured with the mobile OS and default settings.
Let's review the main operating systems available from Microsoft for mobility purposes.
Microsoft Windows CE
In 1996, Microsoft scaled down their Windows NT core operating system and announced a modular version for a broad range of communications, entertainment, and mobile computing devices. Windows CE was born. With a multithreaded 32-bit kernel and an open architecture optimized for real-time, Windows CE has the power to drive serious applications in any kind of device. Thanks to a scalable model, Windows CE can not only scale up to power feature-rich devices and appliances, but also scale down to less than 1 MB to provide basicyet relatively powerfulsystem services in very compact devices. Upwards and downwards scalability may seem to be the main strength; however, the key innovation in Windows CE lies in its modular aspect. This modularity enables device manufacturers to "pick & choose" which components of the OS they want, thus streamlining their device by excluding superfluous modules and libraries that would add little value or drive up the cost of the hardware.
|Now in version 4.2, Windows CE has been rebranded with the new Windows CE .NET moniker.|
It is a well-known fact that Windows is a pretty hefty OS. With its thousands of modules, libraries, and DLLs, Windows provides developers with a deeply integrated and vastly wide array of rich application services, from the low-level 32-bit kernel to the high-level ADO data access library. This is how Windows developers can rapidly and efficiently build advanced applications with little low-level programming. But Windows is far too heavy and feature-rich to be squeezed in a limited form factor like a mobile device where significant constraints exist, such as processor, memory, storage, I/O ports, or battery life.
Besides, not every device needs all the features and parts in Windows. The classic "desktop" with icons, a taskbar, and a Start button may be familiar and ubiquitous on a desktop PC, but it is optional in Windows CE. Some deviceslike the Auto PC, for exampleopt for a more optimized menu-driven display and companion technologies such as voice recognition to capture user input. Or they might have no display at all where everything is "read" back to the user through a text-to-speech engine. This is but one example and OEMs have several customization options in Windows CE.
Windows CE provides a standard option for device manufacturers who would traditionally have designed and implemented their own proprietary environment, just like you might have seen in older devices in the 80's and early 90's such as HP scientific calculators or Sharp and Casio electronic organizers. Standardization promotes openness, which in turn brings variety and a wider choice for consumers.
OEMs use the Platform Builder included with every version of Windows CE to assemble and configure their custom version of the OS. Using the Platform Builder, a hardware manufacturer could start from a default platform configuration or build a custom configuration by going through several steps. Default configurations are very varied in the latest version of Windows CE and include smart phones, Internet appliances, set-top boxes, tiny kernel, PDA, and many more. I won't dig too deep in the Platform Builder since, as a business applications developer, you probably will never have to use it as you'll be relying on existing devices rather than design your own.
Windows CE 3.0 easily stands as the most common inception of the OS in that it is found in a majority of the most popular Windows CE-based devices today. There is a common prejudice that states Microsoft typically gets things right on the third release, and while Windows CE has seen multiple major revisions between versions 1.0 and 3.0, version 3.0 did put Windows CE on the map for good.
Now in version 4.2, Windows CE has been rebranded with the new Windows CE .NET moniker. The reason why most devices are still not running Windows CE .NET (even though version 4.0 was first released in January 2002) is you can't buy Windows CE .NET from Microsoft directly as an end-user or download an update from Microsoft's Web site. OEMs have to license the new version from Microsoft, adapt it to their devices, customize it based on the hardware features, and then test it extensively before publishing a new Flash ROM image. Only then will they make the new image available on the market through upgrade packs or direct download, and it won't be free.
In future installments of this column, I will discuss Windows CE .NET more and more since this will be the primary target OS for many of my technical samples. For now, to obtain more information on Windows CE .NET, you can visit the Microsoft Windows Embedded Web site at www.microsoft.com/windows/embedded/ce.net/default.asp.