Reusable Components: Where The Web Standards Fall Short.
From Scott Galloway:
Reading this post from Stephen Sharrock reminded me about something I often overlook, the phenomenally powerful DHTML behaviours which IE supports using HTC files. The WebService behaviour for instance lets you pull information into your client from aribtrary web services, even without using HTCs, tools like xLoadTree provide the ability to load data straight into the client without forcing a postback.
Before anyone comments, I know these are IE only - to be honest I don't care, when only 3% of users use anything other than IE, it seems a shame to ignore the functional improvements these kind of tools provide.
Now, Mozilla does support it's own version using XBL and XUL - hopefully some genius will work out a way for mozilla to support full HTC as well...
Scott it could be a good idea to find or to create a page with all the .htc files existing around.
[help.net]
This is one of the main reasons Microsoft needed to create a technology like XAML. It drives me nuts when people ask why they didn't just use XHTML, the DOM, etc. There's zero support for re-usable component technology in those standards! Hacking together scripts that haphazzardly add behavior to existing HTML elements is the only way to do it and man it's a mess.
IE's HTC and Mozilla's XUL/XBL are awesome component technology implementations, it's just too bad there still isn't a standard. :(
Mimeo makes extensive use of DHTML for several portions of its document building process. We invented all sorts of cross-browser component technology hacks when we started, but believe me they suck compared to HTC/XUL. We're a small team, we didn't have the resources to dedicate to “best of” experiences for NS4, IE5.x+ and Mozilla 1.x at the time, so instead we had to cater to the lowest common denominator (NS4... yuck). We're getting ready to overhaul our site and bring it into the new world though, so these are both technologies we'll be spending a lot of time investigating. More difficult today though is figuring out how to write good ASP.NET server controls which emit the proper client code by detecting the browser and ultimately receive the data generated on the client back at the server side.
Part of me just wants to write it as an Avalon smart-client, but uhh... I don't think that would pull in much business over the next 4-10 years. ;)
Update: I did a little research and found some interesting stuff. It appears the HTC spec was submitted to the w3c in 1998. At that time, all the names on the spec were from Microsoft. In 1999 it looks like it became a working draft expanded to what became known as Behavioral Extensions to CSS. This document seems to spell out the specifics of how the behaviors were attached to a particular element or set of elements and even has a Netscape developer on board. This makes me wonder why work stopped there. Sure it wasn't perfect, but... it was a start. It was supported by IE. So why didn't the Mozilla people at least provide an implementation of the working draft? I understand and agree XUL/XBL is better in plenty of ways, but... at least IE already supported HTC and we could have had some form of cross-browser component technology. :(