After two beta versions and a six-month testing period, Microsoft is nearing a final release of the .NET Compact Framework. "We're almost out the door at this point," says product manager Ed Kaim. Though the company has not announced a date for the framework's launch, it may well take place at Microsoft's Embedded DevCon, opening this week in Las Vegas.
The .NET Compact Framework will make Visual Studio .NET the development environment for Pocket PC, Windows CE, and Microsoft Smartphone powered devices, replacing the eMbedded Visual Tools and specialized SDKs for the different platforms. It's Microsoft's hope that millions of Visual Basic developers will now join the world of mobile development. "It's a familiar model, reaching down," Kaim says. "I think that people are really starting to understand the value of having a fully extensible [development] environment."
Microsoft has gone to great pains to make development within the .NET Compact Framework indistinguishable from the desktop development process. The Visual Studio .NET designer, debugger, and editor are all unchanged. "It can be kind of thankless sometimes when we put in months of man-hours and end up with something that's just on par," laughs Kaim. "The only time we get hit on stuff, usually, is when something isn't the same." For instance, the beta versions of the framework were missing the DataGrid control familiar to desktop Visual Studio .NET developers; at the insistence of the users, that feature will be included in the final release.
One feature completely new to Visual Studio .NET is the Pocket PC and Windows CE emulator, which replicates the workings of a mobile device at the microchip level. The emulation is faithful enough to provide what Kaim somewhat ruefully calls "bug for bug" simulation: It managed to derail a demo application with something that turned out to be a device-level bug.
The .NET Compact Framework is a mostly a subset of the .NET Framework, intended for devices more intelligent than a pager but less full-featured than a laptop. It uses a JIT compiler, and offers access to platform-specific features through a Platform Invoke feature. There are variations from the desktop world—COM components can't be called directly; classes have been added for infrared communication and for control of the Software Input Panel—but the list of differences is short.
At the moment, applications written to the .NET Compact Framework can only be deployed to Windows CE or Pocket PC devices (the Smartphone will be supported by January). Microsoft representatives are quick to point out, however, that the framework depends only on the Common Language Infrastructure, which is an ECMA-ratified standard now under consideration by ISO, and that other projects (such as Mono) could theoretically incorporate support for .NET Compact applications.
Similarly, while any of the dozens of languages ported to the Common Language Runtime can be used in a .NET Compact application, Visual Studio .NET only provides tools (color coding, IntelliSense, etc) for C# and Visual Basic.
It's assumed that applications written to the .NET Compact Framework might be clients of web services, and Visual Studio .NET allows developers to code against a web service as if it were a business object. Tools for handling authentication are included, though as far as security goes, the Compact Framework doesn't yet incorporate standards-in-progress like WS-Security.
Kaim also highlights the 2.0 release of SQL Server for CE as a key component of Microsoft's embedded strategy. Freely available for download, it's "one of the best-kept secrets out of the CE group," he says.
Information about the .NET Compact Framework will be posted to http://msdn.microsoft.com/vstudio/device/ as it is released.