Skip navigation.

New Approach to Usability: Annoy UsersAll recent postsError Conditions and Little Typos

The Easiest Thing to Do Should Be the Right Thing to Do

If you haven’t read Michael Nygard’s book Release It!, you absolutely need to! It’s heavy on the infrastructure side of things, which isn’t my strength, but it’s an eye-opener to a lot of real-world issues I never considered. It’s also just fun to read.

Michael’s recent blog post caught my attention:

“Normal attrition means that the largest population of developers will always be the youngest and least experienced. This is not a training problem: in the post-commoditization world, the majority of code will always be written by undertrained, least-cost coders. That means we need platforms where the easiest thing to do is also the right thing to do.”

I fully agree with his statement that the easiest thing to do should be the right thing to do. The reason I’m growing so frustrated with Microsoft is that they do just the opposite.

ASP.NET AJAX (read UpdatePanel) is the easy thing to do, but it’s also the wrong thing to do from the standpoint of performance and resource hogging.

LINQ to SQL is the easy thing to do, but also the wrong thing to do because it’s meant for the RAD crowd. I often hear the misleading assertion that what the designer surface gives you, once you drag tables on it, is your domain model (which is incorrect). At the same time, the Entity Framework project has been on the ropes for god knows how long.

The Enterprise Library creates an illusion of easily applied building blocks, but it’s a horrible monstrosity I prefer not to even touch anymore. EntLib is definitely not “the right thing to do.”

Frameworks need to do the right thing out-of-the-box, not pander to the incompetent crowd.

Comments

Comment permalink 1 Speednet |
Right on!

I recently took a stab at Linq to SQL, but bailed after working with it for a few days. I really love the Linq extensions to the language, but the Linq to SQL model falls short, and I feel like some of it is written for noobs.

One of the biggest failings for me was the fact that Linq to SQL is unable to re-propogate changes from the SQL Server database to the model in VS2008. What data viable model model out there never has changes? Unless you are hamstrung by an unflinching DBA holding the keys to the castle, you're going to make changes, and there is no way to make those changes flow into your Linq to SQL model unless you drop and re-create whatever changed.

From what I understand, the new entity framework will allow changes to be incorporated in the model, so that fixes one of the huge problems with Linq to SQL.

I really hope they offer "lean and mean" ways of using the framework for those times when you want very quick, straightforward access. If those kinds of options will exist, I will be the framework's biggest fan.

I hate when frameworks are built upon context after context, as if every project has the complexity of running the stock exchange. Most databases to support web sites and applications are small- to medium-sized affairs, and each layer between the UI and the database means complexity for the coder.

I looked at the Enterprise Library also, and came to the same conclusion as you. It's a monstrosity that is perfect for enormous projects.

I don't envy Microsoft in trying to find the right balance, but this is what can happen when trying to find one solution to fit all scenarios.
Comment permalink 2 Damir |
That's why I've fallen in love with Ruby on Rails when I first tried it! Using MVC just feels as a right thing to do and it IS easy.

When I switched back to ASP.NET for a recent project I decided to give ASP.NET MVC a shot. As I didn't do any .NET 3.5 development until that moment, I believed that using LINQ to SQL should be a way to go... Just as Speednet, I got irritated by the lack of a mechanism to automatically refresh the model from the database, so I switched to Castle ActiveRecord.

I found ASP.NET MVC pretty neat, but I have my fears. I don't believe that much of drag-and-drop crowd will find it easy. The fact that web controls aren't supported (or even if they were, they certainly wouldn't be "The right way"), will almost certainly get it disregarded from great deal of projects.

Emails and Notifications

Would you like to be notified when somebody responds to this post?  Would you like to have these comments emailed to you?

TrackBacks

Sorry, TrackBacks are not allowed.

Submit your comment

Please enter only text since all HTML tags except hyperlinks will be stripped. Hyperlinks will become live links. Any comments with flaming or offensive language will be deleted. Be courteous to other posters. Thank you.

Your name (required):
Your email (optional):
Your site's URL (optional):
Enter this number
Type in the number above:
Comment (required):