Image:mono-gorilla-aqua.100px.pngIn order to debug and deploy .NET applications using the Mono Tools for Visual Studio, there are 2 components that need to be installed. Firstly there is the plugin for Visual Studio on Windows, and there is the monovs-server that needs to run on the target Linux system.

Installing the Visual Studio plugin is of course as easy as it gets, as the Mono guys have provided a Windows Installer file for our convenience. You can download it here from the official project page.

If you’re using openSUSE, installing the monovs-server part is quite easy too. Novell has provided a 1click RPM installer (or alternatively you can downloaded an openSUSE virtual image for VMWare or Virtual PC). If however you’re not using openSUSE (especially a non-RPM system like Ubuntu), things can get a little tricky.

I’ve managed to hack it so it works on Ubuntu, so what follows should get you up and running quite quickly.


The guys at the Mono Project have released their Mono Tools for Visual Studio. This must be one of the most anticipated projects of the year for me yet!

According to the official project page:

Mono Tools for Visual Studio is a commercial add-in for Microsoft™ Visual Studio™ that enables developers to write .NET applications for non-Windows platforms within their preferred development environment. It allows developers to build, debug and deploy .NET applications on Linux, while continuing to leverage the extensive ecosystem of code, libraries, and tools available for .NET.

While there’s a fair bit of marketing speak in there (I tune out pretty much whenever I hear the words “leverage” and “ecosystem”), the benefits are actually quite simple.

You can now remotely deploy and debug .NET applications on Mono directly from within Visual Studio!

I can’t begin to tell you how much help this is going to be in working on BlogEngine.NET on Linux. Unfortunately this capability isn’t open-source or free, but as a Visual Studio developer you’re probably going to be used to paying for features. Starting at $99 I guess it’s not too hefty a price to pay if you’re serious about using C# on Mono and Linux.

Here’s some of the awesome things you can do with it right now:

  • Directly deploy a .NET application to a remote Linux machine.
  • Debug and step through your code in Visual Studio as you run on a Linux box.
  • Built in portability checker for existing .NET applications.
  • Package your application as an .rpm for installation on distributions that support RPM’s (not Ubuntu unfortunately).

For more information, I’d suggest you go visit Miguel de Icaza’s blog, and also the official product page at the Mono project.

I’ll be following up this post shortly with a guide to getting it all to work on Ubuntu.

I’ve finally gotten around to creating a new theme for this blog. I’ve been feeling a bit of pressure after Al did an absolutely stunning remake of his blog a couple of months ago.

With each theme I do for BlogEngine.NET, I can’t help but be more and more impressed with how easy it is.

Al also has some great tips for BlogEngine.NET theme designers. Have a a look at his creating themes webcast and some tips here and here.

I’ve finally put together a bash script to automatically download, compile and install Mono on Ubuntu. At the time of writing, it installs Mono Should this be outdated by the time you read this, you can simply modify the install script to download the latest files.


When you’re developing a large website, you often find yourself with a couple of broken links floating around on your site. As most developers working on dynamic sites generally don’t think about it, your first indication that you have a problem is usually only after deployment.

Either you’re unlucky enough to have it brought to your attention by a customer, or you discover it yourself using a tool like Google’s Webmaster Tools.


This is exactly what happened to me while working on our new Cape Town Accommodation venture

The webmaster tools will allow you to drill into the info and find the offending links. Now you happily go off and fix the problem in your site and deploy again.

But hang on a second. How can you be sure that you haven’t created more broken links in the process of fixing the problem you initially identified? With a dynamic site making heavy use of URL rewriting this is a major possibility (and it happens to be exactly what happened to me).

Obviously you need to test that your site is now broken link free. You can be optimistic about it and wait for Google to re-index your site so you can check the webmaster tools again (probably not a very good idea). Or you can use one of the many online link checkers available to scan your site. But that isn’t that great a solution either, because at this point you’ve already deployed the site.

First prize then would be to check your site for broken links in your development environment before deploying. There are a number of tools available for doing this, but most are commercial and not free of charge. The website has a number of tools listed if you’re interested.

From their list I discovered the excellent freeware Xenu utility by Tilman Hausherr. This little Windows app will scan through your locally deployed website and highlight any broken links, allowing you to fix them before deploying!


What more could you ask for?

My efforts at evaluating Tokyo Cabinet hit a bit of a dead-end when I realised there were no .NET bindings for it. I suppose I could have evaluated it using Ruby or Python, but that would have just been putting off the inevitable. At some stage I would need .NET bindings if I was to use it in a project.

So I’ve gone ahead and implemented the TokyoTyrant binary network protocol in a .NET wrapper. I’ve open-sourced my efforts, and you can download the source from CodePlex at

I am mostly interested in using Tokyo Cabinet as a document database, so my implementation fully supports the table database mode of Tokyo Cabinet. It’s a full implementation though, so there is support for it’s various key/value modes too.

Mono is fully supported and there is a comprehensive example project, so getting up and running should be easy.

Give the library a spin and let me know if you have any (hopefully constructive) criticism.

I’ve been getting increasingly interested in alternative databases of late. With alternative I mean non-relational databases of course.

There are a number of document / key value stores in development at the moment. They include projects like HBase, CouchDB, MongoDB and much more.

What has really grabbed my attention at the moment is Tokyo Cabinet. It’s a fascinating datastore that promises excellent performance along with great data security features like master-master replication.

This post isn’t about the features of Tokyo Cabinet, it’s about getting it installed so you can start playing with it yourself. The Igvita blog has a great write-up about why Tokyo Cabinet is relevant, so head over to Tokyo Cabinet: Beyond Key-Value Store for the juicy details. Once you’re impressed, head back here to install it and start playing!


The Mono team has just released Mono This release is of particular significance because it contains support for ASP.NET MVC. That’s great news for me as I am now thoroughly addicted to MVC.

Mono will install using the instructions in my existing tutorial, but I did have some trouble compiling the new release on my own server.

In particular, I had a SIGSEGV error while compiling Mono. I got around that by updating my system. So  make sure that update your system before compilation using “apt-get upgrade”.

Secondly, I ran out of memory while compiling again. It seems that as the mono documentation gets bigger, the memory required for compilation just gets more and more. I managed to compile with 450MB of free memory this time.

So head on over to my tutorial on Installing Mono on Ubuntu and give it a go yourself.

I've had some questions about my avatar, and no, I did not create it myself. It comes from an online avatar/character generator created by the very talented Rasterboy.

Check out his Unique character generator here.

Every comment I leave on my blog and those of other's display my avatar because I have a Gravatar account.

From their site:

A gravatar, or globally recognized avatar, is quite simply an image that follows you from site to site appearing beside your name when you do things.

Go check Gravatar out here.

If you've noticed all the talk about Behaviour Driven Development (BDD) on the interwebs, you've probably had a look at it and tried to wrap your mind around it.

Like me, you may have decided that it looks interesting, but told yourself that you'll get back to it someday because of the sheer lack of good introductory information available.

Well that someday is now, as Rob Conery has put together an amazing screencast that explains it in detail with truly useful and understandable examples. In fact, he's done such a good job of it that I'm completely sold. I can't wait to integrate some BDD goodness into my next project.

To see for yourself, go check out Rob's most excellent screencast here:

I am a software developer / architect currently interested in combining .NET technologies with open-source operating systems. 

I am a member of the open-source BlogEngine.NET development team and focus mainly on ensuring Mono compatibility for the project.



At StayUnlimited Cape Town accommodation we help you choose from and book guest houses, self catering apartments, bed & breakfasts, luxury villas and hotel accommodation.