Thursday, July 13, 2006
Tiers are good, right?I did it again, spent the better part of a day adding ... a checkbox to an existing application. I know what you're thinking, "This must have been one important checkbox!. The Launching of the space shuttle must have hinged on this checkbox!" Well, no, it didn't really DO much of anything, it just sort of let people check it and uncheck it and limited what they saw in a couple of grids.
No I'll be the first to admit that I'm not the world's fatstest programmer, but this is even slow for me. What just happened?, I asked myself. Unfortunately, I ran into a "very well designed application". Naturally, I needed to add the column to the SQL Server database. No problem, 15 minutes (counting finding the correct db server and getting approproate access). Next modify the stored procedures the application uses to access the database. Not so bad, 20 minutes looking at the huge list of sprocs and determining which ones might be affected, followed by about 60 minutes of changes and testing. Some of the sprocs needed new parameters because they might now limit what they return to only records that have this box checked. All of the sprocs needed to have the new column added to the SQL statements and one sproc needed logic changes to determine if it should update the new column. Next, modify the business objects to handle the new column. Minmal changes here, except for dealing with the new parameters in several places. The business objects just handle conversion between the back end database and local DataSets for the most part. 40 minutes. Next, the business logic layer. Sort of the ORM layer where the business object's DataSets are translated into .NET objects, where rules are enforced, etc. The brains of the operation. Another 40 minutes.
Finally! I can make the changes in my application to use my new boolean value! I am psyched at this point, the tension is mounting... OK, it's an ASP.NET 1.1 application and the checkbox is supposed to live in a grid and only be available if the logged in user has sufficient security credentials. DataGrids in 1.1 don't really support checkboxes, so you either have to program it or add a "Template Column". I go with the Template column, 90 minutes. Dealing with the eccentricities of the DataGrid costs me another couple of hours and I have to bother a couple of fellow programmers to find the work-around. Now, to remove the column if the user doesn't have sufficient security, OK, so you can' t do that, can I at least make it invisible? OK, done, another 40 minutes.
Now alpha testing, about an hour, static analysis with FxCop, another 15 minutes, updating the NUnit test code and running the tests, another 20 minutes. Time to post to the testing server. Did I mention this is ASP.NET 1.1? Another 30 minutes...
What happened?!?!? Two things happened 1) ASP.NET 1.1 and 2) 5 layers of application
I won't go into my feelings on web based applications today. 5 Layers of application?!?!? Awesome! Just the way it's supposed to be done. Object oriented, black box, tiered, secure, well designed! Unfortunately, my check box made it necessary to modify all 5 layers that day. 3 distinctly different skill sets were needed. The resulting testing was a bear.
I've got to go now, I have another checkbox to add... <s>
Posted @ 9:37 AM by Yeager, Mike E (myeager@eps-software.com) - Comments
Tuesday, July 11, 2006
Sql Server 2005 Beta Relief
Who didn't install the VS2005 beta? We all did. Unfortunately, getting rid of the beta and upgrading to the RTM software doesn't always go as flawlessly as I'd like. I had remnants of this that caused Visual Studio to not work as well as it should. Most recently, when I tried to view a class diagram, I realized that this didn't work on my machine. I got this message: "The Class Diagram Service Failed To Load". I found this post from Aaron Stebner on the MSDN forums, including a utility to find remnants left over from beta installs of VS2005 and get rid of them. After running the utility, then repairing my installation, it worked!
The items that you list, especially the 2 assemblies with no version information, are known problems in VS 2005 beta 2. Those files will be left behind if beta 2 is uninstalled in the incorrect order. You can use the cleanup tool I have posted at http://astebner.sts.winisp.net/Tools/ttool.zip to fix these issues and update the unversioned assemblies with versioned ones.
I've also described the issue with those 2 unversioned assemblies at http://blogs.msdn.com/astebner/archive/2005/08/27/457248.aspx.
Hope this helps....