Monthly Archives: December 2010

ASP.Net MVC de Routes to Ignore

ASP.Net MVC Framework, ASP.Net uygulamalarına büyük kolaylıklar sağlamaktadır. ASP.Net MVC ‘un uygulamalarımıza katığı en büyük özellik(Bence) Routing’ dir. Routing ile sayfalarımız url adresini sayfa içeriği ile ciddi anlamda ilişkili hale getirebiliyoruz. ASP.Net MVC de Routing, Controller içerisinde bulunan ActionResult tipinde değer döndüren fonksiyonlar üzerinde çalışmaktadır. Bu fonksiyonlar erişim belirteci olarak public ve restfull olarak ise GET ya da POST gibi istemlere sahiptir. Routing konusun bu kadar önemli ve detaylı incelenmesi gereken bir konudur.

Bu yazımda ise birkaç hafta önce yaşadığım bir problemi ve çözümünü sizler ile paylaşmak istemekteyim. Söz konusu problem, ASP.Net MVC ile hazırlanan Web uygulamasının SEO ile ilgili işlemlerini gerçekleştirme aşamasında meydana gelmişti.

Yaşanan problem, ASP.Net MVC ile geliştirmiş olduğum Web uygulamasının, aramam motorlarının site içi indekslemesi için robot dosya ve site haritasının aramam motorlarına tanıtma aşamasında keşfettim. Yazının giriş bölümünde de bahsettiğim gibi ASP.Net MVC Routing sistemi Controller nesneleri içerisinde bulunan ActionResult döndüren fonksiyonların çağırması sonucunda içerikleri oluşturmaktadır. Örneğin Bing ya da google üzerine yaptığımız Robots dosya tanımı yaptığımızda, varsayılan Routing sisteminde hangi Controller nesnesi seçilmiş ise o nesne içerisinde buna bağlı olarak içerik üreten bir fonksiyon aramaktadır.

Örnek vermek gerekir ise arama çubuğuna http://www.ibrahimatay.org/robots.txt yazdığınızda Routing sisteminde varsayılan olarak tanımlanan Controller içerisinde robots fonksiyonun arayacaktır. Yapılan istem ile ilgili bir fonksiyon bulunmaması nedeni ile “Not Found 404” hatasını verecektir.

image

Yaşana bu durum, hazırlanan içerik yönetim sisteminin, arama motorları içerisinde istenildiği gibi yer bulmaması ve taşıdığı ürünü açısında, istenmeyen durumlar ortaya çıkmasına sebep olabilir. Her zaman olduğu gibi probleme çözümü üretmeliyiz.

Söz konusu durum sistem içerisinde bulunana robot dosya gibi static olarak istemlere cevap everecek dosyaları Routing sistemine tanıtmak olacaktır. Şimdi bu işlemi nasıl yapabileceğimizi inceleyelim. Bu için yeni bir ASP.Net MVC projesi oluşturalım.

image

Gerçekleştireceğimiz uygulamanın test etmek için örnek olarak sizde bir robot dosya hazırlayıp uygulamanın(Robot oluşturma ile ilgili olarak ise, Robot dosya nedir? Ne işe yarar? İsimi makalemi okumanız tavsiye ederim.) ana dizine ekleyelim. Söz konusu durum ile ilgili hazırlıkları tamamladık. Şimdi test amacı ile eklediğimizi robots.txt dosyasını ASP.Net MVC Routing sistemi nasıl tanımladığımızı inceleyelim.

public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”);
routes.MapRoute(“Default”, “{controller}/{action}/{id} “,
new { controller = “Home”, action = “Index”, id = UrlParameter.Optional });
routes.IgnoreRoute(“robots.txt”);
}

Yukarındaki kod parçasında, ASP.Net MVC standart oluşturulan bir ASP.Net MVC projesi de yer alan Global.asax içerisinde bulunan RegisterRoutes fonksiyonu yer almaktadır. RegisterRouting fonksiyonu içerisine routes değişkeni üzerinde gelen IgnoreRoute fonksiyonun kullanarak Web uygulamasının ana dizinde bulunan robots.txt dosyasının Controller nesnesinin içinde arasında çıkarıp dışarıdan erişebilinen bir dosya olduğunu tanımlamış olduk. Tanımlama işlemini gerçekleştirdikten sonra uygulamayı test edelim.

image

Bu yazımda uygulama geliştirme ve host etme aşamasında gözden kaçabilecek olan bir problemi çözümü üretmeye çalışmış olduk. Bu ve bunun gibi yaşanacak olan hataları önüne geçmek için bir IIS extension olan SEO Toolkit ve Url Rewrite araçları ile testler yapmanızı önermekteyim. Konu ile ilgili sorularınızı info@ibrahimatay.org eposta adresine yönetebilirsiniz.

İyi çalışmalar

IBRAHIM ATAY 

Robot dosya nedir? Ne işe yarar?

Web uygulamalarında site içinde bulunan Role yönetimi çok (Bu bir aramam motoru da olsa) önemlidir. Bu yazımda arama motorlarının sitenizle ile ilgili sınırlarını nasıl tanımlayabileceğimizi inceleyeceğiz.

image

Arama motorlarını Web uygulaması içerisinde bulunan sayfa içerikleri ve site alanında bulunan içerikleri indeksleyerek arama sonuçlarında, kullanıcılara sunmayı amaçlamaktadır. Arama motorları ile ilgili durum böyle olunca arama motorlarının anlayabileceği bir yöntem ile sınırlar tanımlamamız gerekmektedir.

Bu sınır tanımlama işlemlerini Robots dosya denilen dosya ve çeşitli bildirimler ile gerçekleştirmekteyiz. Robots dosya temelde text dosyada ibarettir. Robots dosya kullanımı ile ilgili bazı önemli maddeler bulunmaktadır. Bu maddeler aşağıda bulabilirsiniz.

  1. Robots dosyalar web sitenin ana dizininde olmak zorunlundadır.
  2. Web sitede bulunan alt dizinlerde bulunan Robots dosyalar bir şey ifade etmez.
  3. Alt dizinler de bulunan bir dosyanın indekslenmemesini istiyor iseniz bunu kök dizinde bulunan Robots dosaya ile yapmanız gerekmektedir.

Robots dosya amacını daha iyi anlamak için aşağıdaki resmi incelemeniz iyi olacaktır.

image Yazında da bahsettiğim gibi aramam motorları, Web sistemlerini indekslemek için geliştirilmiş sistemlerdir. Arama motorları da Web üzerinde bulunan içerik üreten sistemler olduğuna göre kendileri içinde sınırlar tanımlamaları gerekecektir. Aşağıda bazı Robots dosya adresleri bulunmaktadır.

Bazı örnek Robots dosya gördükten sonra robot dosya içerisinde tanımları nasıl gerçekleştirebileceğimizi inceleyelim.

Web alanı içerisinde bütün kullanıcılarının (bot servisleri gibi) istiyor isek, yıldız karakteri kullanmalıyız.

User-agent: * # bütün botları kapsasın

Web alanı içerisinde tüm dosyaları indekslemesini için izin veren örnek yıldız (*) karakteri kullanabilmekteyiz.

Allow: /*

Web alanında bulunan bazı klasörlerin indekslenmesini engellemek için ise;

Disallow: /cgi-bin/ # belirtilen klasörü botlar dan uzak tut.

Ya da tüm dosyalarının indekslemek için ise

Disallow: /* # bütün botları uzak tut.

Bazı Web siteleri içeriklerini gün içerisinde çok fazla değiştirmektedir. Bunun arama motorlarında haberdar olabilmesi ve indekslemesi için ise;

User-agent: *
Crawl-delay: 10 # 10 sn de bir Web alanında bilgi anlamsını sağlıyoruz.

Not: Robot dosya içerisinde açıklaması satırlarımızı ise # karakteri ile gerçekleştiriyoruz.

Bu yazımda Web uygulamaları için robot dosyanın önemini inceledik.konu ile ilgili olarak sorularınızı info@ibrahimatay.org eposta adresine yönetebilirsiniz.

İyi çalışmalar

IBRAHIM ATAY

Microsoft Visual Studio Scrum 1.0

image

Yazılım geliştirme aşamalarını başarılı ve ortaya çıkan ürünün amacına uygun olması adına, iş süreçleri kullanılır. Microsoft ‘un değişen konsepti ile birlikte iş süreçleri konusuna da değinmeye başladı. Bu konseptin en büyük göstergesi (Bence) Visual Studio Scrom Framework dür.

Geçtiğimiz dönemde 1.0 sürümü yayınlana Visual Studio Scrum 1.0, işleyişleri ve yazılan kod ile ilgili bir çok analiz gerçekleştirerek proje liderlerine yardımcı olmaktadır. Visual Studio scrom 1.0 sürümünü bağlantıdan (Visual Studio Gallery)edinebilirsiniz.

image

Visual Studio Scrom 1.0 yayınlanması aşamasında Channel9 üzerinde konu ile ilgili görseller yayınlanmıştır. Bu eğitim görsellerini aşağıdaki bağlantıda bulabilirsiniz.

  1. Introducing Visual Studio 2010-Scrum 10 – 1 (Channel9)
  2. Introducing Visual Studio 2010-Scrum 10 – 2 (Channel9)

Bu yazımda Microsoft ‘un iş süreçleri konusunda ataklarında biri olan Visual Studio Scrom 1.0 konusunda kısa bilgi vermeye çalıştım. Konu ile ilgili sorularınızı info@ibrahimatay.org eposta adresine gönderebilirsiniz.

İyi çalışmalar

IBRAHIM ATAY

Scrum Cheat Sheet

Scrum (çevik) konusunda bilgi ve tecrübelerimi artıma çabasındayım. Scrum konusunda yaptığım araştırmam sonucunda bazı Cheat Sheet notlarını topladım. Scrum konusunda yapmış olduğum bu araştırma sonucunda, eline geçen dokümanları sizler ile paylaşmak istemekteyim.

image

Scrom konusunda sizler altı adet Scrom Cheat Sheet paylaşmaktayım.

http://www.agile42.com/en/agile-info-center/scrum-cheat-sheet/

İyi çalışmalar

IBRAHIM ATAY

 

ASP.NET MVC 3 RC Sürümüne Bakış

Yine bir ASP.Net MVC eğitimi ile daha sizlerleyim. Geçtiğimiz dönemde ASP.Net MVC 3 RC sürümü yayınlanmış bulmaktadır. ASP.Net MVC 3 RTM olmadan konuya daha net bakabilmek ve kısa notlar alabilmeniz için NedirTV ailesi olarak “ASP.NET MVC 3 RC Sürümüne Bakış” isimli Webiner düzenlemiş bulunmaktayız.

aspnet-mvc-3-webcast

Konu ile ilgili olarak daha önce kaleme aldığım “ASP.NET MVC 3 Preview 1 Duyuruldu !!” ve “ASP.Net MVC 3 RC oldu !ASP.Net MVC 3 yenliklerine başlıklar halinde değinmeye çalışmıştım. Webinerimiz ile birlikte konuya pratik ve gerçek örnekler ile bakış atmamız ASP.Net MVC Framewok kullanıcıları için iyi olacaktır.

ASP.Net MVC 3 RC Sürümüne Bakış (Webiner bilgisi)  / http://nedirtv.com/webiner/26

Şimdiden konu ile ilgilene ya da merak eden arkadaşları ASP.Net MVC 3 RC Sürümüne Bakış Webinerine bekliyorum.

Saygılarımla

IBRAHIM ATAY