Monday, October 15, 2007

MVC versus MonoRail and the Corporate Giant

A lot of buzz is going around about the MVC framework coming out of Microsoft.  I posted about how cool it was and got a couple of comments that basically said: 

They just copied MonoRail.

Well, yes.  In a sense they did.  And Rails.  And Django.  And another one that The Gu mentioned that I hadn’t heard of.  Is that a bad thing?  If you’re using MonoRail today, then you should continue to use it.  Unless you like some of the different syntax or ability to mock the core ASP.NET Runtime objects.

The reason I think that ASP.NET MVC is so exciting and important is because I often come to clients that refuse to (or make it very difficult) to use non-MSFT produced thingies.  Can I use Resharper?  No, we gave you Visual Studio.  Can I use NHibernate?  No we use Enterprise Library.  Can I use NAnt, StructureMap, MonoRail, SubSonic?  Often times the answer is no.  Recently I’ve had experience where our team dumped eWorldUI in favor of ASP.NET Ajax Control Toolkit.  The reason?  Easier to get approved since it has Microsoft’s name attached to it.  It doesn’t matter that eWorldUI is free and easy to implement.  It matters because somebody sees eworldui.dll in a bin folder somewhere and everyone wants to know where it came from.

When you work in an organization with 10,000 employees that has widely adopted Microsoft as a technology platform, trying to get something approved like MonoRail is like trying to convince a Catholic priest that he’s really a MormonOk so that doesn’t really make much sense, but what I’m getting across is that it’s hard.

Some of my readers have already gone down this route, and succeeded.  And I commend you.  But I have yet to get corporate adoption of something like that.  Maybe it’s my inability to convince people of the benefits, or sway their concerns about supportability and such.  Or maybe I just work with very beligerant clients. 

Some of my colleagues probably read this blog, so just so you know I’m not talking about you… I’m talking about the other guy. .

Back to my original argument.  Since this is a new framework coming out of Microsoft, I will not have to fight to get it adopted.  I can go in and say “this is how it’s done for real applications” and have Microsoft guidance to back me up.  Hell, some clients might even ask me for it!  That’ll be interesting.  I can’t imagine what it would be like for a client to come up to me and say “hey I was thinking, maybe we should use NHibernate for this…”

Thinking about that makes me kind of sad that it hasn’t happened before.  Am I just unlucky?  Am I just not skilled at convincing?  Or is this commonplace in the industry?

System.Web.MVC will reach an audience that MonoRail doesn’t:  The corporate giant who already swallowed the pill and will do anything that Microsoft pushes, good or bad.  And a lot of consultants work firmly in this space.

Remortgage - Car Insurance - Savings Accounts - Secured Loans