Windows Embedded Compact 7 vs Windows Mobile 7

Windows Embedded Compact 7 is designed to target a broader range of embedded devices. Given the array of embedded devices that may be created using Windows Embedded Compact 7, there are no standardized hardware or software requirements.

The Windows Mobile platform is the lead Microsoft offering for mobile handheld computing devices and applications, including personal digital assistants (PDA). Standardization of both hardware and software requirements has allowed the Pocket PC to provide an optimized mobile handheld experience while supporting third-party application development.

Windows Embedded Compact 7 is a hard real-time, componentized operating system that can be used by developers to build a wide range of embedded devices - you can think of the operating system as a box of Lego blocks, with Windows Embedded Compact 7 there are approximately 500 components (or Lego blocks) that make up the operating system, a developer gets to pick and choose which components or technologies they put into their embedded operating system design - the operating system could be built as a kernel only image which would boot with a ~700kb operating system image, the developer can also choose to include a web server, web browser, media player, networking, .NET Compact Framework, or a host of other operating system technologies, each of which will of course increase the size of the operating system image.

Devices can be based on a range of processor architectures (ARM, MIPS, x86 or SH4 with integrated Memory Management Unit MMU) and can be headless or expose some form of user interface. The choice of operating system features also determines the application development APIs that are exposed from the device - this means that each Windows Embedded Compact 7 embedded device could expose a completely different set of components/technologies and therefore APIs to an application developer (and in many cases devices are closed, so there isn't a 3rd party developer story).

Windows "CE7" gets released to two sets of customers, the general embedded developer (who builds cow milking machines, sewing machines, industrial robots, set top boxes, and a range of other cool devices) and "Microsoft internal" customers (Windows Automotive, Windows Mobile, others).

The Windows Mobile team choose their own specific set of Lego blocks (operating system components), add their custom shell, applications (like Office Mobile), and device specific technologies (like the connection manager for example) - the result is a uniform set of operating system technologies, applications, shell and APIs that are consistent across all Windows Mobile devices - this means that an application written for one Windows Mobile smartphone (or Pocket PC) should run across all Windows Mobile devices (just check out the list of Windows Mobile applications available on Handango). Windows Mobile OEMs don't have the ability to customize the underlying operating system/technologies because that would modify the exposed APIs on the platform, but do have the ability to add their own specific applications/services to the Windows Mobile device image (today screen plug-ins, applications like VoIP, games, or others) - this also means that it's not easy to put Windows Mobile devices into "kiosk mode".

While it's true that the underlying operating system technologies and APIs are consistent across Windows Mobile devices there are also some differences that application developers may not take into account, for example screen resolution or orientation.

Product Matrix

Product

Processors

Componentized

Headless

  Consistent API

Licensed by

Windows Embedded Compact 7

ARM, MIPS, x86, SH4

Yes

Yes

No

Distributors

Windows Mobile

ARM

No

No

Yes

Microsoft