A developer would have had to be on a desert island somewhere not to have heard of Microsoft's .NET initiative. This initiative consists of a run-time environment that isolates code from the hardware while at the same time providing a type-safe runtime for increased security. A smaller version of this runtime has been written for embedded and battery powered devices. The initial version of the .NET Compact Framework runs on top of Windows CE on the Pocket PC and on embedded systems based on Windows CE .NET 4.1 and later.The unique requirements of embedded devices will make it a challenge to write applications using only managed code. Embedded applications and some mobile applications require the application to be tightly integrated with the device. Because one of the features of the runtime is to isolate the hardware from the application, an embedded managed application sometimes needs to break the bounds of the runtime and directly access some operating system functions.As previously mentioned, the Compact Framework chapter spends a significant amount of time discussing how managed applications can access the operating system. This discussion includes the techniques for marshaling parameters across the managed/native code boundary—a task that's somewhat more difficult in the Compact Framework than on the desktop.