ASP.NET AJAX 1.0 Beta 2 Release
On Monday we shipped the Beta2 release of ASP.NET AJAX (aka "Atlas"). You can learn more about it on the http://ajax.asp.net web-site and download it here.
ASP.NET AJAX Beta 2 Downloads
Included with the Beta 2 release are three downloads (each of which supports a go-live license)
ASP.NET AJAX 1.0 Beta2: This is the "core" ASP.NET AJAX download and contains the features that will be fully supported in the ASP.NET AJAX 1.0 release (meaning Microsoft product support is standing by 24x7). The download includes support for the core client-side JavaScript type-system, networking stack, component model, extender base classes, and the server-side functionality to integrate within ASP.NET (including the super-popular ScriptManager, UpdatePanel, UpdateProgress, and Timer controls).
ASP.NET AJAX Control Toolkit: This download contains 30+ free ASP.NET AJAX controls (with full source code) that make common AJAX scenarios super easy (cascading dropdown lists, animations, modal dialogs, in-place pop-up extenders, etc). The toolkit is community supported, and built by an open source team containing both Microsoft and non-Microsoft developers. It only uses AJAX features contained with the ASP.NET AJAX 1.0 Beta2 "core" release above.
ASP.NET AJAX Futures November CTP: This download contains a preview of future AJAX features that we are working on and will likely move into the ASP.NET AJAX "core" download once they are fully baked and understood. If you want to use APIs that are non-changing and fully-supported, you should target the "core" download above. But if you want to push the envelope this download provides a bunch of features to take advantage of.
New Features in ASP.NET AJAX Beta 2
In addition to a number of bug-fixes, the ASP.NET AJAX Beta 2 release contains a number of feature improvements worth calling out:
UpdateProgress Control: The UpdateProgress control is now included in the fully-supported "core" ASP.NET AJAX 1.0 Beta 2 download (in Beta1 it was still in the Futures CTP download). The UpdateProgress control has also been enhanced over the version that shipped in the earlier Atlas CTPs, and now supports the ability to have multiple UpdateProgress controls on a page (and show/hide depending on the UpdatePanel that is being updated). The UpdateProgress control also now has a useful "DisplayAfter" property that allows you to easily control the wait time before the UpdateProgress animation should display (to avoid you displaying an animation if the response comes back super quick).
Partial Rendering Auto-Degrade for Non-AJAX Browsers: A ScriptManager.SupportsPartialRendering boolean property has been added to indicate whether or not an incoming browser supports AJAX. By default this is automatically set using settings configured via ASP.NET's BrowserCapabilities system (meaning you can override or customize the setting using .browser files). If you configure or set this value to false for a particular browser or device, ASP.NET AJAX will auto-degrade and not use partial page rendering with UpdatePanels - and instead just use normal postbacks and full page refreshes.
Simplified Client-side Event Binding API: The client-side AJAX JavaScript library now has a cleaner mechanism for binding and detaching multiple event handlers to a DOM element, which reduces the amount of code you have to write and can also helps avoid memory leaks. Read Bertrand's great blog post to learn more about the new model.
Client-Side JavaScript Localization: Client scripts can now automatically retrieve localized resources from the server, making it possible to more easily create locale and region aware web UI.
Client JavaScript Debugging and Tracing Improvements: A number of additional improvements have been added in Beta2 to identify and diagnose issues in JavaScript. You can also now use debug.trace and debug.dump to output JavaScript trace statements to either a textarea element you embed within a page, or to the popular FireBug browser add-in or Nikhil's WebDevHelper add-in utilities.
The ASP.NET AJAX team has also built a number of useful JavaScript source management utilities for adding debug parameter validation into JavaScript source code, and have it conditionally be stripped out depending on whether you process the script in "retail" or "debug" mode at development time. We are going to be shipping the source for these utilities as part of the ASP.NET AJAX Control Toolkit in the near future, which will enable developers to easily take advantage of them within their own projects (we'll even have some cool MSBuild tasks that you can add to-do it for you automatically as part of your standard build process).
Client-Side JavaScript CSS helpers: There is now a useful JavaScript library included that enables developers to easily add, remove and toggle CSS class associations on client controls and elements.
Drag/Drop Support for ASP.NET Web Parts in Safari and FireFox: You can now enable drag/drop of ASP.NET Web Parts using both FireFox and Safari (this later support was not available in the earlier CTPs). Read all about it in David Barkol's blog post here, or click here to see a screen-shot of web part portal drag/drop customization in action with Safari on a Mac.
Performance and Stability Improvements: The ScriptManager API has been improved with richer support for handling timeout situations with dynamically loaded scripts. Script components can also now register for dispose semantics to avoid possible memory leaks.
Upgrading from ASP.NET AJAX Beta 1
There is a document on the http://ajax.asp.net home-page that describe how to take an existing ASP.NET AJAX Beta1 application and update it to use Beta2. This should be relatively straight-forward and only take a few minutes. The one gotcha to watch out for is that you need to add a "ScriptResources.axd" <httpHandler> into your existing Beta1 web.config files:
<add verb="GET"
path="ScriptResource.axd"
type="Microsoft.Web.Handlers.ScriptResourceHandler"
validate="false"/>
If you don't do this, you will see the following JavaScript error at runtime:
'Sys' is undefined.
Hope this helps,
Scott
P.S. Apologies for the delay in posting this - I've been busy at the ASP.NET Connections Conference in Las Vegas the last few days (talking to the 1500+ people attending the show this fall -- wow!).