Jeremy D. Miller -- The Shade Tree Developer

Sponsors

The Lounge

Syndication

News

Advertisement

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 imagehelp@codebetter.com
ALT.NET Recap: It's the Values, Stupid!

 

Scott Hanselman got off a good one liner early on the first day.  To paraphrase:  "...is this just the 'I hate the ViewState' so let's have a conference crowd?"  He went on farther to challenge us to have a real meaning and purpose behind ALT.NET.  My answer is to paraphrase Bill Clinton "It's the Values, Stupid!"  Once you boil it all down I see a handful of distinct themes.  I want to efficiently create maintainable code and designs that can last, I want to enjoy my work in software development, and I'm actively looking at ideas and tools originating from outside the .Net sphere.  For the sake of this post, I want to concentrate on the first theme.

In my mind, the high regard for maintainable development effort is what takes ALT.NET farthest from the traditional MSDN way of building software.  The mainstream .Net approach of data aware widgets and visual designers is strictly optimized for the initial write of software and for smaller, simpler data driven applications.  There's a huge range of smaller applications that can be economically built that way, but not the projects that I work on.  Maintainability isn't a luxury when a system is going to change over time, and they all change over time.  Arguably, the system changes as we proceed throughout successive iterations.  I want iteration n to be as or more productive than iteration n -  2 was.  Bad code and bad designs are felt by a sluggishness in later iterations.

So why would the quest for more maintainable code lead us from the MSDN way?  Maintainable code means good design.  Good design arises from the skillful application of design knowledge.  That leads to valuing knowledge like Design Patterns and the design principles from Robert Martin.  For a little too long the .Net community has put too much focus on learning API and framework details and not enough emphasis on design and coding fundamentals.  There is some great material on MSDN online in that regard, but most of what we know to be good design originated somewhere else. 

Maintainable code means testability, and that leads me towards techniques and tools from outside the MSDN way.  Current Microsoft offerings are often disadvantageous for automated testing and Test Driven Development.  In web development I might look at MonoRail for a cleaner separation of concerns.  In WinForms I look outside of Microsoft guidance to use some variant of Model View Presenter or Presentation Model to divide and conquer the various screen responsibilities.  To their credit, Microsoft is improving in this regard with both the new MVC framework and Acropolis.

To recap, I don't think you're evil or incompetent because you use drag n'drop programming or designers or whatever other tool instead of using notepad like "real" developers.  On the flip side, you're not a great developer just because you're using an ORM or an IoC tool.  You're a great developer if you're writing maintainable code as a matter of course.  The tools and design knowledge to create sustainable applications are out there and getting better all the time.  The familiarity with these tools within the .Net community isn't as widespread as it could be, and that's where I'd like ALT.NET to make matters better.


Posted Thu, Oct 11 2007 9:59 PM by Jeremy D. Miller
Filed under:

[Advertisement]

Comments

Vladan Strigo's website - Vladan.Strigo.NET wrote What's all the fuss around ALT.NET?
on Fri, Oct 12 2007 4:37 AM
Daniel Moth wrote re: ALT.NET Recap: It's the Values, Stupid!
on Fri, Oct 12 2007 9:34 AM

Blogging idea for you (if you wish): Define in single post what you mean by "the MSDN way".

You have thrown this statement around a few times so I think I get the idea, but I'd really like to be sure I understand what you mean by it and not have to read between the lines and guess based on the context each time. If this thought occurred to me, no doubt it will have occured to your other readers, but I let you be the judge of that...

Jeremy D. Miller wrote re: ALT.NET Recap: It's the Values, Stupid!
on Fri, Oct 12 2007 9:53 AM

Daniel,

That's definitely not getting it's own blog post.  What I, and other people, call the MSDN way is strictly using the RAD and Data-centric tooling in Visual Studio and .Net.  Exactly the stuff that the average entry level .Net developer is likely to come into contact with.

* DataSet's/TableAdapters/DataReaders

* Stored Procedures, but that doesn't seem to be quite as common.  Still a VB6/COM hangover that pushes people to put business logic in here occasionally

* Data binding and data aware widgets

* Procedural Transaction Script architectures with or without layering

* Using the visual designers to create behavior

Basically, the stuff tha we grew up with.  Efficient and perfectly fine for simpler CRUD screens.  Inefficient and possibly harmful for systems with a great deal of business logic and behavior.

Dave Laribee wrote re: ALT.NET Recap: It's the Values, Stupid!
on Fri, Oct 12 2007 5:51 PM
Jeremy D. Miller wrote re: ALT.NET Recap: It's the Values, Stupid!
on Fri, Oct 12 2007 5:57 PM

Okay, I'm embarrassed David.  I swear I did read that post when you wrote it.

Dave Laribee wrote re: ALT.NET Recap: It's the Values, Stupid!
on Fri, Oct 12 2007 6:18 PM

i just think it's funny, the echosphere and all that. that's why the introducing myself as "diet jeremy miller" joke is supposed to be funny!

Jeremy D. Miller -- The Shade Tree Developer wrote My Official Recap of ALT.NET
on Sun, Oct 14 2007 7:09 PM

It took a week, but I finally got around to finishing my recap of the ALT.NET Open Spaces event from

Jeremy D. Miller -- The Shade Tree Developer wrote My Official ALT.NET Recap
on Sun, Oct 14 2007 8:41 PM

It took a week, but I finally got around to finishing my recap of the ALT.NET Open Spaces event from

Add a Comment

(required)  
(optional)
(required)  
Remember Me?