News

  • Home > News

        .NET MF 4.0 has open source model, new features

        Jonathan Angel | Date: Nov 17, 2009 | Comments: 1



        Microsoft announced version 4.0 of its .NET Micro Framework, with a number of performance enhancements and a new open source model. Featuring a new community website, removal of all license fees, plus features that include multi-touch support and an HTTP object model, the software is available now, according to the company.


        Microsoft describes its .NET Micro Framework (.NET MF) as "an innovative development and execution environment for resource-constrained devices," and estimates that the software is running on more than 1.5 million device worldwide. Offering a "fully integrated Visual Studio experience," the environment is typically used on 32-bit processors that have no external memory management units (MMUs), and have as little as 64K of memory, the company says.

        Last May, Microsoft said it would turn the source code for .NET MF over to the community and make porting kits available for free. The move was the result of layoffs, following which employees in Redmond's .NET MF team were to be shifted to the broader .NET Framework team.

        Now, according to product manager Colin Miller (right), posting on the .NET Micro Framework team blog, version 4.0 of .NET MF has been released, described as "our first version to come out since we moved to the Developer division." He adds, "This version has a number of neat features."

        For example, Miller writes, .NET MF now provides an object model for handing both HTTP clients and servers, similar to the one already provided by the .NET Framework. The new types are said to include System.Net.HttpWebRequest, System.Net.HttpWebResponse, and System.Net.HttpListener from assembly System.Http.dll.

        Miller adds that the .NET MF object model and emulator now include basic support for multi-touch events, such as moving two fingers on a touch screen. Gesture support has been redesigned to be faster and more flexible, he writes.

        Other .NET MF 4.0 features include the following, according to Miller:

        • Versioning -- Versioning has been implemented to strictly identify assemblies by the version number at build time and on the device, and eventually re-deploying missing assemblies. Side-by-side load and bind for types belonging to the same assemblies with a different version number is supported. Support has also been added for assembly naming which includes the version number.

        • Emulator support for SSL and HTTPS: The emulator now explicitly supports SSL and HTTPs emulation.

        • Native XML parser: The XML parser has been moved to native code for better performance.

        • Native collections: The collection classes have been moved to native code for performance, and have been enriched with Queue and Stack types.

        • Time sync: Devices can use the new Time Sync API to sync the system time with a specified server's time, automatically or manually.

        • Arbitrary display size: A custom heap and allocation area is now provided to support bitmaps larger than 760KB.

        • Large buffers: A new type, Microsoft.SPOT.Hardware.LargeBuffer, is provided for allocating buffers larger than 760KB, which would not fit in the managed heap. This type is located in assembly Microsoft.SPOT.Hardware.

        • Watchdog and power level control: The power level and the watchdog behavior can now be controlled from the managed application using types Microsoft.SPOT.Hardware.PowerState and Microsoft.SPOT.Hardware.Watchdog from assembly Microsoft.SPOT.Hardware.dll.

        • Thick pens and gradient fills: A richer graphic model is now provided for designing widgets and controls.

        • TinyCore performance improvements: TinyCore performance has been enhanced in the area of event dispatching and layout.
        A new open source model

        According to Miller, Microsoft is now making source code for almost all of the .NET MF components available under the Apache 2.0 license. This will allow developers to "debug through the full stack and make whatever specialized changes you need for your specific application. It also means that if you want to run .NET Micro Framework on a processor architecture that is not already supported, you don't have to wait for Microsoft to build and release the porting kit built with the right toolchain -- you can do that yourself," he writes.

        Source code for the .NET MF TCP/IP stack and cryptography libraries will not be included, however. In the former case, this is because the TCP/IP stack is licensed from EBSNet, and in the latter case because the crypto libraries are used in other products besides .NET MF, explains Miller.

        Addressing concerns that .NET MF could fragment into a number of incompatible versions, "as has happened with other [open source] products," Miller says Microsoft will remain actively involved in the environment's development. He further explains, "There will be a core technology team that is made up of both Microsoft and external participants who will be the gatekeepers of code that goes into the product."

        "Microsoft engineers will continue to focus on some of the things that only they can do -- deep coordination with the rest of the .NET team, collaboration with other Microsoft product teams, and some of the more elemental architectural changes. For external developers, we are throwing the door open for you to propose projects that you would like to take on," Miller writes.

        A new website, www.netmf.com, will manage .NET MF community interaction, and will also insure that proposed projects meet the needed quality metrics, according to Miller. The site will additionally allow community members to advertise extension libraries, hardware platforms, and other support services, he writes.

        Peter Galli, the open source community manager for Microsoft's platform strategy group, stated, "The .NET Micro Framework has become a seamless development experience, bringing a single programming model and tool chain for the breadth of developer solutions, all the way from small intelligent devices, to servers and the cloud. There are also no more time-limited versions."

        Background

        First released back in 2006, .NET MF is Microsoft's development environment for small, deeply embedded devices with constrained processor and memory resources. It originally grew out of the company's SPOT (smart personal objects technology) initiative, which brought about SPOT watches, weather stations from Oregon Scientific, and a coffee maker from Melitta.

        Said to require a RAM footprint of as little as 64K, .NET MF can run on an operating system or directly "on the metal" without one. Only one application can run at a time, but it can include multiple threads, according to the company.

        In October 2008, Microsoft unveiled Net Micro Framework 3.0, giving the environment a new file system, the ability to link to native code, touchscreen support, USB support, a WiFi infrastructure, and other enhancements. (For further details of .NET MF 3.0, see our earlier coverage, here.)

        The environment's previous major update was in February 2008, when .NET MF 2.5 added both a native TCP/IP stack and support for Web Services on Devices (WSD), which aims to allow network-connected devices to discover and connect to one another without user intervention.

        Some customers had already gained a file system, thanks to proprietary extensions created for .NET MF 2.5 by GHI Electronics. For its USBizi and Embedded Master modules, GHI devised an embedded FAT (file allocation table) implementation that is said to let the .NET MF-based devices access files on microSD- or USB-based storage.

        Further information

        For further information about the .NET Micro Framework, see Microsoft's website, here. Colin Miller's posting on the .NET MF team blog can be found here.



        Related stories: