I discovered the Netduino a couple of days ago!
I have recently started development of internet-connected devices using the Arduino Uno and an Internet shield.
I am intriguded by the power of C#, multithreading, debug and the many other features of Netduino that make it easy and fast to develop internet-connected devices.
There are, however some drawbacks: limited product range, limited supported devices and related code, limited competition (price), limited support (just this forum?), fewer sample code available, ...
You have the experience, so help me make an informed decision:
1) Based on your experience, what are the 5 key reasons why Netduino is a better development tool for developping custom internet devices that Arduino
2) How do you deal with the restrictions/drawbacks compared to Arduino to reduce their importance
One of the big reasons for me why I use the NetMF platform using Netduino over Arduino is debugging. With Arduino, without going through a lot of gyrations, you have two basic ways of debugging. Serial.println, and flashing an LED. Serial.println works fine if you don't need to use the serial port(s) for other purposes.
With NetMF, you can do Debug.Print (or is it Console.WriteLine - don't my code in front of me), write out to a serial device, twiddle an LED, and most importantly, single step through the code to inspect what is actually going on. Another big thing is the code that you write, is the code that gets uploaded to the board.
With Arduino, if you use the Processing language and Arduino IDE, what you write is not what gets compiled and uploaded. A good example of this is some code I wrote last week, one of my preprocessor directives was wrong. The output from GCC which the Arduino IDE spit out said there was an error on line 133. My code didn't have a line 133. So I had to turn on verbose compiler output, so I could see where the actual file that the Arduino IDE was feeding to GCC was. Then open that file up and see what the actual error was.
That said, both platforms have their strengths and weaknesses.
Another big one is interrupts. Only pins D2 & D3 (IIRC) can be used to trigger interrupts. On the Netduino, any pin can trigger an interrupt. Interrupts are useful to have the microprocessor tell you when something has happened, instead of having to constantly monitor the state of a pin, and do your own checking on if the state of the pin has changed, and if that state is one you care about. For example, you can trigger when a pin goes high, goes low, or both.
-dan