.NET Micro Framework now supports Visual Basic, Remote Software Updates
The .NET Micro Framework is an implementation of the CLR that is targeted for very small devices, often with well under a megabyte of RAM. It was originally sold as a commercial platform with a per-device licensing model. Due to the price sensitivity of manufacturers, the pricing model simply wasn’t tenable so Microsoft dropped the fees. At the same time it was decided that Microsoft would release the source code under the Apache open source license and, even more surprisingly, accept community contributions.
Since becoming an open source project the framework has continued to grow. Version 4.2 has just entered its beta period with a long list of new features. Among these is support for Visual Basic, something wasn’t considered possible prior to VB 10 SP 1. There were two limiting factors here: the size of the VB runtime and the Visual Basic compiler’s use of features not found in the micro version of the CLR such as late binding and unstructured error handling. Another important feature in 4.2 is MFUpdate.
The MFUpdate feature provides a framework for enabling software updates (remotely or locally). The update framework provides storage, backup and installation facilities that are configurable from the porting kit. A porting kit developer can either use some of our sample facility providers like the BlockStorageUpdate storage provider or the MicroBooter installation provider, or they can provide their own facilities. This way both the download application and the update facilities are configurable, thus giving the user the most flexibility while at the same time limiting what they need to implement. The managed developer simply needs to create an application using their preferred transport and communication protocol to receive the update packets. Then they will use the update facilities to validate, store and eventually install the packets. When you combine this functionality with the Cryptographic framework that was added to .Net MF for v4.2, we enable the developers to create a secure remote update story. In the porting kit we have one platform (iMXS_net_open) and two samples firmware upload mechanisms: MFDeploy and HttpServer. MFDeploy and the HttpServer sample transfer .nmf flies (compress firmware binaries) packet by packet to the iMXS_net_open platform. The emulator has the capability to upload firmware but it will obviously not be able to do an install. This provides an easy sample for testing custom update applications.
It should be noted that the licensing for the .NET Micro Framework is not compatible with the other open source version of the CLR, Mono. This licensing incompatibility has undoubtedly caused the developers on the .NET Micro Framework to implement some features from scratch that could have otherwise been adopted from Mono.