Uno – Dos – Tres Mono! What MonoDevelop Means for your ActiveEngine November 18, 2009Posted by ActiveEngine Sensei in .Net, ActiveEngine, Linux, Mono, New Techniques, Open Source.
Tags: C#, Mono, MonoDevelop
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.”