Aug 31

So recently I’ve been spending a lot of time working on a data migration process which involves a heavy amount of BASH scripting. Consequently I’ve been spending most of my time with my laptop and it’s OpenSUSE 11.1 installation, because Cygwin just won’t cut the mustard for what I need it.

Part of the work involves converting a MS SQL Server 2005 database to CSV format, for use in conjuction with our target MySQL database.

bcp… or not to bcp…

bcp is a great application – it’s fast and doesn’t clog up the db logs,  but it’s a tad tricky to get to grips with. Even more so in my case where the source DB had some very strange collation issues resulting in some irritating cases of CSV data not being generated correctly. Amazing how many email addresses contain pipes (|) or double quotes etc! I’m not necessarily knocking bcp here – I believe our source database was a bit of a mess and is most likely the point of failure in the operation.

Enter Mono…

Decidedly fed up with bcp queries that just don’t output reliable CSV data, I quickly wrote a C# application using MonoDevelop to extract my data and ‘massage’ it into the format I needed. In many cases this included some minor transformations which would have been very fiddly using T-SQL alone. It was a very strange experience to write C# under a non-Windows OS, and even stranger to see it run and perform much like it would using my office PC.

It’s been a while since I last looked at Mono when it was very much less developed, but I was very impressed by the quality of the MonoDevelop IDE. Not only did it support the expected ‘intellisense’ and debugger it also came with XSP – a lightweight web server that is able to host ASP.NET web apps under a non Windows OS.

I was surprised again when I saw just how much software has been built using Mono.

Turnaround time

Although my dabble with Mono isn’t exactly a groundbreaking test drive by any means, I was hugely impressed at the progress that has been made in terms of implementing an open source, .NET development framework. It made my life easier in terms of allowing me to work on multiple platform technology on a single machine without the need for a VM – which is what I’ve been using in the past. Overall – less time spent faffing with a dodgy database and ultimately a major task delivered on time. Whoop!

Your thoughts…

Have you worked with Mono lately? Do you think it’s a good thing, or should the effort be spent on improving existing .NET technology on the Windows platform? I’d be interested to see what seasoned developers think of this.

Share this post:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Fark
  • LinkedIn
  • MySpace
  • Slashdot
  • StumbleUpon
  • Twitter

One Response to “Mono = fantastic”

  1. Ian says:

    I too hadn’t looked at Mono for many years until last week, seeing again if it can really provide a viable framework and environment to develop .NET applications.

    I have to say I too was impressed with the screenshots of both produced applications and MonoDevelop. Unfortunately the current lack of a stable release of MonoDevelop for Mac OS X precludes it from my radar for the time being, but I will definitely be watching with more interest in the coming months.

    Lastly I must confess that I love Visual Studio 2008, and despite using Mac OS X for nearly 7 years and avoiding Microsoft like the plague for all my other requirements, I’ll continue to boot into a VM (or BootCamp) to use it :)

Leave a Reply

preload preload preload