Home SubSonic MVC-Storefront

Ramble: ASP.NET MVC Is A Geek Chisel

Scott Hanselman and I were on the phone the other day talking about Community stuff surrounding MVC and certain ideas we had. The next thing ya know we’re waving our phone arms and waxxing poetic as we try to phrase what we think the “MVC Story” is. We each have our thoughts and Scott wrote his up here. I thought I’d add mine as well because, overall, I think it adds to the ongoing discussion.

To be clear: these are all my opinions and ScottGu and team worked up the MVC thing way before I cam on the scene

Update: The story that’s about to follow is sort of told out of context – I wrote a follow-up to further explain…

My Dinner With Hanselman
I’ve read Scott’s blog for years and watched him do his thing many times at conferences over the years – the guy is a riot and a never-ending pastiche of quips, profound observations, critical insights, anecdote, and tangential distraction. You literally can’t be in the same room (no matter the size, no matter the people) where Scott doesn’t take control of the conversation at all levels, and then entertain everyone in the room with some seriously messed up smarts.

I hung out with him, Phil Haack, Jay Flowers, Jon Galloway, and a few others at DevConnections in Vegas this last year and Scott got into a bit of a debate with one of the guys in the room. It was clear the guy Scott was talking to (let’s call him a “Red Shirt”) was just out of his league, but he was doing his best to hold his own in this debate (I think it was about TDD).

The conversation started to get a little edgy, and Scott decided he wanted to move on to other topics, so he rapid-fired all the reasons why he thought the way he did about the thing he was talking about. Short, concise, right between the thick, black-framed, geek-spectacled eyes. It was overwhelming. A complete savant spasm that no one was ready for. It was a clear statement: “I’ve had fun, I’m done”.

The only response the guy could give was…. “good points – I spose I never thought of [subject] that way. Umm… yah this is good stuff.”

Scott then lays out, what to me, is pure Hanselman:

That’s Comp Sci Baby

The room erupted with spilled drinks and laughter, tears and people holding their sides from laughing. It was at that time that I decided never to debate Scott in anything, ever. I might be right, everyone in the room might be in agreement with me, but Scott would still eat my lunch then throw the bag in my face :) .

I’ve gotten to know Scott better while working at Microsoft and I talk to him reasonably often on what we’re doing. Getting more than two minutes of his time in conversation is truly a feat, and so far I’ve done it 3 times (woot!).

And For Our Main Course: ASP.NET MVC
Our conversation was pretty academic at first – focusing on perceptions of just what MVC is. It quickly devolved into office quotes, weird analogies, and metaphor as we discussed what we think is the core of what MVC offers to current ASP.NET developers.

The question has come up a lot (this is from Rich Bushnell’s recent post):

I don’t need a complete new system for building pages. It just took me 3 years to learn ASP.Net as it is now. I don’t want to throw it all away because it’s not cool any more. And I don’t think my customers want to do that neither

<snip>

Why not make ASP.Net better? Why not take the stuff in Patterns and Practices and make it simpler to understand…

<snip>

The real reason I’m peed off, is that I’m having to invent my own guidance, while MS seems to be messing about doing other things. That’s not good for the customers, as they get new ideas from everyone, and no idea what is right or wrong.

So guys, please. Why not stop what we’re doing, take a step back, consolidate, learn from each other, and build something better than ever.

You can tell that Richard is frustrated here :) . It’s easily understood – there’s a lot coming out of Redmond these days and one thing that’s lacking is what I like to call “The Story” – the Why, How, and When. In short – What’s the Value of MVC?

Would You Like Some Hedge With That Opinion?
Before I go on – I want to reiterate that these are mostly my musings. No one has sat down and said “this is why we’re building MVC”. It, quite literally, JUST IS. I offer my thoughts here as to why I like it – and feel free to disagree. I think, if you take nothing else away from this post, please know this:

ASP.NET MVC is an option for you. There are good reasons to use it, but it might not fit with what you and your company are doing. If that’s the case – keep moving on the ASP.NET!

A Drum, a Guitar, and a Rock Star Voice
That’s how people describe one of my favorite bands – The White Stripes. They were one of a group of bands that hit back in 2003 with the “Garage Sound” – unproduced, no fluff, no electronics – just raw four-track wundersound full of energy. Other bands that followed in this scene were The Hives, The Vines, and The Strokes and this movement was heralded as “The Second Coming” of Rock

That might have been a little dramatic, but at the same time there is a pretty nice response when your strip away the abstracted fluff and get closer to the core.

Scott likened this to “ASP.NET Unplugged” and I think that’s apt as well – you get to the core of what it means to develop a web application: slinging HTML and Javascript.

Talking to Scott one-on-one can be … interesting to be sure (but always entertaining) – in this case it was very enlightening as we ping-ponged our ideas and (what I call) stair-stepped our way to a pretty solid story – ASP.NET MVC removes a lot of abstraction (Web Forms) which on one can very much help you, but on the other hand (if you’re an HTML specialist) can be a big help.

Chiseling a Digital David
While I was in Redmond last week I discussed this very thing (”the story” behind MVC and why it’s appealing) close to 12 times. I kept struggling with analogies and I think I found one that works for me. It might not work for you – but I’m sincerely interested to hear what you have to say in this arena. Believe me – it’s important!

As a developer you build things- just like any contractor building a house, or artist creating a work of art. Often times artists will choose not to use tools that save them time, preferring to build something that they can (literally) work with their hands so they can “feel the art inside the medium”.

In the same way that Big Z showed Cody how to shape a board (”looong, easy strokes”) – many people just want the machinery to get out of their way when building a web site so they can create their HTML how THEY want to, and use javascript and form tags as they see fit.

Some people see this as tedious, repetitive work – others see the process as creationary and artistic. I think they’re both right and I love how ASP, now, supports both.

I was in the conversation Scott referenced in his post about implementing a Repeater in MVC:

We need to come up with a Repeater control for folks using MVC…

We have a Repeater – it’s called a For Loop

I want to share who said that line but I’ll keep it close to my chest since it was said behind a closed door ;) .

What Do You Think?
Part of my gig with Microsoft is soliciting as much community feedback as I can. I tend to believe that ASP.NET MVC allows for much more “hands-on” type of development with extreme control over your UI (HTML/Javascript) that allows you to create some really cool work.

Do you agree with this? If not – what’s the appeal for you? Does it frustrate you to have so many choices and if so – how can we help to provide some guidance?

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • DotNetKicks
  • del.icio.us
  • Technorati
  • TwitThis
  • Reddit
  • Slashdot

Tags: ,