jump to navigation

Uno – Dos – Tres Mono! What MonoDevelop Means for your ActiveEngine November 18, 2009

Posted by ActiveEngine Sensei in .Net, ActiveEngine, Linux, Mono, New Techniques, Open Source.
Tags: , ,

Much of Sensei’s philosophy is based on stepping out of your comfort zone.  When practiced frequently you enable yourself to pilot your way through situations where you may have to possess more confidence than facts.  And let’s face it, sometimes it just out right fun to wing it when you test your skills with the unknown.

MonoDevelop is a platform that will do that very thing.  It will change the way you think about your application’s architecture as you can branch out from the Windows stack.  Why not a C# back-end with PHP as your UI / presentation layer?  Why wait for “IronPHP”?  For the curious, MindTouch, an open source Wiki / CMS engine does just that.  It runs on both Windows and Linux with the core engine is written in C#.  This engine includes an embedded script parser written in C#, as well as an implementation of tuples and an excellent XML utility class that will make you wonder why you ever why Micorosoft could not have made something, well, easier.

If you are nodding your head in agreement, but are still skeptical that you have the time to make the leap to Linux, MonoDevelop is deployed with a openSUSE VMWare slice that only requires 512 MB of memory.  Really light weight.  It takes longer to download than it does to spin it up.  It’s just ready to go.  the IDE is based SharpDevelop and comes with Intellisense that admittedly does not play well with some cases Lambda’s and Anonymous Types.  This may become apparent when you import an assembly, and it slowed Sensei down for a bit.  Know that this is a failing of the intellisense, as when you get a clean build and test you’ll find that your code is all right.  You’ll need to have confidence in your code and may have to devise additional tests to validate that everything is working.

Save this failing of the IDE, the remaining features are quite nice.  THE IDE LOADS REALLY FAST!  I mean Microsoft should think this through.  VS Studio, while feature rich, is a dog with respect to speed.  Personally Sensei thinks we’ve been lulled into thinking that 2 GB is a minimum and that’s “progress”.  When compiling, watch your CPU on the host machine.  Remember your Guest OS is using 512 MB and it produces a build quickly.  It’s rather impressive.  For VS on Windows Sensei uses 4 GB of RAM and there are times when he sits waiting.  Hmmm…

MonoDevelop comes integrated with NUnit, and natively supports Boo – yeah, the stuff that Ayende raves about – MoonLight, which is a port of SilverLight, and of course ASP.Net.  MonoDevelop lacks robust refactoring features.  If you have ever used Resharper or DevExpress you’ll have shared the same regrets that Sensei has about having wasted time in the IDE.  The same holds for MonoDevelop.  In fact, there are times when the refactoring add-ins throw exceptions.  Outside your comfort zone you will be.  That was Yoda talk.

So where are we with all the man-ish developer bravado?  Mono can be a lateral jump for you into a new series of platforms.  Using VMWare you can easily setup test environments and fail. Fast.  Yeah, that’s a good thing.  With most Linux builds you have the chance to use Lua, a really fast embedded scripting environment.  Lua is native to a new open source database called Tokyo Cabinet you gives you the choice storing data in Value Pairs, B+Tree, or normal indexed table schema.  Here’s a cool presentation detailing the possibilities.  More comfort zone?  How about NHibernate and Spring.Net?  They have been reportedly ported to Linux with Mono.

Wrapping it up ’cause Sensei’s running long.  Just do it.  There are many possibilities here that you are missing if you stay safe.  There are many views that are beyond Microsoft’s vision that  they provide for you.  And that’s the point.  You’ll be more agile on your next gig if you’ve already solved problems beyond the scope of normal.  Yoda translation:  “Agile you will be.”


1. webdev_hb - December 1, 2009

It really is difficult to describe just how much of Mono/MonoDevelop/Linux really *just works* already. It is amazing that you can just start hacking out a MVC app on Ubuntu using MySql for the data source — all without needing to relearn anything!

MonoDevelop is nice but it still isn’t VisualStudio — VS might be a bit of a memory hog, but it does have CTRL+. which is the source of all of my productivity 🙂

ActiveEngine Sensei - December 1, 2009

Out of interest, what facets would you need in MonoDevelop in order to make the switch?

webdev_hb - December 4, 2009

I don’t know that I would ever just switch entirely but I have started actual projects in Mono/MonoDevelop that I’m writing for businesses and other people. I just think that either I don’t know the IDE well enough or some of my favorite shortcuts are missing.

Linux on the other hand has yet to impress me even remotely to the point to abandon Windows — Ubuntu is probably the closest to usable but even then I get tired of trying to figure the stuff out (how about some double-click installation!). Even now my Linux is out of VirtualBox (except my web server that I’m *still* trying to set up)

For me, I’m a developer – I’m more interested in solving a problem in code than solving a problem with my OS. Linux is probably easy for the *real* computer nerds but I’m too focused on other things to care. I think I’m more apt to switch once Linux gets easier…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: