Sunucu tarafında kullanıcının web isteklerinde Asp.NET istemciye web formunu göndermeden evvel, web formunu tabii tuttuğu işlemlere değineceğim.
Asp.NET web formlarını işlerken gerçekleşen aşamaları sekiz maddeye ayırabiliriz. 
Şekil 1 - Web formlarının tabi tutulduğu aşamalar
Bu aşamalar hakkında bir şeyler yazayım.
Page Framework Inıtialization
Asp.NET'in sayfayı oluşturduğu aşamadır. Sayfanıza yerleştirdiğiniz kontroller üretilir. Eğer sayfa ilkkez çağırılmıyorsa yani istemciden gelen sayfa talebi bir postback işlemi (örneğin bir butona basılıp cevabının beklenmesi) ise kontroller sıfırdan oluşturulmaz bunun yerine serileştirilmiş viewstate bilgisini deserialize işlemine tabi tutarak bunları sayfanın kontrollerine uygular ve istemciye geri döndürür.
Bu aşamada tetiklenen olayımız sayfanın Page_Inıt olayıdır.
User Code Initialization
Bu aşamada o meşhur Page_Load olayımız tetkiklenir. Bu olay gerek sayfamız ilk kez sunucudan istendiğinde gerekse postBack işlemleri ile olsun her talepte tetikleniz. Biz bu olay ile sadece sayfa ilk yüklendiğinde tetiklenmesini istediğimiz işlemleri Page.IspostBack kontrolü yaparak Page.IsPostBack == false bloğunun içerisine yazmamız gerekmektedit. Mesela sayfamız ilk yüklendiğinde sayfamızda bulunan grid kontrolünü veritabanımızdan gelen veriler ile yüklemek istiyoruz. Bunu haliyle page_load olayının içerisine yazarız. Ama IspostBack kontrolünü yapmassak sayfamız sunucuya her istek gönderildiğinde tetiklenecek ve bu boş yere veri tabanında veri çekmemize sebebiyet verecektir. Bu sebeple sayfanın sadece ilk yüklenmesi durumuna kod yazmamız gerekecek. Bu da daha önce belirttiğim gibi IspostBack özelliğinin false olma durumudur.
Çoğu zaman sayfadaki kontrollerimizin özelliklerini bu page_load metodu içinde yaparız ve kontrollerimizi bu şekilde başlatırız. Malum kod işletilirken değiştirdiğimiz kontrol özellikleri viewState stringi olarak depolanır ve istemcilere gönderilir. Bu da uzun viewstate'lerin istemciler tarafından indirilmesi işlemini uzatır. Bunun yerine oluşturduğumuz kontrollerin özelliklerini html tagları içerisinden atanıp EnabledViewState özelliği false yapılırsa performans açısından daha iyi olur kanaatindeyim.
Validation
Asp.NET kullanıcılardan veri alınan kontrollerin otomatik olarak denetlendiği ve uyarı / hata mesajları vermek için kullanılan Validate kontrollerine sahiptir. Page_Load metodundan hemen sonra işlem görürler. Bu kontrollerin sonucunu almak için Page.IsValid özelliğini kontrol etmemiz gerekecektir.
Event Handling
Olay yakalama sayfa tamamen yüklendikten ve validation işlemleri gerçekleştikten sonra yapılır. Sayfamızda gerçekleşen olayları ikiye ayırabiliriz;
Immediate Response Event: Bir butona basıldığında bir linke tıklandığında ya da başka bir kontrolun javascriptte _doPostBack() fonksiyonunu çağırdığından ivedi olarak gerçekleşen olaylardır.
Change Events : Bir kontroldeki bir değer değiştiğinde gerçekleşen olaylardır. Mesela bir textbox içeriğinin değişmesi gibi. Bu kontrollerin AutoPostBack özelliği true olursa değişiklik hemen olayı tetikler false olursa diğer postback olayı ile olay tetiklenir.
Olayların tetiklenmesi babında web tabanlı programlar windows tabanlı programlardan çok farklı bir mantıkta çalışmaktadırlar. Windows uygulaması çalışmaya başladığı andan itabaren bellekte onun için sabit bir yer ayrılır ve bu formda gerçekleşen olaylar hemen tetiklenebilir. Ama bir Asp.net olayının tetiklenmesi başka bir olayı bekleyebilir ve bazan birden çok olay sıralı bir şekilde bir postback işlemi ile tetiklenmek zorunda kalabilir. Mesela Textboxun TextChange olayına kod yazdık ve textBoxun AutoPostBack özelliğini false olayak set ettik. Bu durumda bu olayın tetiklenmesi için Immediate Response Event gerekecektir (bir butonun click lenmesi gibi.)
Bu durumda gerçekleşecek olaylar için aşağıdaki sıralamadan söz edebiliriz.
• Page.Init
• Page.Load
• TextBox.TextChanged
• Button.Click
• Page.PreRender
• Page.Unload
Automatic Data Binding
Bildiğimiz gibi Asp.NET in klasik veritabanı işlemlerimizi kod yazmadan gerçekleştirebilmemiz için bize sunduğu bir takım DataSource kontrolleri vardır. Bu kontroller update delete insert select gibi veri tabanı işlemlerini yukarda belirttiğimiz sıralamanın PreRender aşamasından önce kotarırlar ve PreRender olayondan sonra webformda gerekli değişimler olur. Kontrollerin ve diğer olayların oluşmasından sonraki adımda yer aldıkları için datasource ile getirilen ya da modifiye edilen data ya bu kontrollerden ve olaylardan ulaşılmaz. PreRender den sonra HTML çıktısı üretilip istemcitye gönderilmektedir. Sayfamızda gerçekleşmesini istediğimiz (client tarafından görülecek) en son değişiklikleri bu olayın içine yazarız.
Clean Up
Bu aşama sayfanın hayat döngüsündeki son aşamadır.HTML kodu render edildikten sonra bu aşamaya geçilir ve Page.Unload olayı tetiklenir. oluşturulan HTML çıktısı değiştirilememekle birlikte sayfada kullanılan objeler hala hayattadır ve biraz sonra garbage collector tarafından infaz edilmeyi beklemektedirler. Bu aşamada kullanılmış olan nesneler dispose edilerek. Sayfanın yaşamı tamamlanmış olur.