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.

Monday, October 15, 2007 8:50:50 AM (Central Standard Time, UTC-06:00)
We had the "Are we going to the Enterprise Library?" conversation at the beginning of my current project. When I told the client that I wasn't planning on using it, I fully expected to get that "Microft good, you crazy" stare, but thankfully he didn't fight me on it. Same with Windsor. I keep waiting for the dreaded "Does MS have something that does this?" sneak attack but so far so good. If I had to tell the client "Well kinda, but Windsor is better", I have no doubt he would think I was crazy.
Monday, October 15, 2007 9:10:12 AM (Central Standard Time, UTC-06:00)
Well said. This is exactly the situation that I face a lot of the time. To paraphrase an old saying "Nobody got fired for buying Microsoft.".
Monday, October 15, 2007 10:29:41 AM (Central Standard Time, UTC-06:00)
JP: The sneak attack route works well until someone realizes you're using software that they don't know the source of, the legalities, of, and the future of... and it's probably worse that you don't have documentation on the answers to the above points.

That will work in some places, but is dangerous in others.

Tom: it was good meeting you in Austin.

Monday, October 15, 2007 2:20:07 PM (Central Standard Time, UTC-06:00)
Back in my good-ol consulting days, I was able to convince my customer (a really, really big insurance company) to go with NHibernate. I was feeling really good about myself because I had achieved operational efficiencies and cut costs all at the same time). I later learned that my customer had approached JBoss (before the Red Hat acquisition) and demanded that JBoss charge them money (a BUNCH of money) for a support contract on NHibernate.

To reiterate Ben's points, IT organizations in large companies (painting with a large brush here) are not interested in elegant (sometimes not even working) software. They are interested in risk mitigation. So whether or not you think MS MVC is an original idea, I see no escape from seeing it as a good idea - if nothing else, it reduces the number of battles you will face with your customers by one.
Tuesday, October 16, 2007 8:02:01 AM (Central Standard Time, UTC-06:00)
Howard,

I tend to agree with you. I spent more time discussing capitalization of costs, SOX compliance, and HIPAA then I spent getting buy off to use things like DROOLS, NHibernate, or Castle. I have found that most of upper management is indeed more concerned about controlling risk then detailed technological choices -- that is until one of those technical choices has a price tag associated with it.

And by price tag, I mean up front cost and not the overall cost of using/implementing/supporting said technology.
Tuesday, October 16, 2007 11:00:35 AM (Central Standard Time, UTC-06:00)
It might be worthwhile in a situation such as that to approach someone higher up than yourself. As a contractor, I recently approached EA on a few issues that I felt needed to be addressed at my client. After shooting the breeze and chatting about design, I was a bit shocked to learn he was a huge O/RM fan (particularly NHibernate). In my particular group, getting buy in for NHibernate wasn't an issue, but going forward (at other clients) I will be approaching the technical higherups when I run into problems with buy-in. I may not be able to get buy-in for NHibernate down the road, but one smart guy in EA is going to be well connected politically. If you can find him, use him as an ally.
Thursday, October 18, 2007 9:15:56 AM (Central Standard Time, UTC-06:00)
An Agilist that is pratical rather than dogmatic. What a breath of fresh air. Thank you.
Comments are closed.
Loan - Mortgage Calculator - Homeowner Loans - United Specialties