I've been struggling lately with some pretty basic concepts. Well, actually it's just one concept ' what is good software' Specifically (since it's the area that I'm most interested in), what is the definition of a good ASP.Net web application'
When I first started coding ASP pages in the late 90's, I just thought that it was cool to get a web site up and running. I learned how to use includes to maximize my reuse and I thought that I was pretty slick. When .Net showed up, the bar was lowered and it was pretty easy for anybody to create a web site that was much slicker than what I could do in ASP. What's worse is that they could do it faster too.
I've started to make the jump from being an ASP hack into more of a well-rounded OO developer in ASP.Net. When I say 'hack', I refer to a developer that is usually self-taught and knows enough to get something done. I have to give some respect to this term because I would apply it to at least 90% of the developers that I've interviewed or worked with over the past 7 years.
As part of my attempts to leave this hack world, I've been reading. And reading. And reading some more. Jeremy Miller, Scott Bellware, Jeffrey Palermo, Jean-Paul Boodhoo, Cory Foy and Ron Jeffries make up the bulk of this.
I was lucky enough to chat with Jean-Paul Boodhoo after the EDMUG launch event last month. During that chat, I asked him about some of the RAD features in .Net 2.0. Specifically, I wanted to know whether he used the ObjectDataSource control. He emphatically shook his head and said that he wouldn't touch any of the 'magical' controls that Microsoft has introduced and instead relies on his own tried and true processes.
That leads me to my question from the top of this post ' what is a good ASP.Net web application' If I use ObjectDataSource am I creating a bad application' I know people who use ObjectDataSources and swear by them because they're easy to use and they just work. But Jean-Paul is pretty successful without using these RAD controls.
I'm starting to look at this question from a different perspective ' am I building this ASP.Net web application for maintainability' If so, I will agree with Jean-Paul and I'll adopt his approach. It just so happens that I work on a software product so maintainability is a strong driver of what we do. But if I worked in a project shop (i.e. most consulting businesses) and I didn't have to maintain the software, I would probably lean towards the RAD controls that Microsoft provides because they're quick and easy to use even though they might be difficult to test or debug.