Archives / 2003 / September
  • Know where the bottlenecks are........

    Do some analysis of your application before diving in head first and say “I can fix this.”  Do you really need to modify your sql indexes when the problem is that you are starting up over 300 COM+ objects for one request?

    Another note, SQL Indexes are not the answer to everything and every performance problem.  Just putting in more indexes will cause performance problems, and possibily some stability problems on the database server (yes I have seen a database crash due to bad sql indexing).  11 random indexes can be much worse than 4 well done indexes.  Analyze your app.  Know what you need to do and do it. 


  • For the database challenged amongst us.........

    Do not pull all the records back from a table or view and then do an ADO Filter operation.  This is typically a bad thing, causes too much network traffic, and is a general inefficient use of resources.  Lets not say “select * from table.”  Let's do at least a “select * from table where ........”  You could also do a “select col1, col2, col3, ... from table where ......” which would be even better.  Don't send too much info across the wire.  Don't use too many resources.  If you have some database experts in your development group, look into using stored procedures.  Oh the pain......Oh the agony.....


  • Have you ever done 508 Accessibilty testing?

    When you use standard controls and form elements, the tools that allow disabled people to access your application can work fairly well.  If you write your own controls and do your own thing, these tools can have problems.  Well guess what.  This application that I am working on uses a custom written datagrid built using an .htc based control.  Can you guess how well this control works with regards to 508 accessibility?  It kind of works, but the formatting information is causing problems and the bottom line is that this animal will be a pain.  Gee, this control has no value, but the whole UI of the app is built around this stupid control.  Getting this thing to work will be a pain.  Ripping it out is not an option due to the whole UI of the app being written around the control.  Use standard controls whenever possible.


  • How is .NET a lockin strategy?

    Ok, somebody explain how .NET is a locking strategy?  I don't see it?  I don't get it?  .NET is a better development environment for web based applications.  It provides a better and more secure platform for applications.  It opens up the internals of Windows systems better than VB ever did or could.  I can write Windows Services faster, quicker, and easier than before.  Wonder how hard it is to write an NLM now (wonder if most people even know what an NLM is anymore)?  I have been using Web Services for 3 years now.  I do not care what the other side's operating system is.  I know how to architect a solution that is not platform specific.  It makes no difference to me.  I transfer standard XML across the wire.  How is this a lock-in?  If this is a lock-in strategy, then maybe Wardens Ballmer and Gates can throw the key away to my cell.,4149,1304327,00.asp

    Wally “Man did I get up on the wrong side of the bed today” McClure  ;-)

  • How I tried to cheat the performance monster and lost........

    I like things simple.  Simple is good.  When things are simple, bringing someone new into a project is easy.  There are fewer special cases to worry about.  Looking for a problem is not like looking for a needle in a haystack.

    A couple of years ago, I had a customer that was going to be doing several database lookups per second.  They wanted to cache the data so that there would be no reason to go out and read from the database on each requested lookup, thereby improving performance.  The data was not going to be updated except once every couple of days, so this made some sense.  Well, I read through some MS KB articles and found a couple that stated that under certain circumstances, you could cache recordset objects in an ASP Application variable.  This app met those conditions.  I remember thinking, “This is a lot of data, so I wonder if this will really work.”  As you can imagine, it fell flat on its face.  I called MS dev support on the issue and they basically said that the object in the Application variable was the problem.  I told the client this and the customer was adament that there would be an enormous performance problem.  I played a little game and said that I had some other tricks up my sleeve that we could try at the same time.  Well, I made the lookup go against the database directly and not only was the stability problem solved, but the performance problem was to.  Why?  Well Sql Server is not that dumb.  It has good tools to setup the indexing of tables and it is smart enough to cache data in memory when needed.  Sql Server tools are your friends.  Index Tuning Wizard and the Sql Profiler are smarter than 90% of developers out there.  I tried to cheat the performance monster and I lost.  In doing so, I re-learned a valuable lesson:  Doing things in a straightforward, simple, and smart manner will solve a lot of problems that “creative coding” can cause.


  • How long have I been doing this?

    Somebody just reminded me how long I have been doing this programming thing.  Here is something from 1990.  I don't think that 36 is that old.  Written some x86 ASM (just a little), Embeded Controller ASM, C and C++ on Unix, lots of client-server VB, Mathematic (which I still think is the absolute coolest language, started with it in early 1989 on a Mac), and of course, .NET.


  • Meatballs rolling across the floor

    If you can't tell, I have walked into a project that used every non-standard approach to development I have ever seen, including attempting to create their own version of an ASP.NET file parser and execution envivonment.  All I can really do is some “Meatball Surgery” to attempt  to shore up some loose ends.  The app basically works, but it has a number of architectual problems and resulting limitations. 

    I asked for some documentation when I first got here.  I looked at it, realized that this was some “God-n-Country” documentation that basically was a cut-n-paste of some Microsoft Marketing documentation for certain technologies, and then asked for the programming documentation.  There is no programming documenation and the guys that originally developed this app have left.


  • You are not smarter than Microsoft

    No matter how much you want to think it, you are not smarter than Microsoft.  Do not think that you can create a better version of ASP, ASP.NET, VB, C#, Office, or whatever over a weekend.  If you work for Microsoft, Oracle, IBM, or another tech company, than yes, you can do your own thing.  If you don't work for a tech company, than don't think that you can compete with them without millions, and possibly billions, of dollars.


  • Looking cool may make you look stupid.......

    I have spent the last couple of months pulling my hair out on a project.  This project is an example of how not to architect a project.  First lesson:

    Do NOT try and create your own version of ASP.NET.  You are not as smart as Microsoft, Sun, Oracle, IBM, or other technology companies.  You do not have the resources to invest millions of dollars no matter how smart you think you are and how simple the idea is.  If you get it running in 90% of the cases, that is not good enough.  It has to work in 100% of the time, given normal input.  Instead of trying to create your own version of ASP.NET, use ASP.NET.