Arşiv

ASP.NET kategorisi için arşiv

ASP.NET ile Mobil Kullanıcıları Mobil Sayfaya Yönlendirmek

27 Şubat 2010 1 yorum

ASP.NET 4.0 ile aşağıdaki kod yardımıyla mobil kullanıcıları algılayabilir ve uygulamanın mobil sayfasına yönlendirebilirsiniz;

private static readonly Regex MobileRegex = new Regex(@"(nokia|sonyericsson|blackberry|IPHONE|samsung|sec-|windows ce|motorola|mot-|up.b|midp-)", RegexOptions.IgnoreCase | RegexOptions.Compiled);

public bool IsMobile
{
	get
	{
		HttpRequest r = HttpContext.Current.Request;

		if (r.Browser.IsMobileDevice)
			return true;

		if (!string.IsNullOrEmpty(r.UserAgent) && MobileRegex.IsMatch(r.UserAgent))
			return true;

		return false;
	}
}

protected void Page_Load(object sender, EventArgs e)
{
	if (IsMobile)
		Response.RedirectPermanent("Mobile.aspx", true);
}

ASP.NET 4.0 ile Temizlenmiş web.config Dosyası

ASP.NET 3.0 ve ASP.NET 3.5 ile web.config Dosyası

ASP.NET yıllar içerisinde gelişti, buna bağlı olarak web.config dosyasında tutulan ayarlarda da gözle görülür bir artış oldu. .Net Framework 3.5 SP1 kurulu olan bilgisayarımda yeni oluşturduğum bir Web Uygulamasının web.config dosyası aşağıdaki gibi oluyor.

< ?xml version="1.0"?>

		

				

Web uygulamasına özgü ayarlar yapılmaya başlandığında (ConnectionStrings, Authentication, AppSettings, vs) web.config dosyası da büyümeye ve karmaşıklaşmaya devam ediyor. Fakat web uygulamalarının büyük oranında bu ayarların birçoğu değiştirilmeden bırakılır.

ASP.NET 4.0 ile web.config dosyamız, ilk versiyonlarda olduğu gibi sadeleşiyor.

Visual Studio 2010‘da Empty ASP.NET Web Application şablonu ile yeni bir web projesi oluşturursanız, web.config dosyası aşağıdaki gibi oluşturuluyor;

< ?xml version="1.0"?>

		
				
		
		
			
		

İlk konfigürasyon satırı ASP.NET uygulamasının debug edilebileceğini ve Framework versiyonunun 4.0 olduğunu bildiriyor.

İkinci konfigürasyon satırı ise, web uygulamasının IIS7 üzerinde host edildiği durumlarda URL Rewrite yapabilmek için gerekli.

ASP.NET 4.0 SEO Geliştirmeleri

Search Engine Optimization (Arama Motoru Optimizasyonu), internette yayınlanan her site için çok önemlidir. Günümüzde sitelerin trafiklerinin büyük oranı arama motorlarından gelmektedir. Web sitelerinin arama sonuçlarında daha iyi yer edinmeleri alacakları trafik açısından gittikçe daha önemli hale gelmektedir.

Web sitenizin SEO-Uyumluluğunu Google Analytics ile kolaylıkla ölçebilirsiniz.

ASP.NET 4.0 SEO Geliştirmeleri

ASP.NET 4.0 SEO uyumluluğu ile ilgili olarak bir dizi yenilik-geliştirme ile birlikte geliyor. Bunlardan bazıları;

  • Yeni Page.MetaKeywords ve Page.MetaDescription özellikleri
  • ASP.NET Web Forms’ta yeni gelen URL Yönlendirme (URL Routing) desteği
  • Yeni Response.RedirectPermanent() methodu

Bu özellikleri inceleyelim;

Page.MetaKeywords and Page.MetaDescription Özellikleri

Arama motorlarının crawler dediği programcıklar, sitenizi indekslerken, <head> tagı içerisinde yeralan <meta name=”keywords”> ve <meta name=”description”> taglarını kullanarak sitenizi kategorize eder.

<head runat="server">
	<title>Örnek Sayfa</title>
	<meta name="keywords" content="aspnet, engin polat, geliştirme, framework" />
	<meta name="description" content="ASP.NET 4.0 ile yeni gelen özellikler" />
</head>

ASP.NET 4.0′dan önce, bu taglara programatik olarak erişmek mümkün değildi. ASP.NET 4.0 ile birlikte aşağıdaki kodları yazabiliyoruz;

public void Page_Load(object sender, EventArgs e)
{
	Page.Title = "Örnek Sayfa";

	Page.MetaKeywords = "aspnet, engin polat, geliştirme, framework";
	Page.MetaDescription = "ASP.NET 4.0 ile yeni gelen özellikler";
}
<%@ Page Title="Örnek Sayfa"
	Keywords = "aspnet, engin polat, geliştirme, framework"
	Description = "ASP.NET 4.0 ile yeni gelen özellikler"
	CodeBehind = "OrnekSayfa.aspx.cs"
	Inherits = "OrnekWebSitesi.OrnekSayfa" %>

Yukarıdaki kodlar sayesinde Page sınıfının Keyword ve Description özelliklerine programatik olarak erişmek mümkündür.

ASP.NET Web Formlarında URL Yönlendirme (URL Routing)

URL Yönlendirme özelliği ilk olarak ASP.NET 3.5 SP1 ile gelmişti ve ASP.NET MVC ile zaten kullanabiliyorduk. URL Yönlendirme özelliği sayesinde, web uygulamasına gelecek tüm isteklerin fiziksel dosyalara gelmesi zorunluluğu ortadan kalkıyor. Artık aşağıdakiler gibi Arama Motoru Uyumlu (SEO – Friendly) URL’ler tanımlayabiliyoruz;

http://www.orneksite.com/sayfa.aspx?id=5
yerine
http://www.orneksite.com/sayfa/hakkinda

veya

http://www.orneksite.com/urunler.aspx?kategori=yazilim
yerine
http://www.orneksite.com/urunler/yazilim

ASP.NET 4.0 URL Yönlendirme (URL Routing) ile ilgili detaylı bir yazıyı yakında yayınlayacağım.

Response.RedirectPermanent() methodu

Web uygulamalarımızda, belli durumlarda akışı başka bir sayfaya yönlendirmek sıklıkla yaptığımız birşeydir. ASP.NET ile genellikle Response.Redirect() method’unu kullanırız. Aslında Response.Redirect() method’unun yaptığı şey, browser’a HTTP 302 (Temporary Redirect – Geçici Yönlendirme) sonucu döndürmektir. Böylece browser yönlendirmek istenen sayfadan akışa devam eder.

Arama motorlarının sayfaları indexlemeye yarayan crawler uygulamaları, bir sayfadan diğerine geçici olarak yönlendirme olduğunu gördüğünde (HTTP 302 mesajı) akışa yeni sayfadan devam etmez. Bu da sitenizde bulunmasına rağmen indexlenmeyen sayfalar oluşmasına yol açar.

ASP.NET 4.0 ile birlikte Response.RedirectPermanent() method’u geliyor. Bu method çağırıldığında, browser’a HTTP 302 mesajı yerine HTTP 301 (Moved Permanently – Kalıcı Olarak Taşındı) mesajı döndürür. Crawler’lar, HTTP 301 mesajı gördüklerinde akışa yeni sayfadan devam ettikleri için, web sitesinin tamamı indexlenecektir.

Response.Redirect(“YeniSayfa.aspx”); // HTTP 302 mesajı ile YeniSayfa.aspx’ten akış devam eder. Crawler indexlemez.

Response.RedirectPermanent(“YeniSayfa.aspx”); // HTTP 301 mesajı ile YeniSayfa.aspx’ten akış devam eder. Crawler indexler.

ASP.NET MVC ile kullanılmak üzere Response.RedirectToRoutePermanent() methodu geliyor.

Response.RedirectToRoute(“Urunler-Listele”, new { kategori = “yazilim” }); // HTTP 302 mesajı döner. Crawler indexlemez.

yerine

Response.RedirectToRoutePermanent(“Urunler-Listele”, new { kategori = “yazilim” }); // HTTP 301 mesajı döner. Crawler indexler.

Sonuç olarak, ASP.NET 4.0 Arama Motoru Dostu ( SEO – Friendly ) uygulama yazmayı kolaylaştıran araçlara sahip olarak geliyor.

Kısa Sınav – 10

ASP.Net ile web uygulaması geliştiriyorsunuz.

web.config dosyası içerisine, ConnectionString’lerinizi yazdınız.

Güvenlik endişelerinden dolayı, web.config dosyanızın ConnectionStrings alanını şifrelemek istiyorsunuz.

Konfigürasyon dosyasını şifrelemek için hangi .Net tool’unu kullanmalısınız?

  • caspol.exe
  • installutil.exe
  • aspnet_compiler.exe
  • aspnet_regiis.exe

Sorunun doğru cevabı için; Devamını oku…

PDC 2009′da Silverlight 4 Beta yayınlandı

18 Kasım 2009 tarihinde, Microsoft PDC’09 (Microsoft Proffessional Developers Conference 2009) konferansında konuşmacı Scott Gutherie, Silverlight 4 Beta’nın yayınlandığını duyurdu.

Resmi sitesi silverlight.net‘te yer alan şu sayfadan ayrıntılı bilgiye ulaşabilirsiniz.

Channel9′da yeralan video‘dan yenilik olarak nelerin geleceğini izleyebilirsiniz.

Yeniliklerden kısaca bahsetmek gerekirse;

  • Yazdırma ile ilgili yenilikler
  • Zengin Metin Alanı kontrolünün eklenmesi
  • Datagrid üzerinde kolonlara otomatik genişlik verilebilmesi ve Kopyalama desteği
  • Fare tekerlerine gelen destek
  • Sağ tuş desteği
  • Windows’un panosuna erişim imkanı
  • Browser içerisindeki silverlight nesnesinin sürükle-bırak tekniğinde bırakma noktası olarak belirlenebilmesi
  • Webcamerası ve Mikrofon desteği
  • PNG dosya türünün tüm formatlarına tam destek
  • Out-Of-Browser moduna daha çok destek
  • WebBrowser kontrolü
  • İstemci bilgisayarın dosya sistemine erişim yeteneği
  • Google Chrome desteği
  • Multi-touch desteği

Listenin tamamına ve açıklamalarına buradan ulaşabilirsiniz.

Silverlight ekibi 4. versiyonun betasını yayınlarken, Expression Blend ekibi de boş durmamış ve Silverlight 4 çıktı üretebilen Expression Blend versiyonunun beta’sını yayınlamış.

Microsoft Download’da yer alan şu sayfadan Expression Blend Preview for .Net 4 versiyonunu indirebilirsiniz.

Asp.Net MVC 2 Beta yayınlandı!

17 Kasım 2009 tarihinde, Microsoft PDC’09 (Microsoft Proffessional Developers Conference 2009) konferansında konuşmacı Bob Muglia, ASP.NET MVC 2 Beta’nın yayınlandığını duyurdu.

Microsoft sitesinden ücretsiz olarak download edebilirsiniz.

MVC (Model – View – Controller) hakkında daha fazla yardım almak için; ASP.NET MVC sayfasını ziyaret edebilirsiniz.

MVC 2 Beta versiyonu, Visual Studio 2008 SP1 için toollar içeriyor, fakat Visual Studio 2010 için güncellenmiş tool’ları içermiyor, çünkü MVC 2 release versiyonu zaten VS2010 ile birlikte dağıtılacak.

Şu anda VS2010 Beta 2′de yer alan component’lar ile MVC 2 Beta’da yer alan component’lar uyumsuz oldukları için, VS2010 bu beta versiyonda desteklenmiyor.

ASP.NET MVC 2 Beta’da gelen yeni özelliklerden bazıları;

  • Render Action
  • AsyncController
  • Expression tabanlı Helper class’lar (TextBoxFor, TextAreaFor, vs..)
  • İstemci tarafında onay/kontrol mekanizmalarında yapılan geliştirmeler
  • Boş proje şablonu

Yayınlanmış beta versiyonla ilgili daha ayrıntılı bilgi için şuradaki dökümana bakabilirsiniz.

Aynı konuşmanın devamında Bob Muglia, bundan sonraki işlerinin, yılsonu gelmeden RC (Release Candidate) çıkartmak olduğunu söylüyor.

Asp.net’te web.config ile globalization

Web uygulamalarında, geliştirme yaptığınız bilgisayarınızda türkçe karakterleri düzgün görüyorsanız, fakat uygulamayı sunucuya publish ettiğinizde türkçe karakterlerde bozulma oluşuyorsa (özellikle ğ,ü,ö,ı,ş karakterlerinde); sorun büyük ihtimalle sunucunun dil ayarlarından kaynaklanıyordur.

Sunucunun dil ayarları ile uğraşmak yerine, web.config dosyasında yapacağınız küçük bir değişiklik ile, bu sorunun üstesinden gelebilirsiniz.

Yapılması gereken, System.Web node’ u içerisine;

<globalization fileEncoding="iso-8859-9" responseEncoding="iso-8859-9" />

tagını eklemek.