Knock::on_wood

unclear thoughts on software development

Articles written in March 2006

Tuesday, March 14, 2006

Gridview's ObjectDataSource Support

I was really excited when I first caught wind of the the ObjectDataSource (ODS) control for ASP.NET. Finally Microsoft is helping those that want to implement a true business layer and bind it’s results to the UI.

Many of the “features” simply don’t work. I was unable to use the delete functionality. The GridView would not pass the proper data to the ODS. I got this little treat yesterday when I tried to use the sorting feature.

I continue to be dumbfounded.

Monday, March 13, 2006

RAD Kills??

Jeffrey Palermo, in a recent blog post makes the claim that RAD Kills. I feel his pain, especially on the ASP.NET platform.

RAD is quick and satisfies in the short term. Sometimes it’s amazing how many features can be created just by some dragging and dropping. You could whip out an entire system in a week. It’s almost too good to be true.

His point is well taken, but I think he’s aiming his gun at the wrong guy. It’s Microsoft’s implementation of RAD that is the problem, not RAD itself. Drag-n-drop, and numerous other features in the MS bag of tricks, encourage a blissful ignorance about what is going on beneath the covers. Even Bill himself stated at PDC 2005 that MS’s goal is to have developers “write less code”. What he means is that they will hide more code from you, so you don’t have to (and oftern can’t) deal with the implementation details. When you do need to get to a little bit lower level, you can’t because the code is auto-magically generated on the fly. I digress…

The implementation is the issue. Anyone who reads this blog knows that I have been infatuated with Rails for the past 9 months or so. Rails, in comparison, provides a very rapid development experience, but without the “dumbing down” effect. It answers the RAD call with better, cleaner, more effective code that encourages best practices, intrinsic object orientation, sustainable productivity, and multiple degrees of testing. The Rails core team actually make it difficult to add bad code to the system, all the while giving a RAD experience.

Some may argue that Rails generates code and has ActiveRecord and others that hide the implementation of common features. Absolutely! That one of the things that makes it a great framework. How is that different from Microsoft’s WYSIWYG? It uses best practices, adheres to web standards, and gives you full access to the underlying code. This allows to you properly extend the generated code to meet the applications needs.

RAD is quick, but it incurs huge technical debt. RAD is like consumer credit. You can have it now, but will you really have time to clean it up later?

Miicrosoft is among the ranks of credit card and car title loan companies that paint a picture of freedom and flexiblility by using their product, yet leave their consumer’s frustrated, in debt and with many unrealized promises.

Unfortunately, Microsoft’s core purpose is not to make us better developers. It is simply to sell another copy of Windows, Office, Visual Studio or whatever. Hence, there is no conflict for them when adding a tool to help someone accomplish “the end” (i.e. an application) without understanding the means to that end.

There a delicate balance to be maintained between RAD and quality. Though one must decide what is primary, they can co-exist and even reinforce one another.

Friday, March 10, 2006

ASP.NET 2.0, XHTML, and Javascript

I never cease to be amazed by good ole’ MS. At work we’ve been going through the pain of moving from ASP.NET 1.1 to 2.0. They claim that ASP.NET 2.0 is at least XHTML transitional compliant, but beware!

If, in an attempt to be an efficient, compliant coder, you add a javascript include to the <HEAD> tag using XHTML formatting, form buttons on your page will no longer work.
<script type="text/javascript" src="/search/search.js"/>
That’s right, no post back occurs. You can click and click but the page never gets submitted. Low and behold, once you change it back to the old school method, things work again.
<script type="text/javascript" src="/search/search.js"></script>
Go figure.

Wednesday, March 01, 2006

Rails 1.1 Preview

I continue to be dumbfounded by the intelligence, ingenuity, and speed of the Rails core team. They have been busy at work. Here’s a comprehensive list of the new features found in the upcoming Rails 1.1 release.

[And I still haven’t found the time to write up reviews on my favorite 1.0 features!]

Powered by Mephisto. Theme modified and ported by Ryan Wood, based on the WordPress theme minima.