Quality time with ASP.NET AJAX
I've been playing with the new AJAX extensions quite a bit lately, and overall I'm impressed. In terms of doing post-back-ish type stuff, it's so ridiculously easy to do everything you did before, only without having the full page refresh. That makes you look like an all-star for almost no cost.
Rolling your own stuff is less easy, and sometimes even frustrating. For example, I'd like to update a Repeater with new data as a user types in a TextBox (the server control variety). You can easily wire the update panel to deal with a TextChanged event, but only when the control loses focus (tab, click out or enter). It sounds simple, but I can't figure out how to do it. Looking at the auto-complete sample in the toolkit shows way too much code for way too many possibilities.
I partially blame the documentation. It's thoroughly complete, and thoroughly without context in many cases. For example, you have a topic called "Adding Client Behaviors to Web Server Controls by Using ASP.NET AJAX Extensions", and one called "Adding Client Capabilities to a Web Server Control by Using ASP.NET AJAX Extensions." What's the difference? It's not clear by reading it because the terms "behaviors" and "capabilities" is unclear to me. I'm starting to understand, but there's a serious lack of context.
I guess this learning curve is to be expected, especially with my general lack of ability in digesting information without context. (I'll be honest, I wrote my book for people like me, and the feedback has been good for that reason. Perhaps if I can really get my head around it, I need to write just such a book for the AJAX extensions.)
If I could offer constructive criticism for the people maintaining the documentation, it would be to offer a clearer understanding of how to use this stuff with server controls, because that's the world most of us have lived in since ASP.NET was beta. I understand the strong abstraction that allows you to use the script libraries with any platform, but that's less useful for those of us that have no desire to do so.
Despite my issues, I think the framework overall is good stuff, and I hope I can find the time to really dig in and do "neat stuff" with it.