.NET Compact Framework Architecture
The .NET Compact Framework inherits the full .NET Framework architecture of the common language runtime for running managed code. It provides interoperability with the Windows CE operating system of a device so you can access native functions and integrate your favorite native components into your application.
You can run managed and native applications concurrently. The application domain host, itself a native application, starts an instance of the common language runtime for running managed code.
The following illustration summarizes the .NET Compact Framework platform architecture.
The .NET Compact Framework uses the Windows CE operating system for core functionality and for several device-specific features. Several types and assemblies, such as for Windows Forms, graphics, drawing, and Web services, were rebuilt to efficiently run on devices, rather than being copied from the full .NET Framework.
The .NET Compact Framework provides the following interoperability with Windows CE:
Compatibility with native security.
Full integration with native setup programs.
Interoperability with native code using COM interop and platform invoke.
Common Language Runtime
The .NET Compact Framework common language runtime (CLR) was also rebuilt to allow constrained resources to run on limited memory, and to efficiently use battery power.
A platform adaptation layer, not shown in the illustration, exists between Windows CE and the common language runtime to map the services and device interfaces required by the CLR and Framework onto Windows CE services and interfaces.
The .NET Compact Framework is a subset of the .NET Framework and also contains features exclusively designed for the .NET Compact Framework. It provides the features and ease of use that facilitate bringing native device application developers to the .NET Framework and bringing desktop application developers to devices.
The experience with Microsoft Visual Studio 2005 for developing smart device applications is as easy as with desktop applications. Smart device development in Visual Studio includes a set of project types and emulators that target development for Pocket PC, Smartphone, and embedded Windows CE.