ASP.Net Web Forms URL Routing Nedir ? Nasıl Uygulanır ?
  1. Anasayfa
  2. ASP.Net

ASP.Net Web Forms URL Routing Nedir ? Nasıl Uygulanır ?

1

Her ne kadar günümüz web geliştirme mimarisindeki popülarite Asp.Net MVC ve MVC Core tarafında yoğunlaşmış olsa da Web Forms ile uygulama geliştiren veya proje devamlılığı sebebiyle geliştirmelerine devam eden okurlarımız için bu bölümde Asp.Net Web Forms mimarisindeki Url Routing mekanizmasından bahsedeceğim.

Url Routing Nedir?

Asp.Net Web Forms mimarisinde QueryString yapıları sıklıkla kullanılmaktadır. QueryString yapısı ile URL üzerinden veri aktarımı yapılmak suretiyle sayfalar arası etkileşim sağlanmaktadır. QueryString ile ilgili yazımı buradan inceleyebilirsiniz. QueryString kullanımının dezavantajı olarak ifade edilmese bile göze hoş gelmeyen bir yanı bulunur. Bu da tahmin edeceğiniz üzere linklerdeki karmaşık ifadeler ve görülmemesi gereken ID türü değerlerdir. Bunları ortadan kaldırmak, kullanıcıya ve en önemlisi tarayıcıya daha kararlı ve kurallı linkler sunmak için URL Routing mekanizması yardımımıza koşmaktadır. SEO uyumluluğu ve Google için anlamlı ifadeler oluşturulması bakımından tarayıcıya daha hoş görünen linkler ifadesini kullanıyorum.

Url Routing Oluşturulması

URL Routing mekanizmasını tamamlanmış bir web forms uygulamasına istenilen bir aşamada uyarlamak mümkündür. Elbette tavsiye edilen projeyi geliştirirken eklenen her bir sayfa (web form) için bir taraftan da link yapısını Url Routing ile ayarlamaktır. URL Routing mekanizmasını çalıştırabilmek için öncelikle proje içerisinde eğer yoksa Global.asax eklememiz gerekiyor. Global.asax üzerinde proje çalıştırıldığında, durdurulduğunda, uygulama açıldığında, şöyle olduğunda böyle olduğunda gibi çeşitli metotlar bulunmaktadır. Application_Start isimli önceden oluşturulmuş olan Global.asax metodu içerisinde Routing ile ilgili işlemleri çağıracağız. Ayrıca sitelerde ziyaretçi sayısı, online ziyaretçi gibi işlemleri de bu metot ile kontrol edebiliriz.

Şimdi Url Routing işlemini gerçekleştirebilmek için Global.asax dosyasında bir adet metot oluşturalım. Metot ismine RouteYapilandir adını verebiliriz.

Resim-1

Resim-1’de yer alan metodu incelediğimizde RouteCollection parametresine ait MapPageRoute metodu ile URL şablolanlarının tanımlandığı görülmektedir. Bu tanımlamadaki şablon aşağıdaki gibi bir dizilime sahiptir.

Route.MapPageRoute(“Şablonun Adı”, “URL Şablonu”, “Şablonun Uygulanacağı Sayfa”);

 

Şablonu Global.asax dosyasında oluşturduktan hemen sonra yapılması gereken işlem yukarıda da bahsettiğim gibi Application_Start metodunda bu işlemi çalışır hale getirmek. Bunun için Global.asax dosyasındaki metotlardan en üst sırada bulunan Application_Start metoduna Resim-2’de yer alan kodlama yapılmalıdır.

Resim-2

 

RouteYapilandir isimli metot RouteCollection tipinden parametre alır. Yani yönlendirme işlemlerini RouteCollection tipi sayesinde yapabilmekteyiz. Bu işlemde yapıldıktan sonra geriye sayfaların çağırıldığı yerlerde linkleri düzenlemek kalıyor. Yani örneğin menü item’ları içerisinde Default.aspx yazan href alanında artık Giriş yazmalıdır. Çünkü route şablonu ile tüm sayfalara yeni bir takma isim verdik ve artık ilgili yerlerde bu yeni adlarıyla çağırmamız gerekiyor.

Web sitelerinde site hangi dil ile geliştirilmiş olursa olsun uzantıların .html olduğunu görmüş olabilirsiniz. Eğer böyle bir kullanım istiyorsanız öncelikle Asp.Net uygulamasının IIS tarafından .html uzantısının engellenmiş olup olmadığını kontrol etmelisiniz. IIS tarafında .html uzantılarını kullanabilmek için web.config dosyası içerisinde resim-3’de ki gibi bir düzenleme yapabilir veya benzer bir düzenleme ile yalnızca şu uzantıları çalıştır da diyebiliriz. Asp.Net temel güvenlik önlemlerini anlattığım bölüme buradan ulaşarak uzantıları yönetmekle ilgili bilgilerinizi tazeleyebilirsiniz.

Resim-3

 

Asp.Net uygulamasının .html uzantısı ile sorunsuz çalıştığından emin olduktan sonra URL Routing mekanizmasında değişiklik yapmadan yalnızca linkleri belirttiğimiz kısımlarda linklerin sonuna .html eklemek yeterli olacaktır. Örneğin Defaul.aspx yerine Giriş olarak route ettiğimiz yapı için Giriş.html olarak düzenleyebilirsiniz. Yazılım dünyasında her ne kadar artık destekleniyor olsa da değişken tanımlarından diğer tüm delegasyonlarda Türkçe karakter kullanmak hoş karşılanmayan bir alışkanlıktır. Türkçe karakterlerin sorun teşkil etmeyeceğini gösterebilmek için Giriş route yapısında Türkçe karakter kullandım fakat yine de ID, Kategori gibi değerlerinde geldiği QueryString linklerinde Türkçe karakter kullanılmaması iyi olacaktır.

 

Bu bölümde Asp.Net Web Forms uygulamalarında URL Routing mekanizmasını incelemiş olduk. Sonraki bölümlerde görüşmek dileğiyle.

 

 

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

 

TAGs: asp.net, asp.net url routing, asp.net route table, asp.net web forms url routing, asp.net web forms url yönlendirme

Bu İçeriğe Tepkin Ne Oldu?
  • 1
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 1
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Konya Teknik Üniversitesi Bilgisayar Mühendisliği Doktora programında tez dönemi öğrenciliğim devam etmektedir.İş hayatıma Vodafone'da Test Mühendisi olarak başladıktan sonra şuan bir üniversitede Sistem Uzmanı ve Siber Güvenlik Ofis Yöneticisi pozisyonunda çalışmaktayım.Başlıca uzmanlık alanlarım arasında Sistem yöneticiliği ve Siber Güvenlik gelmektedir.Asp.net ile Proje Geliştirme (2015), Bilgisayar Mühendisliğine Giriş (2020), Güvenlik Tasarım Desenleri (2022) kitaplarının yazarıyım.

Yazarın Profili
İlginizi Çekebilir

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Yorumlar (1)

  1. Hocam merhaba
    Url routing sorunsuz bir şekilde çalısıyor fakat
    projenin ilk açılış sayfası yani index.aspx hala uzantılı bir şekilde geliyor. Bunu nasıl düzeltebilirim
    Yardımcı olursanız sevinirim.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir