ASP.NET 2.0 Projenizi AJAX Özellikli Yapmak
Elinizde hâlihazırda bulunan ASP.NET 2.0 projenizi AJAX özellikli proje haline getirebilir misiniz?
Makalemde bu konuyu inceleyeceğiz.
Sorunun kısa cevabı evet’dir.
Aslında bu iş yeni bir AJAX projesi oluşturmaktan pek farklı değildir.
Diğer bir ifadeyle bu işlem oldukça kolaydır.
İsterseniz en baştan gidelim ve öncelikle klasik anlamda bir sayfa geliştirelim.
ASP.NET 2.0 Sayfası
Bildiğiniz gibi klasik bir aspx sayfası server’dan istem yaptığında postback özellikli çalışır. Diğer bir ifadeyle sayfanın tamamı refresh edilir veya yenilenir.
İşte size bir örnek:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI" TagPrefix="asp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<table bgcolor="#99ccff">
<tr>
<td style="width: 100px; height: 3px">
Ad:</td>
<td style="width: 100px; height: 3px">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td style="width: 100px">
Soyad:</td>
<td style="width: 100px">
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td style="width: 100px; height: 21px">
</td>
<td style="width: 100px; height: 21px">
</td>
</tr>
</table>
<asp:Button ID="Button1" runat="server" Text="Button" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><br />
<br />
</form>
</body>
</html>
Sayfamız iki metin kutusu, bir buton, bir label dan oluşuyor. Şimdi butonu tıkladığımızda label kontrolüne o anki zaman atanacak ve sayfada gösterilecek.

Sayfada butona her tıklamada saat değişiyor.
İşte bu klasik anlamda bir ASP.NET uygulamasıdır.
Bu kodlar, bildirimler daha önceden yazılmış ve elinizde böyle bulunuyor olabilir.
Ama biz, mevcut projemizde kaynaklardan tasarruf etmek isteyip sayfanın bu kısmını AJAX özellikli yapmak isteyebiliriz.
Yani sadece giriş yordamının güncellenmesini isteyip sayfanın diğer kısmının boşuna işlenmemesini isteyebiliriz.
Bunun için birkaç ilave yapmalıyız. Aslında bu işlem en baştan bir AJAX uygulaması geliştirmekten farklı değildir.
Bunun için, sayfamızın ilgili birimlerini AJAX kontrolleri içinde tanımlamalıyız.
Öncelikli olarak ScriptManager Kontrolünü sayfamıza eklemeliyiz:

Daha sonra güncellenmesini istediğimiz kontrolleri UpdatePanelin içine taşımalıyız:

Hatırlayacağınız gibi yeni bir AJAX uygulaması geliştirirken de aynı yöntemleri izliyorduk.
Bu haliyle kontrollerimiz AJAX özellikli oldu. Bu mantıkla, projemizde bulunan diğer sayfalardaki kontrolleri de AJAX Kontrolleri içine taşıyıp uygulamamızı AJAX özellikli yapabiliriz.
web.config Bildirimleri
Ancak bir projenin tam anlamıyla AJAX özellikli bir proje haline gelmesini istiyorsak, web.config dosyamızda da bazı bildirimlerde bulunmamız gerekiyor.
Diğer bir ifadeyle web.config dosyamızı da AJAX özellikli yapmalıyız.
Peki nedir bu bildirimler?
Oldukça fazla. Burada izlenecek en iyi yöntem, AJAX özellikli yeni oluşturulmuş bir projenin bildirimlerini alıp, klasik özellikteki web.config dosyamıza eklemektir.
Yapmamız gereken sadece bu. Ancak dikkat etmemiz gereken, bildirimleri doğru biçimde eklemektir.
Mevcut web.config dosyanızda projenizle ilgili, veritabanı bağlantı stringleri, üyelik bilgileri gibi kritik bildirimler olabilir.
Bundan dolayı yeni AJAX web.config dosyasını elinizde bulunan web.config dosyasının yerine getiremeyebilirsiniz.
Bunun yerine AJAX bildirimlerini mevcut dosyanızda ilgili yerlere ilave etmelisiniz.
Örneğin <configuration> </configuration> bildirimlerinin arasına

Elementlerini eklemelisiniz.
Aynı şekilde, <system.web> </system.web> arasına


bildirimlerini eklemelisiniz.
Ayrıca web.config sayfasına normal bir ASP.NET web.config sayfasından farklı aşağıdaki bildirimleri de ilave etmelisiniz:

Bütün bunların alt elementlerini ve detaylarını yeni oluşturulmuş AJAX özellikli web.config dosyasında bulabilirsiniz.
Böylece projeniz web.config dosyanızda dahil olmak üzere bir AJAX projesi özelliği kazanır.
Şimdi sayfamıza UpdatePanel in dışında yine bir label kontrolü ekleyelim ve bu kontrole de aynen diğerinde olduğu gibi zamanı gösteren bir bildirim atayalım ve sayfa yükleme yordamına bağlayalım:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Label1.Text = DateTime.Now
Label2.Text = DateTime.Now
End Sub
Sayfa ilk çağrıldığında her iki label’ında aynı saati gösterdiğini; ancak butona her tıklamada, Label2 deki saatin değişmediğini ama Label1 deki saatin arttığını göreceksiniz.
