Bu yazı, özellikle blog uygumaları yazanlar için oldukça önemli olan thumbnail image (küçültülmüş resimler) oluşturmak ile ilgili.

Normalde .NET Framework içerisinde bu işi Image objesinin metodlarından biri olan GetThumbnailImage() metodunu kullanarak tek satırda halletmek mümkün. Ancak bu yöntemi kullanmışsanız, oluştuduğu thumbnail resimlerinin genelde düşük (bazen de berbat) kalitede olduklarını görmüşsünüzdür. Yazımda bu sorunu ortadan kaldıran ve resim kalitesine önem veren birçok kişinin GetThumbnailImage() metodu yerine tercih ettikleri başka bir yöntemi göstereceğim. Göstereceğim yöntemi kullanarak JPG, PNG, GIF gibi çok kullanılan formatların hepsi için kaliteli thumbnail'ler oluşturabileceksiniz. Ayrıca GetThumbnailImage() metodunun neden her zaman iyi sonuçlar vermediğinden de kısaca bahsedeceğim.

SQL Server kullanan web uygulamaları geliştiriyorken, herhangi bir sorguyu uygulamaya ait olan tüm tablolar veya tüm veritabanları üzerinde çalıştırmayı istemek çok seyrek karşılaşılan bir durum değil. Buna verilebilecek en yaygın iki örnek muhtemelen bir veritabanı içerisindeki tüm tabloları silmek ve tüm tabloların collation değerini değiştirmektir. Benzer şeyleri bir SQL Server instance üzerindeki tüm veritabanları için yapmak da istenebilir.

Bir çok kişinin böyle durumlarda çözüm olarak gördüğü şey söz konusu sorguyu her tablo/veritabanı için bir kez çalıştırmaktır. Ancak bu yöntemin aslında bir çözüm olmadığı tablo/veritabanı sayısı arttıkça gittikçe kullanılamaz bir hal almasından belli olmaktadır.

Konu hakkında biraz daha bilgi sahibi olan kişilerin aklına ise büyük ihtimalle cursor kullanmak ya da verdikleri sorguyu söz konusu olan her tablo/veritabanı için bir kez çalıştıracak olan bir stored procedure yazmak gelecektir. Her iki çözüm de yukarıdaki paragrafta bahsettiğim çözüme göre çok daha mantıklı olmakla birlikte, basit işler için karmaşık ve gereksizdir. Öyle olmasının sebebi ise SQL Server'daki master veritabanı içerisinde bu tür işlemlerin kolaylıkla yapılmasını sağlayacak stored procedure'lerin  zaten tanımlanmış olmasıdır. Bu yazımda, bahsetmiş olduğum işlemleri tek komutla yapmanızı sağlayan, çok işe yarar bulduğum sp_Msforeachtable ve sp_MSforeachdb prosedürlerinden bahsedeceğim.

Günümüzde, sitelerin en büyük ziyaretçi kaynakları Google, Bing gibi arama motorları. Sitelerin arama motorlarında üst sıralarda gözükebilmleri için yapılabilecek bir çok şey var.  Ancak bunlardan bazıları var ki, artık yapmak bir zorunluluk halini almış durumda. Buna en büyük örnek de Url Rewriting (URL'leri yeniden yazmak). Anlaşılır, kullanıcı dostu URL'ler sadece arama motoru optimizasyonu (SEO) için değil, sitenin navigasyonunun daha anlaşılır hale gelmesini sağladığı için önemli.

URL Rewriting dendiğinde muhtemelen birçok web programcısının aklına ilk gelen şey Apache sunucularda kullanılan mod_rewrite özelliğidir. Ancak bu özellik doğal olarak sadece PHP ile yazılmış olan uygulamalarda kullanılabiliyor. Bu yüzdne Windows sunucular üzerinde çalışacak olan ASP.NET ile yazılmış web uygulamalarında URL Rewriting işlemini yapmak yakın bir zamana kadar Apache'deki gibi kolay değildi. Çünkü IIS'in URL Rewriting yapmayı kolaylaştıracak bir özelliği yoktu. Ancak artık durum değişti.

Microsoft'un yakın bir zamanda çıkarmış olduğu URL Rewrite modülü sayesinde IIS 7 kullanıcıları da artık kolayca URL Rewriting yapma imkanına kavuştu. Bu yazımda Microsoft Url Rewrite modülünün IIS 7 üzerine kurulumunu ve yazım kurallarının doğrudan web.config içerisinden nasıl tanımlandığını örnekler ile birlikte anlatacağım.

Sadece Türkiye'den değil, tüm dünyadan ziyaretçi almasını planladığınız "global" bir siteyi kodlamak, her ne kadar dışarıdan bakıldığında sadece .NET Framework içerisinde bulunan lokalizasyon ile ilgili bir kaç fonksiyonu kullanmakla çözülecek bir problem gibi görünse de, iş uygulamaya geldiğinde gayet kolay bir şekilde Çin işkencesine dönüşebiliyor. Çünkü iş farklı dillerin karakterlerini düzgün bir şekilde gösterecek encoding kullanmakla bitmiyor. Her ülkenin posta kodları, tarih ve saati yazış şekilleri farklılık gösteriyor. Özellikle sitede ziyaretçilerden bu tip verileri alıp veritabanına kaydetmek, bazen de aralarında karşılaştırma yapmak gerekiyorsa...