I mentioned this idea in another thread and I've been thinking about how to make it work. Already today I wanted to deploy a new project to my Netduino Plus 2, and it fails to run because I've got the 'debug' firmware flashed. Having to flash the firmware all the time will be a major pain and I'm even more convinced that NuGet is the way to deliver this...
I have forked the source code and looked into making a NuGet package. It would be relatively straightforward except for one thing: conditional compilation.
Is there no better way to handle the link layer than conditional compilation flags? What if I want to have more than one network interface? Currently it seems to be impossible because the link layer is essentially hard coded via conditional compilation flags.
Since this is managed code, there ought to be better ways of handling this, perhaps using reflection to detect a marker interface or a custom attribute?
If that could be achieved, then I think it would be simple to produce a NuGet package for each link layer implementation, each of which would depend on another package containing the network layer.
I think there are a number of advantages to this approach. If SecretLabs could consider how to get rid of the conditional compilation, then I would be very happy to produce a build for the NuGet packages.