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 WebForm 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 MicroKernel 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.
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.
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.