Skip to main content

ASP.NET Page Life cycle


ASP.NET Life cycle

At higer level, this is a two step process -

1. When user sends a request ASP.NET creates an environment which can process the request. Here ASP.NET creates instances of the core objects that will be used to process the requst. This includes HTTPContext, HttpRequest and HttpResponse object.

2. After creating the environment their is a series of events processed by modules, handlers and page objects to process the request.

(I) ASP.NET Environment Creations
1. User sends a request to IIS. IIS first checks which ISAPI (Internet Server Application Programming Interface) extension can server this request. If the request is for an .aspx page then the request will be redirected to ASP.NET (aspnet_isapi.dll) for processing.

2. If this is the first request to the website then a class called as "ApplicationManager" creates a application domian where the website can run.Application domain provides the actual isolation levels so that various website hosted in the same IIS Servers will not interfare with each other.

3. The newly created application domain creates hosting environment, i.e., the "HttpRuntime" object. Once the hosting environment is created, the necessary core ASp.NET objects like "HttpContext", "HttpRequest" and "HttpResponse" objects are created. The HttpContext objects contains reference to the HttpRequest and HttpResponse object. Browser related information and existing cookies are present in HttpRequest while HttpResponse object contains the information about the reponse that will be sent from server to the client i.e. cookies to be written etc.

4. Once all core ASP.NET objects are created, "HttpApplication" object is created. This objects contains the methods and events that are common for the application. If "global.asax" is present in file system then object of "global.asax" will be created. This file is inherited from "HttpApplication" class. Using global.asax we can handle all the events raised by HttpApplication object and perfrom our application specific operations.

5. Once HTTPApplication object is done with the request initialization, authentication and authorization events, then it is assigned to core ASP.NET objects to process the page.

6. HttpApplication then starts processing the request by HTTP module events, handlers and page events. This is the point where we write most of our code.

Comments

Popular posts from this blog

Show Image on canvas HTML5

Here is the sample code to select image from system and display it on html5 canvas and javascript: <input type= "file" id= "selectedImage" /> <canvas id= "myCanvas" width= "500" height= "500" > </canvas> Javascript code: $( "#selectedImage" ).change( function (e) { var URL = window .URL; var url = URL.createObjectURL(e.target.files[ 0 ]); img.src = url; img.onload = function () { var canvas = document .getElementById( "myCanvas" ); var ctx = canvas.getContext( "2d" ); var imgSize = calculateAspectRatioFit(img.width, img.height, canvas.clientWidth, canvas.clientHeight); ctx.clearRect( 0 , 0 , canvas.width, canvas.height); ctx.drawImage(img, 0 , 0 , imgSize.width, imgSize.height); } }); function calculateAspectRatioFit(srcWidth, srcHeight, maxWidth, maxHeight) { var ratio = Math .min(maxWi

Pass byte array from C# to C++ and vice-versa

Pass byte array from C# to C++                           If you want to pass a byte array to native DLL as parameter, you can use the Intptr to do this, please check the demo below. /C++ API code: TestDLL_API void TestArrayPara (BYTE * pArray, int nSize) { for ( int i= 0 ; i<nSize; i++) printf( "%d\n" , pArray[i]); } //C# code: class TestClass { [DllImport(@"TestDll.dll")] public static extern void TestArrayPara (IntPtr pArray, int nSize); public static void Test () { byte [] array = new byte [ 16 ]; for ( int i = 0 ; i < 16 ; i++) { array[i] = ( byte )(i + 97 ); } int size = Marshal.SizeOf(array[ 0 ]) * array.Length; IntPtr pnt = Marshal.AllocHGlobal(size); try { // Copy the array to unmanaged memory. Marshal.Copy(array, 0 , pnt, array

Display Tooltip for Combo Box item C#.NET Winforms

In windows form combo box control sometimes while adidng items dynamically we have items whose width is greater than width of combox box control. In this case for making UI more user friendly we can show tooltip over such item. Here is the sample C# code to display such tooltip:  Add a Tooltip control on the form.  Add following code : this . combo_box1 . DropDownStyle = System . Windows . Forms . ComboBoxStyle . DropDownList; this . combo_box1 . DrawMode = DrawMode . OwnerDrawFixed; this . combo_box1 . DrawItem += new DrawItemEventHandler(combo_box1_DrawItem); this . combo_box1 . DropDownClosed += new EventHandler(combo_box1_DropDownClosed); this . combo_box1 . MouseLeave += new EventHandler(combo_box1_Leave); void combo_box1_DrawItem( object sender, DrawItemEventArgs e) { if (e . Index < 0 ) { return ; } string text = combo_box1 . GetItemText(combo_box1 . Items[e . Index