Castle Project & MonoRail concerns

This article is very out of date.

I really want to like MonoRail but I find it difficult to feel the love no matter how much I desire Rails-like features without the scalability issues and unusual syntax/learning curve of Ruby.

Here’s my list of concerns:

Slow release cycle

The current release is 1.0 RC2 which was released November 1, 2006. That’s some 10 months ago and yet we have no RC3 or final release.

Part of the hold-up seems to be trying work out what to include and exclude, which brings me onto my next point…

Abandoning convention over configuration?

One guiding principle behind Ruby on Rails is Convention over Configuration. This means that instead of allowing you to configure everything to the nth degree a single ‘conventional’ approach is taken..

This results in an gentler learning curve with less to configure and is generally part of KISS.

The Castle Project’s take on this philosophy is a little off by providing you with a combination of view engines and IoC interfaces to chose from.

In the case of view engines neither NVelocity or Brail support C# or VB.NET which does mean you need to learn another language for writing your views and loose syntax highlighting and IntelliSense in the process.

If I was prepared to accept all that I might as well switch to Ruby on Rails.

The WebForms view engine supports C# but has a number of limitations and uses what I was trying to get away from in the first place (WebForms).

Ken Egozi has come up with a C# based view engine that avoids WebForms confusingly named AspView.

With Inversion of Control whether you use the Micro-Kernel directly or the Windsor Container wrapper is up to you and I hope you figure out which to use better than I did.

Castle Project web site

Looks good however needs better maintenance/management:

  • Wiki contains spam (FAQ, Tutorial, Tips and Tricks etc.)
  • Samples download returns a 404 not found
  • Enabling Inversion of Control is an empty stub yet is linked from the main intro page

I couldn’t find anything about how navigation/site maps are managed.

Going forward

Castle Project say their projects are independent and they should consider breaking them into separate downloads with individual release cycles to keep the pieces moving independently and competitively.

MVC alternatives

Microsoft are working on an MVC engine for ASP.NET themselves. Whilst Microsoft’s track record with user interface tool kits is less than spectacular the recent work with LINQ and knowing that both Scott Guthrie and now Phil Haack are on the team inspires more confidence.

Until they release a CTP and a timetable however this can’t be seriously considered especially for projects that need to start soon. I’m hoping we’ll see a similar cycle to the AJAX and Control Adapters where early access & final versions were available that hooked in to currently shipping versions of .NET and Visual Studio so that we’re not waiting for .NET 4.0.

RC3 was released the following day. Check out the contents or download it.


3 responses

  1. Avatar for Dan

    I’ve worked with AspView for some weeks and it works okay, and you don’t need to learn another language. My reasons to choose AspView were the same as you expose here. And about MonoRail, the web looks horrible but the documentation at least for the basic tasks is not so bad. You only have to worry about deriving from Controller, the view engine ( AspView is very similar to webforms without server controls ) and how to communicate between them. Believe me than in 1 hour you can have a decent project running in your machine. But MonoRail is VERY flexible, so you then have FormHelpers, automatic mapping of Http values to your business objects, active record with NHibernate, intercepting filters, IoC, Javascript abstractions and so on. Avoid that until you understand the basics. Anyway, people think MonoRail is the unique alternative to WebForms, but you can build websites with plain CLR objects without any problem.

    Dan – September 19th, 2007
  2. Avatar for Simone Busoli

    “Anyway, people think MonoRail is the unique alternative to WebForms, but you can build websites with plain CLR objects without any problem.” Sure, with HttpHandlers?

    Simone Busoli September 22nd, 2007
  3. Avatar for Keeran

    Rails is no longer lacking in the code-completion department: A very promising beta - I just hope they keep momentum going. Nice look with the site btw! :)

    Keeran September 23rd, 2007