ASP.NET AJAX is available for free, and can be used with ASP.NET 2.0 and VS 2005. It is a fully supported Microsoft product, and is backed by a standard 10 year Microsoft support license (with Microsoft Product Support available via phone 24 hours a day x 7 days a week).

ASP.NET AJAX Control Toolkit

In addition to the fully-supported ASP.NET AJAX 1.0 release, you can use the more than 30 free ASP.NET AJAX enabled controls available within the ASP.NET AJAX Control Toolkit. The control toolkit is a shared-source collaborative project built together by a team containing both Microsoft and non-Microsoft developers (visit the CodePlex Project to learn more, or volunteer to contribute). All source for the controls is provided completely for free (with full re-use and modification rights).

The majority of controls within the ASP.NET AJAX Control Toolkit leverage the "Control Extender" pattern that the core ASP.NET AJAX library introduces, and which delivers a super powerful way to easily enable specific AJAX scenarios on a site with minimal effort.

For example, consider the scenario where you want to add a cool AJAX calendar picker to a page (note that the browser below is Opera):

To enable this with the ASP.NET AJAX Control Toolkit you can simply add a <ajaxToolkit:CalendarExtender> control to a page and point it at a textbox to store the date (no additional code required):

The ASP.NET AJAX Control Toolkit will continue to grow and expand in the months ahead - with more controls, features (and bug-fixes) being added every month. The new version of the AJAX Control Toolkit that ships today adds support for 4 new controls to the Toolkit: <ajaxToolkit:CalendarExtender>, <ajaxToolkit:MaskedEditExtender>, <ajaxToolkit:TabContainer>, and <ajaxToolkit:AutoCompleteExtender>. You can try samples of them all out online here.

(Special thanks to Ron and Fernando for implementing the new Calendar, Tab, and MaskedEdit controls added this month).

ASP.NET AJAX 1.0 Source Release

In addition to shipping the source code for the ASP.NET AJAX Control Toolkit controls, we are also releasing all of the source code for the fully supported ASP.NET AJAX 1.0 release. Specifically:

We are releasing the client-side ASP.NET AJAX JavaScript library (which we also call the "Microsoft AJAX Library") under the Microsoft Permissive License (Ms-PL). This grants developers the right to freely customize/modify the library, as well as to redistribute the derivative versions of the JavaScript library for both commercial and non-commercial purposes.

To help with debugging and development, we are also releasing all of the source code for the server-side ASP.NET AJAX 1.0 implementation (including the UpdatePanel, UpdateProgress, ScriptManager, and Network Serialization code) under the Microsoft Reference License (Ms-RL).

Changes between the ASP.NET AJAX Release Candidate and RTM Build

We made a number of improvements and bug fixes between the ASP.NET AJAX Release Candidate and RTM builds. These included:

Globalization fixes to ScriptManager and ScriptResource handler to support date & number parsing and UI culture fallback.

Updated ScriptResource handler to support automatic enabling/disabling JavaScript compression based on browser type.

Support for substitution caching to enable more fragment caching scenarios.

Additional bug fixes and overall robustness improvements.

More complete documentation covering all changes can be found on the http://ajax.asp.net website.

If you have installed previous versions of ASP.NET AJAX on your system, I recommend that you delete the cached VS schema files for control markup that VS maintains to provide HTML view intellisense. This will ensure that your HTML source editor Intellisense for the ASP.NET AJAX controls is correct and doesn't get lost (otherwise it might incorrectly use the old values from the Beta2 release and generate errors).

With Windows XP you do this by deleting all files in this directory: c:\Document and Settings\[YourUserName]\Application Data\Microsoft\VisualStudio\8.0\ReflectedSchemas

With Windows Vista you do this by deleting all files in this directory: c:\Users\[YourUserName]\AppData\Roaming\Microsoft\VisualStudio\8.0\ReflectedSchemas

Future Plans

While the core ASP.NET AJAX 1.0 release is now officially shipped, we are definitely not slowing down. :-)

All of the ASP.NET AJAX 1.0 features will be integrated directly into the next release of ASP.NET (codename: "Orcas"). Visual Studio "Orcas" will also provide client-side JavaScript intellisense, JavaScript compilation checking, and rich JavaScript debugging support for ASP.NET AJAX scenarios.

We are also already at work on the next ASP.NET AJAX release, and will continue to add new features and improvements to the supported ASP.NET AJAX core. You can already start using many of these new features with the ASP.NET AJAX Futures CTP (available for download now on the ASP.NET AJAX site - it also supports a "go live" license).

Summary

We are really excited about having the ASP.NET AJAX 1.0 release finally out. It will dramatically simplify adding rich AJAX functionality to ASP.NET 2.0 applications, and is going to significantly improve user experience for customers. We are really looking forward to seeing all the great applications you build with it!

We recommend deploying ASP.NET AJAX 1.0 in the GAC rather than the \bin directory. The main reason for this is so that in the event we need to-do updates (security fixes, critical updates, etc), we have a way to service/update it.

Our expectation is that hosters will move pretty aggresively to install the 1.0 release on ASP.NET 2.0 hosts. Now that it is at 1.0 and fully supported, there is no reason not to (and customers are demanding it).

If your app runs in full trust, then you can deploy into the \bin directory - but I'd really recommend keeping it in the GAC.

We are working on publishing a whitepaper that specifically covers building accessible (508 or otherwise) web-sites using ASP.NET AJAX. With AJAX and JavaScript in general there are some caveats and things to be aware of, but it is possible to-do.

One big new features of "Orcas" is that it enables you to build both ASP.NET "Orcas" applications as well as ASP.NET 2.0 applications (VS now supports multi-targetting so that it can work against multiple versions of the frameworks).

This will make it easy to open existing projects and immediately start using the new WYSIWYG Designer and JavaScript coding features immediately. You can learn more about the designer features in this blog post here: http://weblogs.asp.net/scottgu/archive/2007/01/22/visual-studio-orcas-web-designer-integrated-into-main.aspx

The source code for the JavaScript library can be downloaded in a .zip file on the "downloads" section of http://ajax.asp.net.

The server source code will be released shortly (a few days or a week or two). We are just packaging this up now and making it available. It will also be downloadable from the "downloads" section of http://ajax.asp.net.

FireFox, Safari and IE work for all scenarios. Opera is now supported for almost all scenarios - although there are a few edge cases with more advanced scenarios (for example: dynamically nested updatepanels, etc) where Opera lacks some JavaScript browser features to support these scenarios.

We'll be putting out a more detailed whitepaper that details these scenarios, so that you can know if anything you are doing will run into issues.

All of the AJAX Control Toolkit controls also now support Opera, so you should be able to use them with Opera as well (please report any issues you find with them).

I just upgraded to the 1.0 RTM. I followed the steps to migrate my project from RC to RTM. But I am not able to resolve this javascript error "PageMethods is undefined." I cannot figure out what is wrong. Any help would be greatly appreciated. Thanks.

I was getting ready to take my AJAX enabled site live with the release build but realized there were problems (at least for me) with the validation controls (MultiView forms within UpdatePanel). The forums are buzzing with confusion. Please shed a bit of light on the ASP.NET patch you mentioned including timelines, if possible.

With the ASP.NET AJAX release candidate we had temporary validator controls to enable them to work within UpdatePanels.

We are shipping a patch to ASP.NET shortly that updates the built-in ASP.NET validation controls to work withi ASP.NET AJAX UpdatePanels. Once this update is installed, they will work just fine.

Until this patch is available, you can download and use the same temporary validator controls that were in the RC from this page: http://blogs.msdn.com/mattgi/archive/2007/01/23/asp-net-ajax-validators.aspx

I mostly use just the client-side ASP.NET AJAX JavaScript library and noticed the version number stayed the same as RC 1 (1.0.61025.0) but files have changed. Just curious why the version stayed the same?

Also, any chance we could get the version number in the js files themselves? Once you move them out of the folder you loose track of the version.

For folks asking about the validators in ASP.NET AJAX 1.0 - here is a blog post that walksthrough how to add support for them back in while waiting for the ASP.NET Windows Update patch which will make the support automatic: http://forums.asp.net/thread/1545781.aspx

Hats off to the Atlas team! Congratulations!
You guys may not know how critical Atlas is to us. We're one of Microsoft's largest account and We're migrating one of the larges eCommerce websites in the world to Web 2.0 and this effort relies so heavily on Atlas to delivers the best-in-class customer experience!

I installed v1.0 on my dev box no problem today, however IT have gone about installing it on the web server and it appears to have undergone the same installation. It appears to have installed to program files and is therefore not available in the GAC. Any ideas?

I should clarify, the files have installed to WINNT\Assembly on the web server, but the file cannot be found by my application, nor is it present in the .NET Framework Configuration Administrative tool. This app is for some reason asp.net 1.1 even though 2.0 is installed on the server. Could that be the root of the problem?

We just finished the migration to 1.0 and so far things look absolutely fantastic. Thanks to you and all of your team for the hard work.

And a special thanks to you for your efforts to keep the community informed. It's amazing to see someone in your position be so accessible to the people who are using the products day-in and day-out, and it makes me glad to be working with the Microsoft tools.

Hi Scott,
I noticed that all CTP versions are light weight components and you do not need deploy them into GAC in production servers. However RC and the official release need install it into GAC even if you can alternatively read it from /bin by downgrading the application trust level. Deploying it into GAC is very nice for development environment. But in the production server, I personally prefer to keep it as a light weight component for easy deployment. I mean loading it from /bin directly instead of GAC. Please advise...
Thanks,
Shawn

Scott, thanks for the blog post and the link to the interim solution of the validators. Two things if you have time to respond :

1) What's in the January Futures CTP? I can't find any info on the ajax website (The "Read the features" link on the site doesn't give you any info on what's in it!)

2) Why does Ajax 1.0 (and the futures CTP ) install in the old RC version "v1.0.61025" directory when the new release version is v1.0.61231? This could get confusing - is it just an oversight in the installer?

I came in to work this morning happy that a final release of ASP.NET AJAX was finally here. I upgraded 2 current applications I'm working on from RC 1 to the new release only to find that it introduced the same issue into both. Running code that is enclosed in an update panel results in the following exception:

Great release ! However when do we see a fully automated installation of AJAX Control Toolkit which requires no manual steps ? Right now there are too many (error prone) steps involved in order to make to controls work (like tweaking the web.config).

I just posted some more details about enabling validation controls that you can read here: http://weblogs.asp.net/scottgu/archive/2007/01/25/links-to-asp-net-ajax-1-0-resources-and-answers-to-some-common-questions.aspx

The Calendar control I showed a screen-shot of above is actually an entirely client-side control. It uses the extender model provided by ASP.NET AJAX - but doesn't need to go back to the server for anything.

the library's full trust requirements makes the complexity of shared hosting scenarios unbearable.
partial trust is standard under shared hosting, therefore using ms Ajax requires installing it on the GAC.
using the library with our code means that we can't be sure that is "runs everywhere".
from now on we need to check for the asp.net Ajax version installed on our provider's machine and see that our application supports it.
please consider releasing partial trusted version.
thanks
daniel.

I have stated using the Update Panel on a new project and I am terribly impressed. I cannot belive just how much control I can get over the page from writing only server side code, and with out postbacks.

This is the most impressive thing added to ASP.net since it's release.

following my last response, I'm sorry to report that we've moved to a different Ajax framework due to trust level issues.
still your framework rocks.
I can only hope to work with it on a different time/place.
Daniel.

Unfortunately I will not be able to upgrade from the July CTP of Atlas to the final fully supported release of ASP.NET AJAX. I have an important website on the intranet of a large company since last July that successfully uses TreeView and Menu contols inside UpdatePanels using the July CTP of Atlas, but these controls are no longer supported in an UpdatePanel in the final fully supported release of ASP.NET AJAX. I know that the TreeView control can do an asynchronous callback for the TreeNodePopulate event, but I also need partial page postbacks for the SelectedNodeChanged event. In fact, I want PopulateNodesFromClient to be false anyway and use a partial page postback using an UpdatePanel because the UpdateProgress control does not appear for the TreeNodePopulate event asynchronous callback with PopulateNodesFromClient true, which would make the UI inconsistent with the rest of the website. I use the Menu control inside an UpdatePanel to create tabs. I know that tabs is provided by the latest ControlToolkit, but I need a partial page postback to the server on each active tab change. I would not like to wait for the next ASP.Net AJAX release or Orca's for TreeView and Menu support inside an UpdatePanel. Since ASP.Net AJAX maps the tags for Validator controls to new versions of those controls that that ship with ASP.Net AJAX and work with UpdatePanels, can the same not be done for the TreeView and Menu control in a Futures CTP?

I use 2 timers (one on a master and one on the actual page). With fiddler I measure the traffic of the page when the timer is executed. I find that the viewstate is sent twice to the client. Is this because I use 2 timers, how can I prevent this as a lot of data gets sent twice now (besides the viewstate other data is also sent twice).

When you do a callback refresh using a timer control, it will send the viewstate of the page back. Note that if you want you can disabled viewstate on the page or on specific controls to minimize this size.

Alternatively, you could wire-up a timer via JavaScript (there is a class in ASP.NET AJAX for this) and call a JSON enabled .asmx file in ASP.NET to refresh content that way. This would avoid any viewstate being sent/used.

Ideally you want your hoster to deploy ASP.NET AJAX 1.0 into the GAC. You can then use this from any ASP.NET application on the machine.

If they don't deploy it in the GAC, then you can deploy it in the \bin directory - but only if the application is running in full trust (not partial trust). Most hosters run in partial trust (so this doesn't work). But that is worth checking if you can't use it out of the GAC.

Thanks to Scott Guthrie and the entire ASP.Net team for getting this out. I see you are releasing the ASP.NET AJAX 1.0 as a library itself, and a seperate AJAX Control Toolkit download is available from CodePlex. This looks like a good way to provide a supported version of the core AJAX library available quickly, while providing the necessary controls that could not make it to the library this go round. Good work Scott and team!!

First let me say thanks to everyone who worked on the ASP.NET Ajax Ext, Tookit, etc. they are a great addition to ASP.NET, and greatly improve the user experience, while minimizing development time needed to add rich functionality.

I do have one issue when updating to the ASP.NET Ajax 1.0 RTM from any previous CTP, BETA or RC version. This wasn't metioned in the update notes, and therefore took me hours to track down.

The issue is related to Partial Page Rendering being disabled, causing UpdatePanels to do full postbacks, if the page uses legacy rendering support. I had the following code inside the section of my web.config file.

While all previous versions of the Extensions, did not seem to be affected by this, when I updated to the RTM version, all my UpdatePanels started doing full postbacks instead of Partial Postbacks as before.

Since this was not mentioned in the migration notes, (at least not that I saw), it took me quite a while to track down, thinking I must have missed some other configuration issue, or that my installation was corrupt somehow.

I just wanted to mention it here, in case someone else has this same problem, it may save them some time. I commented out that line in my web.config, and everything started working again.

I got error "System.Reflection.AmbiguousMatchException: Ambiguous match found." when I use AJAX 1.0 Release version in both my old application and new application. Only when use Master page and child page have ultraWebGrid or ultraWebCombobox, this error occures, if just use webgrid in a page without MasterPage, it can works.

1. Does UpdatePanel work in all browsers? (IE, Safari, Mozilla, Opera, Netscape, AOL)
2. If updatepanel does not work in a particular browser will the browser ignore updatepanels and full postback will occur?
3. AJAX toolkit does not work in Safari (I checked the Collapsible panel in Safari and it doesnt work!)

Here's some more information. We have a calendar control that's part of a control libray that needs to run whether or not ASP.NET Ajax is available on the server. We're using Reflection to detect the presence of the System.Web.Extensions assembly and call either the original Page.ClientScript functions or the new ones provided by ASP.NET Ajax.

The ambiguous match comes when we try to get the method info from System.Web.Extensions using code like this:

It appears that all of the registration functions have been overloaded to accept both a Control and a Page as the first argument. So, I simply adjusted my GetMethod calls to specifically ask for the one that wants the Control and this fixed the problem for me:

You've stated in many posts, in one form or another, "Ideally you want ... to deploy ASP.NET AJAX 1.0 into the GAC." This may seem like little more than "dotting the i," but what, exactly, are the requirements (or official recommendations) for deploying ASP.NET AJAX on a production server?

From what I can tell, it's just adding System.Web.Extensions to the GAC, but there's no categorical statement of that in any of the published docs I've read. The distributed installer does this, but it does a lot of other stuff, too (e.g., installing System.Web.Extensions.Design). Does the installer do anything that's necessary for deployment other than putting System.Web.Extensions in the GAC?

We (and others) need to build installers for production apps, and we'd like those apps to be supportable to the extent that Microsoft will provide such support. Without a clear statement of what's needed for production deployment, we're left wondering whether or not we've neglected something.

hi
can anyone tell that how can we use use webpartzone in updatepanel cuz we want to have drag and drop asynchronously please guide me as i want it as soon as possible
functionality like pageflakes.com
thank you

Not too sure if you can help. We use the CalendarExtender. Works fine on IE and Firefox but not on Netscape 8.1.2 (latest build). We have it tied to a text box so when you focus on the tb the calendat appears. Is there a fix?

I have tried to set up the new release on a vpc using 2003/sp1. Everything loads fine but when I try to follow your tutorial, the compiler does not seem to recognize the AJAX extensions and I can not get over the build errors.

any Ideas of what I'm doing wrong. I have re-installed the the system several times (>5) and have not been able to get over the hump.

Do you know when the automatic update that will address the validator problem is supposed to be released? My application has a lot of custom build validators that implement the System.Web.UI.WebControls.BaseValidator and the tag mapping solution does not work.

Here is what I found out about the validator patch - it turns out the patch it was aligned with had an issue, and so has been rescheduled to ship via Windows Update in early April (about 8 weeks out).

So I'd recommend using the download version of the validators for your projects right now. Note that these *will not* break when the Windows Update patch comes out. Your apps should continue to work just fine. You can then decide in the future to just uncomment out these temporary validators and use the real ones at a future point.

What I am trying to do is when the user hits the enter key I want to add a new Table row.I wrote a pagemethod for this,which takes a Table as input and returns a Table.From the javascript function I call the Pagemethod using the following line "PageMethods.Addrow(TBID,OnSucceeded);". I have an OnSucceeded function where I handle the result.
It is executing properly upto the "PageMethods.Addrow(TBID,OnSucceeded);" line, then it becomes unresponsive. Can you please let me know what am I doing wrong.

Scott:
From your reply below I gather that a team has been working on publishing a whitepaper. I would like to know when it would be released. I am running into a situation where AJAX.NET is going to be pulled off of my web project because it does not go through screen reader and other accessibility tools. your response is much appreciated. hope you have recovered fully from flu.

Hi jenad1kr,

We are working on publishing a whitepaper that specifically covers building accessible (508 or otherwise) web-sites using ASP.NET AJAX. With AJAX and JavaScript in general there are some caveats and things to be aware of, but it is possible to-do.

What ever happened with the bug where Validators didn't work properly with ASP.Net Ajax 1.0 - you mentioned previously that yall were going to ship an update to System.Web to fix the problem but I don't see any mention of this since Jan 23.

I have a working web portal that I want to update with new AJAX features, like partial page update in the first place. I picked one page, added the ScriptManager and UpdatePanel to it, placed some of the existing controls on the panel and hoped that this would make the controls to update independently from the whole page when I click a button inside the panel -- nope. Click on the button makes the page to refresh completely. With no errors or warning messages. I am new to all this AJAX thing and would appreciate any advice on how to approach this problem. Thank you.