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 www.stayunlimited.com.

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 SoftwareQATest.com 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?


We've just made a release candidate for BlogEngine.NET 1.5 available over at the CodePlex site. As there are a number of changes and improvements to the code base, we'll be using the release candidate to test all the new changes. Please help us out and test as much as you can with this new release.

Aside from the improvements that Al mentions on his blog, this is the first release in a while that is completely Mono on Linux compatible out of the box.

Installing BlogEngine.NET on Linux is now as easy as installing Mono, copying the BlogEngine.NET files over to your server and configuring apache. To those that have tried that before I realise that it's easier said than done, so I will be putting together a BlogEngine.NET on Mono tutorial in the next couple of days.

If you are using BlogEngine.NET on Mono, please give the new release a test and let me know your results in the comments.

So Miguel just let slip on Slashdot that they're working on some very fancy features for Mono and ASP.NET / MVC.

I agree that Visual Studio is a very nice tool.

Luckily the code that you produce with Visual Studio will run on Mono (no recompilations necessary) including code that uses ASP.NET MVC. And with the new support for ASP.NET precompiled sites in Mono (available in Mono 2.4) you do not even need to copy the source code to your target server.

Click "Publish" in visual studio, enter the location for your shared directory, and you have a fully working ASP.NET MVC app running on Linux, without leaving Windows.

We are working on various integration points for Visual Studio that will give developers even more: debugging from Visual Studio remote applications deployed on Linux systems and producing packages ready-for-distribution on Linux. [Miguel on Slashdot]

I doubt that this was a secret to begin with, but it is the first I've heard of this and it excites me greatly. I mean, come on, debugging a Mono hosted ASP.NET application remotely using Visual Studio? It doesn't get better than this!

I just came across the official mono porting ASP.NET applications guide. If you're planning on doing a port, I'd suggest you give this guide some attention.

The guide has some real gems like the following:


On Unix systems, Mono supports an I/O compatibility mode which allows you to ignore the file name case when accessing files on disk. The mode also takes care of disk designators (e.g. c:). Enabling the translation carries, obviously, some performance penalty, but is a good way to get your application up and running quickly. To enable the compatibility mode, make sure your web server's (XSP's or Apache's) environment contains the MONO_IOMAP variable set to all:



If you're using mod_mono, put the following line in your virtual host config file:

MonoSetEnv MONO_IOMAP=all


Knowing about this would have saved me a good couple of hours on the BlogEngine.NET port!

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.