ASP.NET 4.0 Yenilikleri


ASP.NET 4.0 Web Form Yenilikleri

Bu makalemizde ASP.NET 4.0’la birlikte gelen Web Form yeniliklerini öğrenmeye çalışacağız.

ASP.NET’in her bir yeniliği (release oluşu), ASP.NET’i kullanarak web programlayan herkese çağrıda bulunuyor. (Deyim yerindeyse “ateş bizi çağırıyor.”) Yeniliklerin öğrenilmesi ve uygulanmaya başlanması eksik ya da gereksinim olarak görülmüş ve bu sebeplerden ortaya çıkmış yenilikler olduğundan en azından bir kez göz atıp kendi projelerimizde kullanıp kullanmayacağımız ya da kullanmamızı gerektirdiği alanları ölçüp tartmamızı sağlayacağından göz ardı edilmemeli diye düşünüyorum.

Ve 12 Nisan 2010 itibariyle görücüye çıkan ASP.NET 4.0 özellikle MVC kullanacaklar için çok büyük kolaylıklar sağlıyor. Elbette ki klasik Web Formlarına verdiği desteği esirgemiyor. İncelemeye çalışalım:

  • Page sınıfına Meta etiketleri eklendi,
  • Sayfa Görünümü için daha fazla denetim(control) eklendi,
  • Tarayıcıların kullanımı için kolaylıklar getirildi,
  • Yönlendirme işlemleri için yeni metodlar eklendi (bunun için Sem GÖKSU’nun makalesine bakabilirsiniz: ASP.NET 4.0 ile URL Routing),
  • HTML kodlarının da artık ID’lerle temsil edilebiliyor olması (bunun için Daron Yöndem’in makalesi okunabilir: ClientMode),
  • Persisting adı verilen ve DataControllerin seçilen satırına dayalı işlem yapmayı sağlayan özellik eklendi,
  • ASP.NET Chart Control’üyle ilgili yenilikler eklendi,
  • Arama ve filtreleme işlemlerini kolaylaştırmak için QueryExtender controlü eklendi.(Bu özellik daha sonra incelenecektir.)

Yenilikleri maddeledikten sonra tek tek özetlemeye çalışalım:

Meta etiketleri

ASP.NET 4.0’la birlikte Page sınıfına iki yeni özellik eklendi: MetaKeywords ve MetaDecription. Bu özellikler hem <head> etiketlerinin altında hem de Page direktiflerinin (@) altında kullanabilmektedir.

<head ID=”hd1″ runat=”server”>

<title>Meta Etiketleri</title>

<meta name=”keywords” content=”Keywordler” />

<meta name=”description” content=”sayfa açıklaması” /> </head>

Bu şekilde kullanılabilmesinin yanında daha önce belirttiğimiz gibi Page direktifleriyle de beraber çalışabilmektedir:

<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="Default.aspx.cs"
 Inherits="_Default"
 Keywords="Keywordler"     

Description="sayfa açıklaması" %> 

name="keywords" ile yapılan işlem Page.MetaKeywords,
 name="description kodlarıyla yapılan işlem Page.MetaDescription özellikleriyle eşleşir.

Content’lerin içine yazdığımız değerler, başta Google olmak üzere arama motorlarının ilgisini çeker.🙂

Sayfa Görünümü İçin Eklenen Yenilik (ViewStateMode)

ASP.NET 4.0’la birlikte gelen yeniliklerden biri de ViewStateMode özelliği. Enabled, Disabled ve Inherit değerlerini alabilen bu özellik, sayfa PostBack (sunucuya gidip geldiğinde) olduğunda bile ViewStateMode içindeki değeri tutabilmesi özellikle görünmesini istemediğimiz ya da performans açısından ikinci, üçüncü kez çalıştığında başımızı ağrıtan dertlerden bizi kurtarıyor.

Bu özelliğin diğer güzel bir yanıysa, Control’ün bulunduğu Panel \ PlaceHolder ya da X çerçevenin ViewStateMode’u Disable’ken içinde tuttuğu nesnenin kendine özgü bir ViewState’ni tutuyor olması. Bununla ilgili küçük bir örnek:

   <form id="form1" runat="server"> 
  <script runat="server"> 
      protected override void OnLoad(EventArgs e) { 
      if (!IsPostBack) { 
        lbl1.Text = lbl2.Text = "Dinamik Değer"; 
      } 
      base.OnLoad(e); 
    } 
  </script> 
  <asp:PlaceHolder ID="PlaceHolder1" runat="server" ViewStateMode="Disabled"> 
      Disabled: <asp:Label ID="lbl1" runat="server" Text="Hobaa" /><br /> 
    <asp:PlaceHolder ID="PlaceHolder2" runat="server" ViewStateMode="Enabled"> 
        Enabled: <asp:Label ID="lbl2" runat="server" Text="Hobaa" /> 
    </asp:PlaceHolder> 
  </asp:PlaceHolder> 
  <asp:button ID="Button1" runat="server" Text="Git Gel" onclick="Button1_Click" /> 
  </form>

   

PlaceHolder1’in ViewStateMode’u Disabled, PlaceHolder2’in ViewStateMode’u Enabled durumda ve ikisinin de Text’i “İlk değer”. Sayfayı tarayıcıda görüntülediğimizde karşımıza iki Label gelecek ve çıktısı aşağıdaki gibi olacaktır:

Git Gel isimli Buttonumuza tıkladığımızda çıkan sonuca bakalım:

Bu konuyla ilgili yine Daron Yöndem’in makalesini inceleyebilirsiniz: ASP.NET 4.0’da full ViewState kontrolü!

Tarayıcı Kolaylıkları

Tarayıcı kolaylıkları, tarayıcıdan tarayıcıya değişen Java Script özellikleri, desteklenmeyen kodlar ya da benzeri sorunlar için getirilen kolaylıklardır. Cep telefonları da düşünülerek geliştirilen bu özelliklerin neleri desteklediğine bakalım:

  • blackberry.browser
  • chrome.browser
  • Default.browser
  • firefox.browser
  • gateway.browser
  • generic.browser
  • ie.browser
  • iemobile.browser
  • iphone.browser
  • opera.browser
  • safari.browser

Bu dosyalar C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Browsers altında tutulurlar.

HttpBrowserCapabilities nesnesiyle temsil edilen bu yetenekler, System.Web.dll kütüphanesinden çağırılr ve HttpCapabilitiesBase sınıfından türetilmiştir. Örneğin web sayfasının açıldığı client’a ait bilgileri bulalım ve ekrana yazdıralım:

System.Web.HttpBrowserCapabilities browser = Request.Browser;
string s = "Browser Capabilities\n"
+ "Type = " + browser.Type + "\n"
+ "Name = " + browser.Browser + "\n"
+ "Version = " + browser.Version + "\n"          

+ "Major Version = " + browser.MajorVersion + "\n"
+ "Minor Version = " + browser.MinorVersion + "\n"
+ "Platform = " + browser.Platform + "\n"         

+ "Is Beta = "  + browser.Beta + "\n"
+ "Is Crawler = " + browser.Crawler + "\n"
+ "Is AOL = " + browser.AOL + "\n" 

+ "Is Win16 = " + browser.Win16 + "\n"
+ "Is Win32 = " + browser.Win32 + "\n"
+ "Supports Frames = " + browser.Frames + "\n"

+ "Supports Tables = " + browser.Tables + "\n"
+ "Supports Cookies = " + browser.Cookies + "\n"
+ "Supports VBScript = " + browser.VBScript + "\n" 

+ "Supports JavaScript = " + browser.EcmaScriptVersion.ToString() + "\n"
+ "Supports Java Applets = " + browser.JavaApplets + "\n"
+ "Supports ActiveX Controls = " + browser.ActiveXControls  + "\n";
TextBox1.Text = s;  

Bu kodlar yardımıyla HttpBrowserCapabilities’den türetilen browser nesnesi client’a ait tüm bilgileri getiriyor.

Mobile tarayıcılar için System.Web.Mobile.dll’inde MobileCapabilities sınıfı bulunuyor. HttpBrowserCapabilities sınıfından türetilen bu sınıf, mobile tarayıcının desteklediği html \ wml gibi teknolojileri bulup ona göre hareket etmemizi sağlayabiliyor.

Persisting

Persisting özelliği, şimdilik GridView ve ListView nesnelerinde EnabledPersistSelection olarak eklenmiştir. Bir satırın seçilmesine olanak sağlayan ve sunucuya gidip geldiğinde bile (PostBack) seçili satırın kalmasını sağlayan ve üzerinde işlem yapmaya olanak sağlayan bu yenilik System.Activities.Statements isim uzayında yer alıyor ve NativeActivity sınıfından türetilmiştir. Kullanımı aşağıdaki gibidir:

<asp:GridView id="gridPersist" runat="server" EnablePersistedSelection="true">
</asp:GridView>   

Çalıştığı platformlarsa; Windows 7, Windows Vista, Windows XP SP3, Windows Server 2008, Windows Server 2003.

ASP.NET 4.0 Chart

ASP.NET 4.0’da Chart kotrole eklenen özelliklere bakıldığında ona kıyak geçildiği söylenebilir.🙂 Hemen eklenen yeniliklere bakalım:

(resim asp.net’ten alıntıdır.)

35 yeni grafik türü,

Sınırsız sayıda grafik alanı, başlık, açıklama ve gösterge,

3 boyutlu grafik türleri desteği,

Yeni çubuklar, derecelendirmeler ve logaritmik ölçeklendirmeler,

50’den fazla finansal formül,

Basitleştirilmiş veri bağlama özelliği,

Genel olarak kullanılan standart tarih, saat ve para formatları desteği,

Olaylar için AJAX desteği,

Durum yönetimi.

Chart kontrolleriyle ilgili Microsoft Belgelerine şu adresten ulaşabilirsiniz: Microsoft Chart Controls for .NET Framework Documentation

Şimdi basit bir 3 boyutlu grafik yaratalım (bu örnek ASP.NET web sitesinden alıntıdır.):

  <asp:ChartArea Name="ChartArea1"> 
  <area3dstyle 
      Rotation="10" 
      Perspective="10" 
      Enable3D="True" 
      Inclination="15" 
      IsRightAngleAxes="False" 
      WallWidth="0" 
      IsClustered="False" />       

</asp:ChartArea> 

Bu grafiğin çıktısı aşağıdaki gibi olacaktır:

Umarım yararlı olur.

Hoşçakalın.

Kaynakça

http://www.asp.net/learn/whitepapers/aspnet4

http://weblogs.asp.net/scottgu/archive/2008/11/24/new-asp-net-charting-control-lt-asp-chart-runat-quot-server-quot-gt.aspx

http://www.asp.net/aspnet-4/videos/aspnet-4-quick-hit-persistent-gridview-row-selection

Hakkında Mehmet KAPLAN
mehmet.kaplan@hotmail.com.tr https://mehmetkaplan.wordpress.com/mehmetkaplan/

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: