I happened to be building an ASP.NET 2.0 website earlier this year when the ASP.NET 2.0 AJAX Extensions RTM’d, so I decided to try it out. Someone recently asked me my impressions of the Extensions and Control Toolkit and how best to get started, so I thought I’d pass on my comments.
Thinking of existing ASP.NET developers picking up AJAX for the first time with this framework, it is an extremely well designed and natural development model. It integrates almost seamlessly into the existing development environment and “<asp:xyz>” tag model.
One thing that should be high on everyone’s to-do list as a web developer is mastering CSS. If you are not very strong with CSS, it is going to become tougher to use the new tools, including AJAX and WPF/E. For many of the fancy controls noted above, you need to create a number of CSS styles just to get them to work. I recommend one site for CSS that may open your eyes to the possibilities. Check out all the layouts you can do with no nested tables involved, and cross-browser too.
I believe that the AJAX toolkit documentation is lacking, in some areas significantly. You will probably find yourself with questions that are not answered at all, or poorly. However, that has not proven to be a major issue. For the most part things work as expected, but there are certainly subtleties to learn.
I have had some issues with the collapsible controls not sizing correctly in a stacked configuration, but that is in an absolute positioning-based CSS website that may have another CSS issue that I’m missing. On the same site, we have an issue with the stacking and with calendar controls not appearing in IE6 only, but again, that could be related to the other CSS.
A not-to-miss blog for a wide range of ASP.NET topics, not just AJAX, is Scott Guthrie’s. Here are some more ASP.NET AJAX labs. And training videos. The good news is that you can start using the Extensions for very small bits of functionality on your site and expand from there. For instance, I put an existing checkbox that simply turns a flag on and off in a database inside an UpdatePanel to avoid a complete postback. I’m sure you can think of areas like this on your websites where a simple operation could be easily optimized with AJAX Extensions for a much bigger benefit in user experience.