As some may or may not have heard, I started freelancing on the side.  My first side project is pretty interesting ( was interesting if your reading this in the distant future.)  Basically, the project was to talk to different devices and provide status information back from the devices through an LCD panel.

Pretty straightforward.  Oh wait, it has to run on an EPIA platform.  Also, Windows XP isn’t a viable option…

Hello Linux and Mono!  Did I mention that my preferred language is C#?  I’m not a fan of writing C or C++ since I drank the .Net Kool-Aid back in 2003.

Surprisingly, my development platform of choice (Vista and VS 2008) and the target platform (Linux + Mono) work out well.  Really the only hiccups I’ve encountered have been with the project files and NUnit.  If I create a test project in VS2008 and open it with MonoDevelop (on the Linux development machine), it can’t seem to locate that NUnit assemblies, but after I correct it in MonoDevelop, VS2008 doesn’t have a problem with it.

Maybe it’s just me, but the ability to run the same code on two different platforms makes me happy.  And it’s crazy easy to run a Mono development environment.  Just download VMware’s player, download the virtual machine for the Mono development environment and run…it rocks.!

Actually, I fibbed just a bit…there’s been one other issue with Mono that kind of annoys me.  It’s with the implementation of the SerialPort class.  Basically, the SerialPort class has no notification for received serial data.  It’s pretty easy to work around this (it involves polling the SerialPort and works on Windows just as well), but it is a pain point.

So, if you find yourself needing to do cross platform development in .Net, check out Mono.