Images in this post missing? We recently lost them in a site migration. We're working to restore these as you read this. Should you need an image in an emergency, please contact us at
My Dad Can Beat Up Your Dad

wrestlers I was waiting for the MVC versus WebForms smack downs to begin :)

Who wins my personal choice has been validated more by the people I serve than by my own opinions. I am intimately familiar with the Page Lifecycle and the nuances you have to be considering when working with WebForms, especially since I turn ViewState OFF....that alone gets you swimming in the quicksand of events and you better be able to figure why your data isn't appearing or your event didn't fire after an xChanged event.

I was okay with dealing with workarounds for WebForms until my project became extremely AJAX-ified in requirements. This new layer of complexity exponentially increased the amount of time I was spending on view-related problems...not business problems like I should be.

The feedback loop between me and the people relying on me grew too much and in some cases broke entirely as I wrapped my head around UpdatePanel voodoo and wondered by the PHP and Ruby guys were doing things so simply. To me, this warranted an experiment with Monorail, an MVC implementation, to see if perhaps I could close that feedback loop.

The first iteration allowed me to demo with my SME and as he brainstormed I was able to real-time make even complex changes in UI behaviors. The simplicity of Monorail allowed me to serve my customer without having me scratch my head and wonder why my unordered list doesn't have any data in it then telling him I have to go and recompile a ton of code to make it happen. Instead, he got excited about how rapidly I could custom fit the app to his desires.

I haven't even had time to look at MS MVC and really I am not sure I need to for the foreseeable future. Monorail has let me alter significant chunks of how it does it's work and let's me isolate stories into code that is meaningful and maintainable. Through the use of IoC-able DynamicActions I have been able to create more maintainable action hierarchies when I need to, leaving my controllers with virtually nothing in them. On a closed source product I am not sure how well I could alter such behavior.

It took time to grok Brail and how MR does its magic so that I could extend it on my whim, but mostly I discovered that what I was learning was web development. When something wasn't working I usually found out that it was because of something I need to know that nothing to do with the framework. The time spent learning about how http works and so on is transferable, whereas I found little use for <asp:BadHtml runat='server'> outside of the ASP.NET community. A side benefit has been spending time in the code bases of Monorail, RhinoCommons,etc. and looking at code and design by developers better than me. When I was learning to play drums, my teacher told me to always play with musicians better than you...that's the only way you grow. I feel the same way about development.

WebForms guys will comment and say 'you don't understand WebForms'.  Neither do my customers, but they do understand that I am delivering product faster to their machines and that is what I choose to use as the driver of my decision-making. If WebForms were to somehow change dramatically and become the simpler model that let me do what I want to do without getting in my way, then I would easily hop back to that model. But I don't see that happening anytime soon.

Posted 01-30-2008 11:26 AM by Michael Nichols



Bill Pierce wrote re: My Dad Can Beat Up Your Dad
on 01-30-2008 4:13 PM

Hey Mike,

Thanks for stepping in and mediating the smack down before things get too ugly.

But seriously, my dad could totally beat up your dad.


Rob Eisenberg wrote re: My Dad Can Beat Up Your Dad
on 01-30-2008 4:23 PM

You hit the nail on the head.

jim wrote re: My Dad Can Beat Up Your Dad
on 06-11-2009 7:50 AM

my dad is the leader of the english mafia have that rob

About The CodeBetter.Com Blog Network
CodeBetter.Com FAQ

Our Mission

Advertisers should contact Brendan

Google Reader or Homepage Latest Items
Add to My Yahoo!
Subscribe with Bloglines
Subscribe in NewsGator Online
Subscribe with myFeedster
Add to My AOL
Furl Latest Items
Subscribe in Rojo

Member Projects
DimeCasts.Net - Derik Whittaker

Friends of
Red-Gate Tools For SQL and .NET


SmartInspect .NET Logging
NGEDIT: ViEmu and Codekana
NHibernate Profiler
Balsamiq Mockups
JetBrains - ReSharper
Web Sequence Diagrams
Ducksboard<-- NEW Friend!


Site Copyright © 2007 CodeBetter.Com
Content Copyright Individual Bloggers


Community Server (Commercial Edition)