Merhabalar, Uzun zamandır bir makale serisi yazmak konusunda fikir alışverişi yapıyorum. Bu serilerden ilki ASP.Net 4.0 sürümü ile gelen yeni özellik olan Routing. Serimizin ilk makalesine heyecanla başlayalım.
Route bildiginiz üzre Yol demektir. Routing ise yönlendirme, gönderme anlamını taşır. ASP.Net 4.0 sürümünde kullanılan Routing ise isminin hakkını çok iyi veriyor
İlk olarak aklınızdaki soruları cevaplayalım daha sonra uygulama ile konuyu daha iyi kavrayacağınıza eminim.
Routing Nedir ?
Routing, ASP.Net Web Teknolojisinin 4.0 sürümü ile birlikte gelen bir eklentisidir.
Neden Routing’i Kullanmalıyız ?
İlk olarak neden öğrenmeniz gerekiyor ona cevap vereyim
Misal; bir web sitesi hazırladınız ve bu siteyi yayınlayacaksınız. Bu sitenin arama motorlarında (Google, Bing, Yahoo gibi) üst sıralarda çıkması için SEO OnPage(Sayfa İçi) Optimization dediğimiz işlem bloklarını kaliteli yapmalısınız. Bu işlem bloklarından biriside URL Optimization’dır. Yani URL’mizi arama motorları için anlaşılır hale getirmek. Routing’i kullanmanız için bir başka önemli neden ise sitenin programatik alt yapısını hazırlayan geliştiricinin karmaşık QueryString’ler ile kafasını karıştırmadan işlemlerini en kısa sürede halletmesini sağlamak olacaktır. Bir örnek verecek olursak eğer;
Query-String ile:
Default.aspx?MakaleKategori=2&Makale=1&Yaziadi=MakaleSerisi1
Routing ile:
2/1/MakaleSerisi
Bu şekilde hem geliştiricinin hem de kullanıcının kolay ve hatırlayıcı bir URL’ye sahip olmasını sağlıyoruz.
ASP ile 404 Hata Sayfası Kod Blogu hazırlıyorduk. Routing’de de bu işlemimi yapacağız ?
404 Hata Sayfası Kod Blogu içerisinde ki mantık aynen burada da işliyor fakat ASP.Net 4.0 Routing ile Global.asax dosyası işin içerisine karışıyor. Ufak bir kod blogu ile işimizi hallediyoruz. İlerliyen zamanlarda sırasıyla detaylı olarak bu konulara değineceğim.
Routing, Query-String’in papucunu dama mı atacak?
Aslında işe profesyonel yönden bakacak olursak biraz öyle
fakat Dünya üzerinde binlerce web geliştiricisi var bunların tamamı yönelemeyeceğine göre ve ufak uygulamalar için Query-String uygundur. Bu nedenle papucu dama atılacak veya atıldı demeyelim de, Rağbet eskisine oranla daha az seyredecek gibi görünüyor. Fakat bu kullanılmayacak anlamına gelmez. Bakarsınız belki daha fazla kullanılır.
Belli olmaz. Burada asıl vermek istediğim mesaj şu; Routing’i bütün geliştiriciler öğrensin ve her uygulamasında kullansın. Kullanımı da gayet basit, Query-String gibi yapılarla uğraşmaya gerek yok.
Soruları tamamladığımıza göre ufak bir uygulama ile konuyu daha iyi kavrayalım.
Uygulamamızı Oluşturalım

Uygulamamıza sayfalarımızı aşağıdaki resimdeki gibi ekleyelim

Default.aspx sayfamıza HyperLink ekleyelim

HyperLink kontrolümüzün NavigateUrl’sini aşağıdaki gibi ayarlayalım

Global.asax dosyamızı açalım ve gerekli kütüphanemizi ekleyelim

Global.asax dosyamızın içerisindeki Application_Start içerisine kodlarımızı yazalım.

Global.asax dosyamızın içerisindeki işlemlerimizi hallettik
islem.aspx Page_Load içerisinde Route bilgilerimizi yakalayalım.

Çalıştıralım ve adım adım neler olduğunu görelim.

Şimdi linkimizin üzerine gelelim ve statubar’da nereye yönleneceğine bakalım.

Linkimize tıklayalım bakalım islem.aspx sayfamızda neler olacak.

Gördügünüz gibi işlem.aspx sayfamızdan gelen parametreyi yakaladık ve ekranda gösterdik. Bu mantığı kavradığınızda artık yapamayacağınız hiçbirşey yoktur. Yapamadıysanız vazgeçmeyin asla. Defalarca kez deneyin mutlaka başaracaksınız.
Eğer yapamıyorsanız şu nedenlerden dolayı olabilir.
- Projenizi oluştururken 4.0 seçmemiş olabilirsiniz.
- Global.asax içerisinde kod blogunu Application_Start içerisine yazmamış olabilirsiniz.
- Yönlendirdiğiniz sayfa isimleri uyuşmuyor olabilir.
- System.Web.Routing namespace’yi eklememiş olabilirsiniz.
- Bana Ulaşın
erkanguzelkucuk(at)hotmail.com
Serinin yeni yazısında görüşmek üzere. Fikirlerinizi bana mutlaka ulaştırın. Bol uygulamalar ve sorunların çözümüne bol alternatifler. mutluluk, huzur ve yenilikler hep sizinle olsun 
Erkan GÜZELKÜÇÜK
INETA K12 Speaker