Friday, October 19, 2007

Upgrading existing ASP.NET project to AJAX Enabled Web Application

If you want to convert existing ASP.net web application to AJAX Enabled web application then it is as easy as just updating your existing project's web.config file, other than adding a new reference. But you need to take care of certain things otherwise this simple change might give you a tough time before you can actually start using new ASP.NET AJAX features in the existing application.

I am assuming that you have already installed ASP.NET AJAX 1.0 extension.

Following these simple steps first to add ASP.NET AJAX power to your application -

  • Open your existing application and add a new reference to 'System.Web.Extensions' assembly.
     
  • Now create a new ASP.NET AJAX enabled web application (we will use this new project to copy new settings to existing project).
     
  • Compare new application's web.config with your existing application's web.config.
     
  • Copy all new settings that you see in new project's web.config to existing application's web.config.

Now take care of certain things which might actually make your application behave weirdly while using ASP.NET AJAX features -

  • It is very important that if your existing application is still using Legacy XHTML conformance mode, then remove this declaration from your web.config -

    '<xhtmlConformance mode ="Legacy"/>'
     
  • If your application pages are still using non xhtml or old html DOCTYPE declaration then change it to use XHTML 1.0 (at least transitional) by using this declaration instead -

    "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">"
     
  • If after doing these changes, you face some issue with intellisense in Visual Studio then you will have to change the Tag Prefix for "System.Web.Extensions" assembly from 'asp' to anything else. For this locate this line in your application's web.config -

    "<add tagPrefix="ajax" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>"

     and replace the tagPrefix="asp" with tagPrefix="ajax" (or anything of your choice).

    Now instead of using <asp:ScriptManager> or <asp:UpdatePanel>, you will have to use this new prefix (like <ajax:ScriptManager>). But this hack will get back your Visual Studio's intellisense working.

If after all this you are still unable to upgrade your existing ASP.NET application to ASP.NET AJAX 1.0, please feel free to write to me. :)

1 comment:

Anonymous said...

Interesting to know.