The beta period of .NET is now in the past and we are looking squarely at a vast number of production applications and web sites the world over that will be using this exciting new technology. Like many other developers, I've been busily creating both production and test applications for over a year now using the earlier beta versions of the .NET platform. With an eye to the future of my own personal development strategies, I've taken some time to review what I've produced over the past year and how much I've learned.
Quite coincidentally, I also decided to re-read parts of Alan Cooper's "The Inmates are Running the Asylum" at the same time I was starting my review. Not surprisingly, I found that with all of the exciting new tools, techniques and development strategies of .NET now available to me, I've become an even more powerful programmer, and a much less thoughtful designer - despite what it says on my business cards.
This article is clearly not the usual tips-n-tricks I enjoy writing about. In fact, it is most definitely a cathartic work for me. I hope these few observations might help someone out there, who also considers themselves to be a programmer/designer, to concentrate a little more on the latter, and let the former just flow. At the very least, I hope someone who hasn't read Alan Cooper picks up his book, "The Inmates Are Running the Asylum".
The Passionate Programmer
Knowing that most of my audience is composed of software developers, I don't have to explain the absolute love affair we have with our tools and the processes by which we create our software products. Alan Cooper describes the mind-set of the programmer with striking realism, particularly the differences between programmers, interaction designers and software users. From the time I started programming until the present, I've always loved the challenges, changes and ever-evolving paradigms we see in computer programming. I started way back when the federal government taught me to program an RCA/301 rather than fire an M16 in a far-off jungle. From that time until now, I've never before seen a software development environment that represents a forward leap quite the magnitude of .NET. This is just my opinion; but, that stated, I hope you understand how I feel about programming, and especially .NET.
For many like myself, with years of programming experience, we start to fancy ourselves more as computer-renaissance folks with the ability to cover broad areas of expertise that encompass all aspects of both programming and design. While in many cases we may have more to offer than an inexperienced designer, or at least a designer working outside of their domain, we are still, at heart, programmers to the end. So, knowing that I'm a programmer at heart, it is always with guarded skepticism that I review my own designs.
More Toys, Please
While I've worked a lot on classic ASP projects in the past, I've always preferred to stay at least 1-tier away from the presentation layer writing COM in my old familiar language. For years I regretted my self-imposed banishment from this aspect of web applications. But, oh how I love to write those Windows applications with C++ and the MFC. All of those user interface objects, custom controls, the owner-draw controls, the message loop -- I understood it all and I loved it. If only these two worlds could come together.
For me, ASP.NET was the answer I'd been seeking. Suddenly I could not only use my old familiar tools to develop web applications, but now C# brought new blood and a fresh look to my language. All of the HTML controls could now become my own custom controls. Everything I try with .NET is easier, faster, and makes me stronger and more powerful. And as if the DataGrid wasn't enough, I then found the IE Web Controls. Finally, my beloved TreeView Control could take its place of prominence on my web pages. Like a lost, forgotten lover, my affair with this new technology was ablaze.
Using the Power
With several small ASP.NET applications under my belt, I needed to use all of my new-found powers in production. I had a client ready for a big change, so I converted their site to ASP.NET with considerable ease. They liked the results, and the back-end processes went much smoother now. Slowly I worked some of my new-found toys into their site. Finally it was time, they needed a TreeView Control - they just didn't know it yet.
The client had several writers producing basic HTML articles that appeared regularly on the site. They were looking for an automatic way of showing the updated table of contents and allow users some basic navigation around the articles. It was so clear to me. The articles already appeared in their own folders on the server. The folders were already arranged in a hierarchy that represented a good outline of the content. All I needed was a simple TreeView that showed whatever folders and HTML files appeared in some virtual directory on the site. And, I told them, "it won't cost much".
Well, at Least it Didn't Cost too Much
I was so impressed by the ease with which I implemented this solution, it was the basis for my very first article on AspAlliance, TreeView - Programming an Explorer-style Site View. It was everything I wanted. It showed the user exactly what was stored on the server's disk. As you may have already guessed, this isn't exactly the problem the client was trying to solve. My solution didn't help one iota with the problems that users had trying to find the content they were looking for. Is this a classic Cooper-esque example? Yes, this inmate was in full control of the asylum on that day.
If you have the luxury of just coding, or you are continually handed complete specifications that include full interaction designs, then just laugh a little. If you're in the same real-world as I am, and you continually have to cross back and forth over that boundary that separates programming and design, then keep this it mind: Just as the Bionic Man, as programmers we have been rebuilt. We are now stronger, faster, and more powerful than ever before. All the more reason to know who you are and what you do well - and to look long and hard at your design work.
The 3rd party gizmos from places like the Control Gallery are going to proliferate very rapidly. We'll have more whiz-bang gadgets and nifty tools than ever before to throw on a web site. When you tie that together with the ease of implementing back-end processes with ASP.NET, an area of web application development formerly in the domain of other specialists, it's easy to fall in love with the process of finding a home for all of these new toys. Now that our love affair with the technology has been renewed, let us not lose sight of our users' needs.
Use the Force, Luke - wisely.
Send your comments and let me know what you think of this article: firstname.lastname@example.org
Steve Sharrock - www.AspAlliance.com/shark / www.SharkCode.com