Netduino home hardware projects downloads community

Jump to content

The Netduino forums have been replaced by new forums at This site has been preserved for archival purposes only and the ability to make new accounts or posts has been turned off.

Linux/Mac Development Tools Vision

  • Please log in to reply
No replies to this topic

#1 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 20 August 2010 - 06:00 AM

Hi folks. Here's the vision for supporting .NET Micro Framework development on Mac and Linux: * Use MonoDevelop (an established and impressive .NET development environment) for writing .NET MF code * Compilation using Mono C# compiler, MetaDataProcessor (post-processor) and deployment via MFDeployEngine * Compile/deploy process integrated into MonoDevelop "run program" feature Here are the chunks of work that we know of which will need to be done: * MonoDevelop --- Support for .NET Micro Framework assemblies, Intellisense, code completion, etc. <-- might be done already --- Integration of custom postprocessor and deployment into toolchain * Mono C# Compiler --- This is likely fine as-is, but we may need to work with the Mono team to ensure that dependencies to desktop assemblies are not added in. Microsoft's C# compiler can do this by compiling for the "compact framework". * Mono .NET-compatible Runtime --- There may be some glitches here (in particular with serial port support), but the Mono team has been very good about taking care of these so far. We should be in good hands here. * MetaDataProcessor --- Port this C++ command-line project to Linux/Mac * MFDeployEngine --- Make minor changes to enable compatibility with Mono runtime * MFDeploy --- Eventually, create native Mac and Linux GUIs; today, make minor changes to enable compatibility with Mono runtime * USB or USBHID code --- We'd like to implement support for Microsoft's custom USB device implementation on Linux/Mac so that we can debug/deploy to existing .NET Micro Framework devices without using a serial port --- We'd also like to create a driverless, standardized HID transport which sends/receives all data using HID reports. This would make cross-platform implementation easy and reduce the possibility of driver issues on computers simultaneously. I am _not_ opposed to going this HID route "only", but we'd need to start a project add it to the Netduino firmware. We can take care of the HID code on the PC side in managed code (we've actually written most of it already). Our focus will be on enabling the following two platforms: * Mac * Linux About MetaDataProcessor: * MetaDataProcessor is a program which takes standard compiled .NET assemblies and "compacts" them into .NET MF assemblies. * MetaDataProcessor appears to use parts of the .NET MF runtime to do its work (which makes sense from a code deduplication standpoint). About MFDeployEngine: * MFDeployEngine is the deploy and debug engine for reading/writing programs on .NET MF hardware and for communicating debug information from the programming IDE to the .NET MF device. * Our focus on the first release is on deployment only. In future releases, it would be cool to integrate Debug.Print (and other debug features if possible). * MFDeployEngine is used by Visual Studio to deploy and debug .NET MF applications. * MFDeployEngine does a "selective deployment." If assemblies are already present on a device (in the firmware image), it does not deploy those assemblies. About MFDeploy: * MFDeploy is a GUI front end for MFDeployEngine. It allows the user to do diagnostics on a device as well as upgrade the device's firmware. Compatibility with Netduino and other .NET MF products: * This project is open source and designed to provide support for all .NET MF platforms. We should not put any hooks into the software which restrict it to working only with the Netduino. Chris

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

home    hardware    projects    downloads    community    where to buy    contact Copyright © 2016 Wilderness Labs Inc.  |  Legal   |   CC BY-SA
This webpage is licensed under a Creative Commons Attribution-ShareAlike License.