Dr. GUI Revisits Windows CE

Dr. GUI Online
April 27, 1998

So What's That about Windows CE?

Dr. GUI enjoyed himself at the recent Windows CE Developers' Conference in San Jose. But the Doc is sorry to say that between the CE DevCon, tax day, and a busy surgery schedule, this column is unfortunately late. Sorry, again.

So what's the deal with CE? Well, remember that you've read here before that Windows CE is a modular operating system. This means that, in addition to shipping in various mobile computers (Handheld PCs, Palm-size PCs, and Auto PCs), you can also use it in various embedded systems—everything from custom mobile solutions to controllers. In other words, there are two primary ways in which you might use Windows CE: you might use it to build a customized operating systems and applications for an embedded system, or you might write applications, components, or drivers for one or more of the Windows CE–targeted product platforms.

Embedded Systems

Windows CE is an ideal operating system for many embedded systems applications. Each embedded device will use just the parts of the modular Windows CE operating system it needs, then write applications to use the customized embedded operating system. This allows embedded-systems developers to minimize memory requirements. Yet the services from which an embedded-systems developer can choose are powerful—on top of the multithread 32-bit kernel you can put modules to do screen I/O, telecommunications, networking, and more. In other words, Windows CE can help you get your device to market more quickly and with more features.

Targeted Product Platforms

But what if you want to write applications? Each member of the PC Companion family (Handheld PC, Palm-size PC, and Auto PC) represent a targeted product platform—a platform for which you can write custom applications. Each platform implementation, regardless of manufacturer, meets the minimum requirements for that platform, ensuring that you have a consistent API and hardware feature set for which to program.

Vive la difference

While there are many similarities between the platforms (all are based on the Win32 API, for instance), the platforms are different because the hardware is different. For instance, Palm-size PCs don't have keyboards but do have handwriting recognition and special application buttons. Auto PCs have a very small display, no keyboard, and support speech input and output. Obviously, Handheld PC programs won't run (or be useful) on the Auto PC. Less obviously, Handheld PC programs have to be modified to work well on the Palm-size PC. The hardware is different, the user interface is different, so the applications have to be different.

Write Once, Reuse Again and Again

Just because the user interface is very different, however, doesn't mean that there's not a lot that's the same. That's where you can really take advantage of Windows CE: once you've written an application for the Handheld PC, it's not too hard to port it to take advantage of the Palm-size PC. In fact, if you design your programs carefully, you should be able to port many modules without rewriting them at all. For instance, if you're writing a mail application, the data manipulation will be exactly the same between the Handheld PC and the Palm-size PC. Only the display and user interface will change. Good modular design and implementation will help you be an efficient Windows CE developer.

More Platforms to Target in the Future

In addition to the current targeted product platforms, the PC Companion line, there will be others in the future—and Microsoft invites other companies to create their own targeted product platforms.

Tools

One of the strengths of Windows CE is the wide variety of tools available from Microsoft and others such as Metrowerks (www.metrowerks.com/embedded/wince.html). Microsoft Visual C/C++ is available on all Windows CE platforms, including embedded platforms. In addition, some target platforms have support for Microsoft Foundation Classes (MFC), Active Template Libraries (ATL), Visual Basic, and Visual J++. Microsoft is planning to have broad language and tool support available on all platforms as soon as possible.

A Tale of Two Platform Strategies

It's hard to pass up the opportunity to contrast the Windows CE approach with a certain other company's approach. Now, even this company has four distinct platforms—in addition to their standard platform, they're planning on Enterprise, Personal, and Embedded platforms. Each of these platforms will expose a different API, although they're supposed to be subsets of each other. And each represents a least-common-denominator approach to the target products.

The Windows family strategy is quite different: maximize commonality (the Win32 API) while providing just the feature set needed for each platform. This approach allows vendors to maximize performance (using assembler code if necessary) while taking maximum advantage of the unique hardware features of each platform.

Who will win? Dr. GUI can't tell for sure, but if he were a betting Doc, he'd bet on features and performance over religious purity.

Where Do I Sign Up?

Maybe you're thinking that this sounds pretty good—and maybe you want to get in on it. What should you do?

First, relax: Windows CE is based on Win32, so you have a leg up on Windows CE already since you know Win32. And the Windows CE–specific things you learn on one platform will transfer, by and large, to other platforms. (So will your code, if you design carefully.)

Next, check out your options at www.microsoft.com/windowsce/developer/ (click "Downloads" on the site directory to see available downloads for PC Companions and Embedded Downloads). Some of the SDKs are even free! And whether you made it to the conference or not, check it out, including PowerPoint slides and NetShow presentations, at www.microsoft.com/events/windowsce/.