İlginizi Çekebilir
  1. Ana Sayfa
  2. ASP.Net
  3. ASP.Net Web Forms URL Routing Nedir ? Nasıl Uygulanır ?

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

one cikan
Ruijie Teknoloji Günü

Her ne kadar günümüz web geliştirme mimarisindeki popülarite 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 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ı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

 

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

Ruijie Teknoloji Günü
Yorum Yap

Yazar Hakkında

Elektrik Bilgisayar Mühendisliği Tezli Yüksek Lisans programı mezunuyum. Bir Vakıf üniversitesinde 2016 yılı itibariyle Bilgisayar Mühendisi 2020 yılı itibariyle ise Ofis Yöneticisi mühendis olarak çalışmaktayım.  Başlıca uzmanlık alanlarım arasında Asp.Net Web Forms, Asp.Net MVC, .Net Core, C# ve SQL Server gelmektedir. Çeşitli AB destek projelerinde yazılım sorumlusu olarak görev yapıyor ve çalışmalarımı Secure Design Pattern, Yazılım Güvenliği, Siber Güvenlik, Bilgi Güvenliği konularında sürdürüyorum. Asp.net ile proje geliştirme isimli kitabın yazarıyım.

Yorum Yap

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.