Click here to Skip to main content
15,896,606 members
Articles / Web Development / HTML

Implementing an extensible factory method pattern using ASP.NET and AJAX

Rate me:
Please Sign up or sign in to vote.
4.50/5 (6 votes)
3 Nov 20056 min read 73.6K   235   57  
This article discusses the advantages of building HTML controls on the server side for AJAX calls and proposes an extensible factory pattern. Also different approaches for handling these custom calls using modules, handlers and ASPX pages and the leverage provided by ASP.NET libraries are discussed.
/*
	Copyright � 2005 Sriram Chitturi
	THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY
	OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
	LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
	FITNESS FOR A PARTICULAR PURPOSE.

	You can use this code as long as this message is intact in it's form
	and give credit to the author for his work.
*/

using System;
using System.Web;
using System.IO;

namespace DataBrowser
{
	public class AjaxCallModule : IHttpModule
	{
		HttpApplication _application; // application variable used in handling the request

		public void Init(HttpApplication context)
		{
			_application = context; // save a reference to application for later use
			context.BeginRequest +=new EventHandler(context_BeginRequest);
		}
		public void Dispose()
		{
		}

		// i am using BeginRequest which is called even before Authenticate and Authorization modules
		// because the extension is unique and i can use something like x0y1z2 also for the extension !
		private void context_BeginRequest(object sender, EventArgs e)
		{
			string ext = Path.GetExtension(_application.Request.FilePath);
			if (string.Compare(ext, ".acall", true) == 0)
			{
				AjaxCallProcessor proc = new AjaxCallProcessor(_application.Request, _application.Response);
				proc.ProcessAjaxCall();

				// this following line will not be invoked as the call above is going to end the request !
				_application.CompleteRequest();
			}
		}
	}
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Architect
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions