As mentioned in the previous section, the release of VS .NET 2003 has served to bring the benefits of XML Web Services and the Framework to smart devices. As a result, the goals of the Compact Framework and SDP can be enumerated as follows:
Portable (and small) subset of the Windows .NET Framework targeting multiple platforms: This includes the creation of a runtime engine, class libraries, and compilers for VB and C# that together are referred to as the .NET Compact Framework. As you'll see in the next section, this framework is not a simple port of the desktop version, but a complete rewrite designed to execute managed code on multiple CPU architectures and operating systems through an abstraction layer known as the PAL. It is important to note that the Compact Framework was also designed to be a subset of the desktop version of the desktop Framework. As a result, roughly 25% of the desktop types are represented in the Compact Framework.
Leveraging of VS .NET: Because VS .NET already provides a high-productivity development environment, it is only natural that this environment should be utilized in developing mobile applications as well. To that end, SDP for VS .NET 2003 provides the project templates, emulators, debugger, and device integration to use the same IDE for desktop as for mobile development. SDP will be explored in detail in the second half of this chapter.
True emulation: One of the requirements for developing robust (i.e., well-debugged) mobile applications is that they run as expected when installed on the device. To that end VS .NET includes emulators for Pocket PC and Windows CE that execute exactly the same operating system binaries, EE, and class libraries as those installed on the device. In addition, the emulator supports localized packages for developing global applications, as will be explored in Chapter 8. In this way, developers can be assured that the code they write and test with the emulator will execute correctly when deployed to the device.
Enabling of Web Services on devices: As mentioned previously, because XML Web Services are by definition device-independent, they can be used from a variety of devices. By building support for consuming Web Services directly into the Compact Framework, developers can easily call Web Services, as will be discussed in Chapter 4.
Taken together, the realization of these goals means that the benefits of XML Web Services and the desktop Framework discussed in the previous section can be realized on devices as well.
The remainder of this chapter will focus on the architecture and features of the Compact Framework and SDP.