TreeView Controls
There is a reason I hate using 3rd party controls. It is because they all suck (ok, one exception... the FreeTextBox.NET control is pretty slick). Today, I spent about 5 hours jacking with different treeviews only to end up using a modified version of the IE TreeView. It all started out because the new TreeView over on GotDotNet locks up IE for some unknown reason when you use the HTC file. So, I decided, I'll go out and download another treeview control. Simple enough, right? I mean, anyone making a TreeView control should have the basics covered. Apparently, making a decent server control is insanely difficult for the shmucks who make TreeViews (or any other type of control for that matter)...
I don't see what is so hard about making decent controls. Take, for instance, the SoftArtisans TreeView control. You can programmatically add nodes, but you cannot programmatically access nodes once they have been added (there is no "Nodes" collection). Additionally, if you use the programmatic methods to add nodes, you can't set a lot of the properties that you can if you are binding to an xml data source. There is no expanded event, so you have to load your entire dataset on the first run. Ooh, yah, and I'm forgetting the best feature. Since programmatic access to nodes is pretty much out, you are forced to use XML. Not so bad in itself, until you realize how they construct the tree. The name of the tree node is the name of the xml element. This means the text on all your tree nodes can't have any spaces. Do they even use these things before putting them up for download? (yes, this they are putting this out at no cost, but it is so horrible it has ensured that I will never purchase anything from them in the future).
If you haven't seen them, the controls from Karamasoft are very cool. However, they are a huge pain to work with. For one, you can't use the VS.NET designers. They have this web app they created that you use to make these definition xml files that you load with the control. You can set the html content on their panel control, but you can't add server controls to it (like a login control). Their idea is that you should just use html tags and then use Request["blah"] to retrieve the variables. Yah, right...this isn't ASP. I don't want more spagetti code.
Here is a request to all companies making 3rd party controls:
1) Read the .NET Framework design guidelines.
2) Follow them.
Additionally, it wouldn't hurt you to go get the Developing Server Controls book from MS Press and then take a look at how some of the framework's web controls function. How 'bout starting with making some decent designers for your controls?
It is amazing how many of these companies that are putting this stuff out can't even get the simple things like naming conventions down... Someone needs to get into the 3rd party control market and start making some decent server controls... if only there were more hours in the day.