In the last two years, Microsoft has made two fundamental and important changes in its technology offerings. The first is the inclusion of XML Web Services as a cross-platform integration technology. XML Web Services relies on an XML grammar (Simple Object Access Protocol, or SOAP) to achieve platform, language, and device independence by providing a standardized, programmable way to invoke logic exposed on a Web server. Indeed, it is the hope of Microsoft and many others in the industry that XML Web Services will power a world where applications running on a variety of devices and platforms make use of a ubiquitous "Web Services fabric" to stay connected and integrate disparate silos of information, including business and personal information. Currently, there are over 80 public SOAP toolkits available for a variety of development tools and platforms.
At the same time, Microsoft was developing and did release in February 2002 Visual Studio .NET (VS .NET) and the Microsoft Windows .NET Framework. While VS .NET is a development environment, the Framework consisted of an entirely new infrastructure for executing applications and included an execution engine (EE), which is essentially the common language runtime, and a set of class libraries for developers to use. In addition, Microsoft created a new language (C#) for this environment and submitted both the specification for the EE and C# to the European Computer Manufacturers Association (ECMA), where they were later formalized. Not only do the Framework and VS .NET support cross-language development through the five languages that Microsoft supports and additional ones created by other vendors, it also enhances developer productivity by including a fully object-oriented runtime and full-featured Integrated Development Environment (IDE). Perhaps its most important feature, however, is that it includes built-in support for XML Web Services by supporting the SOAP 1.1 specification.
The .NET Compact Framework and SDP for VS .NET, shipped with Visual Studio .NET 2003, piggyback on both of these important technological shifts. They did so first by providing an EE and class library support for building applications on smart devices, allowing developers to leverage their knowledge of the Framework. They did so second by including support for calling XML Web Services, acknowledging that smart devices are an important player in the Web Services ecosystem.
The architecture of the Compact Framework allows for hardware and operating system independence by including a Platform Adaptation Layer (PAL) and Native Support Libraries (NSLs) that shield developers and allow them to write code that is portable between devices. It also includes its own rewritten EE and Garbage Collector (GC) that differ in some respects from the common language runtime and are optimized for devices. The class libraries included with the Compact Framework are roughly a subset 25% the size of the desktop Framework, with a few extensions to support the capabilities of devices.
The SDP is, of course, accessed through VS .NET 2003 and beyond and provides the project system, language support (VB and C# only in this release), graphical designers, emulators, and a debugger necessary to develop applications using the Compact Framework. In most respects the SDP leverages the existing tools found in VS .NET but also includes configuration options for the two emulators that ship with the product and the ability to debug an application both within the emulator and remotely (attached to the developer's workstation).