Which to Choose: Evaluating Microsoft Windows CE .NET and Windows XP EmbeddedMicrosoft CorporationSeptember 2003AbstractThis paper provides an overview of the Windows Embedded family of operating systems, and decision criteria for choosing the operating system software—Windows CE .NET or Windows XP Embedded—that best suits your device requirements and design. The paper also provides information about the operating system and application development tools and resources available for each platform.The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.^ This White Paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, AS TO THE INFORMATION IN THIS DOCUMENT.Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation. Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.© 2003 Microsoft Corporation. All rights reserved.Microsoft, MSDN, Visual Basic, Visual C++, Visual C#, Visual Studio, Win32, Windows, and Windows Media are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.^ The names of actual companies and products mentioned herein may be the trademarks of their respective owners.Microsoft Corporation • One Microsoft Way • Redmond, WA 98052-6399 • USA05/00Contents ^ How Windows Embedded Benefits Your Business 1Windows XP Embedded 2Windows CE .NET 3Application Development for Windows Embedded Devices 4Device-Specific Considerations 6Decision Criteria for Choosing a Windows Embedded Operating System 8How to Obtain the Windows Embedded Evaluation Kit 10Summary 11For More Information 12 ^ How Windows Embedded Benefits Your Business The Microsoft Windows Embedded platform—consisting of Windows XP Embedded and Windows CE .NET—provides the best set of technology, tools, and resources to get your device to market faster. Regardless of which operating system you choose, using a Windows Embedded software platform provides important benefits for your business. ^ Access to the World’s Leading Technology Portfolio Each software platform provides a comprehensive and scalable set of operating system technologies in componentized form so you can incorporate your choice of Windows-based features and services. Integrated operating system and application development tools allow you to rapidly develop your device and reduce your time-to-market. With support for a broad range of hardware and software, you can choose the processor, applications, services, and drivers best suited to the functionality and cost of your device. ^ Unparalleled Business Value and Agility Windows Embedded operating systems enable faster time-to-market with comprehensive feature sets and easy-to-use developer tools that enable you to reduce project duration. They also allow you to decrease your cost-to-market by investing fewer man hours, developing less customized code, and reducing the need for third-party intellectual property. The Windows Embedded licensing model provides scalable engagement options to suit your needs and enables low up-front investment so that the vast majority of your expenditure happens after your device is shipping and is successful. ^ Commitment and Support to Sustain Your Long-Term Market Leadership Microsoft is committed to your success: Windows Embedded platforms are backed by industry-leading research and a long-term innovation roadmap, as well as a world-class development organization, a range of support options, and programs to make using Windows technology easy and scalable. And, with a worldwide network of over 1,800 partners in 55 countries, you gain access to an ecosystem of value-add resources and services that includes third-party products and services, Windows Embedded Newsgroups, online chats and webcasts, and technical content provided by the Microsoft Developer’s Network (MSDN®). The guiding principle of the embedded business model at Microsoft is simple—when our embedded customers are successful, we’re successful. Read on to discover the key differentiators between Windows CE .NET and Windows XP Embedded, and get guidelines for choosing which operating system software is most optimal for your next device design.^ Windows XP Embedded Windows XP Embedded is the embedded operating system that delivers the power of Windows in componentized form and enables developers to rapidly build reliable and advanced embedded devices. Based on the same binaries as Windows XP Professional, Windows XP Embedded contains over 10,000 individual feature components so developers can choose and achieve optimum functionality while managing or reducing footprint in a customized device image. Popular device categories for building operating systems using Windows XP Embedded include retail point-of-sale terminals, thin clients and advanced set-top boxes.Windows XP Embedded delivers industry-leading reliability, security, and performance features and enhancements. The operating system software also provides the latest multimedia and Web browsing capabilities and contains extensive device support. In addition, Windows XP Embedded incorporates the latest embedded-enabling capabilities, such as support for multiple boot, storage, deployment and management technologies. Based on the Win32 programming model, Windows XP Embedded allows you to reduce time-to-market by using familiar development tools such as Visual Studio.NET, working with commodity PC hardware and seamlessly integrating desktop applications, drivers, and services. The Windows Embedded Studio tools streamline the end-to-end development process and enable developers to rapidly configure, build and deploy smart designs with rich applications. The following Windows Embedded Studio tools are included in Windows XP Embedded:^ Target Analyzer enables you to quickly generate a base operating system configuration that supports your choice of hardware.Target Designer helps you to rapidly build a custom operating system image. Features such as the footprint estimator allow you to gauge the footprint impact of a component and its associated dependencies before building your device image, helping you streamline the development process. Target Designer further accelerates your development efforts by including component dependency checking capabilities prior to the image build process. Design templates help you quickly generate a base configuration for a range of devices by providing the functionality you need for a specific device type. ^ Component Designer allows you to quickly convert unique drivers and applications into components that can be used in a custom operating system image. Together, Target Designer and Component Designer provide an IDE that helps accelerate the development of a customized device.Component Database Manager helps you manages each component available in Windows XP Embedded and, by supporting the Microsoft SQL Server Desktop Engine (MSDE), facilitates a high-performance integrated build environment^ Windows CE .NET Windows CE .NET is the successor to Windows CE 3.0. Designed from the ground up for the embedded marketplace, Windows CE .NET combines an advanced, real-time embedded operating system with powerful tools for rapidly creating the next generation of smart, connected and small-footprint devices. With a complete operating system feature set and comprehensive development tools, Windows CE .NET contains the features developers need to build, debug and deploy customized devices. The componentized features in Windows CE .NET are optimized for next-generation devices that require rich networking and communications standards, a hard real-time kernel, rich multimedia and Web browsing capabilities and smaller footprints. Windows CE .NET is designed to deliver: Scalable wireless technologies to flexibly connect mobile devices.Reliable core operating system services for enabling demanding real-time designs.Innovative technologies to enable rich, personalized experiences that span devices, PCs, servers, and Web services.A rich, easy to use end-to-end toolset that increases developer productivity.Windows CE .NET is also designed to help embedded developers to build scalable platforms that flexibly integrate the next generation of embedded devices with existing infrastructures. For example, devices built on Windows CE .NET enable users to remotely authenticate, authorize, administer, and update new applications and operating system services. With broad wireless support for personal area networks (PAN), local area networks (LAN), and wide area networks (WAN)—including Bluetooth and 802.11—a Windows CE .NET-based device can stay connected anywhere, anytime. Support for local and network security features means that data produced, consumed, stored and transmitted by these devices stays secured in a mobile environment.Windows CE .NET offers reliable core operating services to support the most demanding real-time embedded designs across a wide range of devices. For example, embedded developers can enable low latency, bounded, deterministic system performance with hard real-time operating system (RTOS) kernel support. For detailed information on the operating system software’s real-time performance, see Real Time and Windows CE .NET.The platform development tool used to create an operating system image within Windows CE .NET is called Platform Builder. It is an IDE that includes an SDK export tool so developers can use a single tool to create, build, debug and deploy a runtime image. To create applications that will run on a Windows CE .NET-based device, choose between support for native code—Microsoft eMbedded Visual C++®—and support for managed code—Microsoft Visual Studio® .NET. With these platform and application development tools, developers can rapidly build smart designs running rich applications on the latest hardware. ^ Application Development for Windows Embedded Devices Windows CE .NET and Windows XP Embedded each provide an integrated, end-to-end toolset to help device manufacturers reduce time-to-market by decreasing operating system and application development time: Windows XP Embedded and Windows CE .NET each enable developers to easily create rich, personalized user experiences that span devices, PCs, and servers. Support for industry standards such as XML and SOAP, combined with powerful multimedia and Web browsing capabilities, provides developers with the ability to run the next generation of applications and XML Web services on advanced embedded devices. Support for industry standards and the latest embedded technologies also enable original equipment manufactures (OEMs) and network service providers to easily update devices and service offerings to meet changing user demands and emerging standards.Windows XP Embedded contains support for the Microsoft .NET Framework. To write applications for Windows XP Embedded-based devices, developers can therefore use the same tools used for desktop and server-side development. In addition, Windows XP Embedded runs on the same commodity x86 hardware as Windows XP Professional, so developers can quickly build designs that use familiar desktop drivers and services.With support for the .NET Compact Framework and the device emulation technology offered in Windows CE .NET, developers can build and prototype device designs on individual workstations without the immediate need for additional hardware. This emulation technology included in Windows CE .NET enables simultaneous operating system, application and hardware development—resulting in significant reductions to the traditional product development cycle. From an application development perspective, Microsoft offers a rich set of languages for creating managed (.NET) or unmanaged (native) applications for both Windows CE .NET and Windows XP Embedded devices. ^ Creating Managed (.NET) Applications Written to a set of run-time environment application programming interfaces (APIs), managed code is usually easier and faster to write than native code, and it is portable across software platforms and processors. The run-time environment is also usually portable across platforms and processors so developers can reuse their code more easily. Code is executed by one of the primary components within the .NET Framework, the Common Language Runtime (CLR). The CLR is a high performance execution engine which provides run-time services such as memory management ("garbage collection"), cross-language inheritance, integrated code access security and automatic lifetime control of objects, so developers do not have to add these features to their code. Most managed code is typically paired with a Just-in-Time (JIT) compiler that can pre-compile the managed code to make it run at close to native performance. Code written in Microsoft Visual Basic® .NET, Microsoft Visual C#™ .NET or other .NET languages is managed code. Visual Studio .NET provides the development environment for creating managed code and simplifies the development and deployment of distributed XML Web services and applications for Windows XP Embedded and Windows CE .NET-based devices. Visual Studio .NET takes full advantage of the .NET Framework and .NET Compact Framework, which use public Internet standards to enable integration with new and existing applications running on any platform. Visual Studio .NET includes many new enhancements to the Visual Basic and Visual C++® development systems as well as a new programming language, Visual C#™ (pronounced “C sharp”).^ Visual Basic .NET now offers full object-oriented language features, including implementation inheritance and visual inheritance for forms when writing Web applications. It also allows developers to create highly scalable code with explicit free threading, and highly maintainable code with the addition of modernized language constructs such as structured exception handling.Visual C++ .NET provides deep support for creating Web Services using the C++ development language. This development environment comprises the industry standard Active Template Library (ATL) and Microsoft Foundation Class (MFC) libraries, advanced language extensions and powerful IDE features enabling efficient editing and debugging. Traditional unmanaged Visual C++ and new managed Visual C++ code can be mixed freely within the same application. Existing components can be wrapped as .NET components by using the managed extensions, preserving investment in existing code while integrating with the .NET Framework.^ Visual C# .NET is a modern, object-oriented, type-safe language. It enables programmers to quickly build a wide range of applications for the Microsoft .NET platform. Visual C# .NET is designed to bring rapid development to the Visual C++ programmer without sacrificing the power and control that have been a hallmark of Visual C and Visual C++.^ Creating Unmanaged (Native) Applications Otherwise known as native code, unmanaged code is written to a specific set of software platform APIs and a specific microprocessor. Typically, native code offers the highest performance with the smallest footprint but the compiled code ("the executable") can run only on the specific software platform and processor for which it is written. Native code also requires developers to write customized security and memory management code—tasks that can be challenging for inexperienced developers. Code written in eMbedded Visual C++ can be used only for applications running on Windows CE .NET-based devices and is considered native code: eMbedded Visual C++ 4.0. eMbedded Visual C++ 4.0 is a standalone IDE that brings a new level of productivity to Windows CE .NET development without compromising flexibility, performance or control. Features in eMbedded Visual C++ include C++ exception handling and standard template libraries. Version numbers for eMbedded Visual C++ directly map to the compatible versions of Windows CE .NET. For example, to write applications for Windows CE .NET 4.2 devices, you need to use eMbedded Visual C++ 4.0 Service Pack 2; to write native applications for Windows CE 3.0-based devices such as Pocket PC 2000 or 2002, you must use eMbedded Visual Tools 3.0. For additional information, please visit the eMbedded Visual C++ section of the Visual Studio .NET Web site.^ Device-Specific Considerations The features and functionality typically required for specific device categories can help you choose between Windows XP Embedded and Windows CE .NET. Table 1 provides examples of some of the device categories that can be powered by the Windows Embedded family of operating system software. In some cases, however, Windows CE .NET and Windows XP Embedded may provide comparable support for a targeted device, so your choice should be determined by comparing your specific design requirements with the features offered by Windows CE .NET or Windows XP Embedded respectively. For more product information, read the ^ Windows CE .NET 4.2 Product Overview or the Windows XP Embedded Product Overview.Table 1. Recommended Windows Embedded Operating System by Device Category Targeted Device Windows XP Embedded Windows CE .NET ^ Mobile Clients PDAs Smartphones Internet and Media Appliances ^ PC Companions Digital Cameras Printers and Scanners ^ Thin Clients Retail Point-of-Sale (RPOS) Devices Windows-Based Terminals ^ Connected Clients Basic Set-top Boxes Advanced Set-top Boxes Basic Residential Gateways and Servers Advance Residential Gateways and Home Servers Industrial Controls Voice Over Internet Protocol (VoIP) Phones Devices such as mobile handhelds and basic residential gateways require a small footprint, efficient power management, and remote management capabilities along with the ability to deliver rich user experiences, making Windows CE .NET the recommended operating system for smart, connected and small-footprint devices.Devices such as advanced set-top boxes and retail point-of-sale clients require the latest security and reliability features, familiar and powerful Windows features, and are less restricted in terms of footprint. Windows XP Embedded is the recommended operating system for delivering the power of Windows in componentized form. The latest versions of Windows CE .NET and Windows XP Embedded are optimized to support a variety of device-specific platforms, including ATMs, thin clients, gateways and set-top boxes. For detailed information about these platforms, visit the Windows Embedded Device Platforms Web site. ^ Decision Criteria for Choosing a Windows Embedded Operating System To help you select the most suitable Windows Embedded operating system software, you may want to consider your device design in terms of the following features and functionality:CPU Architecture. Are you using an x86 or non-x86 CPU? If you are using an X86 CPU, you can use either Windows CE .NET or Windows XP Embedded. If you are using a non-X86 CPU, then you must use Windows CE .NET, which supports four families of microprocessors, including:ARM. Examples of supported processors include ARM720T, ARM920T, ARM1020T, StrongARM, and XScale.MIPS. Supported processors include MIPS II/32 with FP, MIPS II/32 without FP, MIPS16, MIPS IV/64 with FP, and MIPS IV/64 without FP.SHx. Supported processors include SH-3, SH-3 DSP, and SH-4.X86. Supported processors include 486, 586, Geode, and Pentium I, II, III, and IV. Additionally, heat dissipation concerns will affect both CPU selection and operating system. If heat dissipation is a concern, and you select a non-X86 processor as a result, then Windows CE .NET is the only choice for your device.Real-Time Support. Does your device require real-time support? Both Windows CE .NET and Windows XP Embedded support real-time performance. Windows CE .NET is inherently a hard real-time operating system. While Windows XP Embedded is not inherently a real-time operating system, you can easily add real-time capabilities and optimize Windows XP Embedded to meet your real-time needs with readily available third-party solutions.^ Win32-based Applications. Does your device design take advantage of Win32-based applications? If your device will make use of existing Win32-based applications and drivers without modification, use Windows XP Embedded. Win32 applications and drivers must be modified to run on Windows CE .NET.Operating System RAM Configuration. How much RAM will your device include, and what is the corresponding device image footprint requirement? Both Windows CE .NET and Windows XP Embedded are componentized to enable you to create small or managed footprint designs. The minimum footprint for Windows CE .NET is less than 350 KB, while the minimum footprint for Windows XP Embedded is approximately 8 MB. Footprint requirements are an important factor when choosing between Windows CE .NET and Windows XP Embedded. Figure 1 provides decision criteria that can help you choose whether Windows CE .NET or Windows XP Embedded is optimized for your specific device requirements. ^ Figure 1. Decision Matrix for Choosing Windows XP Embedded or Windows CE .NETWindows CE .NET and Windows XP Embedded differ primarily in regard to processor support, real-time support, application portability and footprint. If it appears after reviewing this overview that your device requirements can be met by either Windows Embedded operating system, you can find more detailed information at the Windows CE .NET Web site and the Windows XP Embedded Web site.^ How to Obtain the Windows Embedded Evaluation Kit The Windows Embedded Evaluation Kit includes either the Windows XP Embedded Evaluation Software or Windows CE .NET Evaluation Software. It also includes the Windows Embedded Resource Guide, Volume 3, which can help you decide which operating system is right for your device and provide valuable product and technical information. For information about purchasing Windows CE .NET or Windows XP Embedded, visit How to Buy. If you are a member of an academic community, visit the ^ Windows Embedded Academic Program to learn how to obtain evaluation copies of the Windows Embedded operating system software so you can participate in programs to promote innovation and enable classroom learning for the next generation of embedded developers. Summary The Windows Embedded family of operating systems offers access to the world’s leading technology portfolio, unparalleled business value and agility, and the commitment and support that can help you sustain long-term market leadership. The operating system features, functionality, and recommendations discussed in this paper are intended to provide a framework for choosing whether Windows CE .NET or Windows XP Embedded is best suited to your embedded device requirements.Windows XP Embedded is designed to deliver the power of Windows in componentized form, enabling you to rapidly build reliable and advanced embedded devices. Windows CE. NET combines an advanced, real-time embedded operating system with powerful tools for rapidly creating the next generation of smart, connected, and small-footprint devices. Each operating system ships with a complete integrated development environment, with support for a wide range of existing hardware, application development tools, and third-party value-added applications and services. ^ For More Information For more information about the Windows Embedded operating system platforms, visit the Windows Embedded Web site. For more information about device-specific software platforms supported by Windows CE .NET and Windows XP Embedded, visit ^ Windows Embedded Device Platforms.For more information about the Windows Embedded family, visit: Windows Embedded Frequently Asked Questionshttp://www.microsoft.com/windows/Embedded/faq/default.asp TechInsights for Windows Embedded http://www.microsoft.com/windows/embedded/techinsights/default.asp Windows Embedded Developer Center on MSDN®http://www.msdn.microsoft.com/embeddedFor more information about Windows CE .NET: Windows CE .NET Product Overviewhttp://www.microsoft.com/windows/embedded/ce.net/evaluation/overview/default.asp Why Upgrade to Windows CE .NET 4.2http://www.microsoft.com/Windows/Embedded/ce.NET/evaluation/whyupgrade.asp Windows CE .NET Frequently Asked Questionshttp://www.microsoft.com/windows/embedded/ce.net/evaluation/faq/default.asp For more information about Windows XP Embedded: Windows XP Embedded Product Overviewhttp://www.microsoft.com/windows/embedded/xp/evaluation/overview/default.asp Windows XP Embedded Frequently Asked Questionshttp://www.microsoft.com/windows/Embedded/xp/evaluation/faq/deault.asp