15 Ocak 2013 Salı

Asp.Net Url Routing Kullanımı

Bu yazımda Url Routing yapısının mimarisini ve kullanımı anlatacağım.Tabi Url routing'e geçmeden önce  Query String'den biraz bahsedelim.Query string Framework 4.0'dan önce projelerimizin vazgeçilmez veri  taşıma yöntemidir.

Örnek;
http://localhost:61802/?ID=30.11.2012
Şeklinde ID değişkenine değer yolluyorduk sonrada istediğimiz yerde değişkendeki değeri kullanabiliyoruz,Peki neden Url Routing kullanmalıyız;

  • Query String'ler sayfa aramasında indexleme işlemlerinde sorun çıkartması, Url Routing ise seo yapısı olduğu için arama motorlarında üst sıralarda, hızlı ve klasör bazlı indexleyebiliyor . 
  • Parametreler fazla oldukça işin içinden çıkılmaz hal alması. Url Routing'de belirli standartlarda yaptığımız için herhangi bir sorun çıkartmaması.
  • Query String Url'leri Kullanıcı tarafından karışık bir görüntüsü olması.

Url Routing Kullanımı
Öncelikle;
  1. New Project > Web > Asp.Net Empty Web Application ve framework 4.0 projesi olmasına dikkat ediyoruz,çünkü Url Routing framework 4.0 ile beraber geldi.
  2. Projemizde Sağ Tıklıyoruz > Add > New Item > Global Application Class(Global.asax) seçiyoruz.
  3. Global.asax dosyasını açtıktan sonra;
  4. Referance olarak aşağıdaki System.Web.Routing ekliyoruz ; 



5.Aşağıdaki gibi RouteCollection tipinden değişken alan metodu yazıyoruz bu metod urlleri register işlemi yapacak.buraya istediğimiz kadar url formatı ekleyebiliriz.







6.Sıra geldi metodu çağırmaya,metodu uygulamamız start olduğunda çağıracağız yani Application_Start metodunu kullanacağız bu metod,Uygulamamız start olduğunda ilk bu metod çalışır.
7.Url Routing işlemlerini tanımladıktan sonra nasıl kullanıcağımıza bakalım;
Sayfa İçerisinde Kullanımı

1. ilk olarak query string gibi değer atama işlemi yapalım.
 Yukarıda başlık değişkenine istediğimiz parametreyi atayabiliriz.burada dikkat etmemiz gereken nokta Türkçe karakterleri kullanmamalıyız.bunun için Türkçe karakterleri çeviren bir metoda ihtiyacınız olacak.

2.Atadığımız değerleri nasıl okuyacağımıza bakalım;
 RouteData.Values metodunu kullanarak değişkene atadığımız değeri alırız.Bu şekilde istediğimiz kadar url aracılığı ile veri taşıyabiliriz.


14 Ocak 2013 Pazartesi

WITH (NOLOCK) Hayat Kurtarır :)

NOLOCK Sql Server'da tablolarımızın kilitlenmesini(deadlock) olmasını engeller,normal şartlarda tablodaki crud işlemlerinde, örnek: update sorgudan cevap dönene kadar tabloyu lock(deadlock) eder başka bir işlem yapmaya izin vermez. Lock ettiği için farklı bir sorgudan değer bir önceki işlem bitmeden değer döndürmez.Bu durum orta ölçekli projelerde hissedilmese de büyük  projelerde başımızı belaya sokabilir.
Kullanımı;
select * from Customers WITH (NOLOCK)


Tablo adından sonra  "WITH (NOLOCK)" yazmamız yeterli olacaktır.fakat NOLOCK nerede kullanacağımız çok önemli buna çok dikkat etmeliyiz,eğer anlık işlemler çok ise NOLOCK kullanmanız bize avantajdan ziyade dezavantaja dönüşebilir.
Örnek verecek olursak E-ticaret sitesinden bir ürünü iki kişiye satma ihtimaliniz yüksek çünkü tabloyu lock etmediğiniz için birden çok kişi aynı ürünü satabiliriz.Tabi bu işlemleri "TRANSACTION" ile yapabilirseniz bir sıkıntı yaşamazsınız.

9 Ocak 2013 Çarşamba

EntitySet'i güncelleştirilemiyor çünkü bir DefiningQuery'si var ve öğesinde geçerli işlemi desteklemek için hiçbir üyesi mevcut değil.

 "EntitySet'i güncelleştirilemiyor çünkü bir DefiningQuery'si var ve <ModificationFunctionMapping> öğesinde geçerli işlemi desteklemek için hiçbir <UpdateFunction> üyesi mevcut değil." Hatası ile karşılaştıysanız.
Çözümü:insert veya update yaptığınız tabloda primary key olmamasından dolayı böyle bir hata almaktadır.tabloya primary key eklerseniz düzelecektir.

28 Kasım 2012 Çarşamba

The operating system returned the error '5(Access is denied.)' while attempting 'RestoreContainer::ValidateTargetForCreation' Hatası Çözümü

The operating system returned the error '5(Access is denied.)' while attempting 'RestoreContainer::ValidateTargetForCreation'  Hatası Çözümü;

Hata Açıklaması:
Bir yedek dosyasını bir SQL Server Instance' ına açmaya çalıştığınızda, eğer SQL Server Servisinizin, yedeği açmaya çalıştığınız klasör için gerekli izinleri yoksa bu hata mesajıyla karşılaşırsınız.

Çözümü:

SQL Server Configuration Manager > SQL Server 2012 Services >SQL Server Services Sekmesinde.
Çıkan pencereden Sql Server (MSSQLSERVER) üzerinde çift tıklıyoruz, Logon sekmesinde bulunan "Built-in account" seçeneğini Local System olarak değiştiriyoruz.

14 Nisan 2012 Cumartesi

SQL Server 2012 Sanal Lansman


SQL Server 2012 Sanal Lansman

Microsoft SQL Server 2012 ile daha ileri, daha gelişmiş, daha hızlı!

8 Mart 2012 tarihinde gerçekleşecek olan bu çevrimiçi etkinlik, SQL Server 2012 ile Yeni Veri Dünyasına katılmanıza olanak tanıyacak. Yalnızca Microsoft ürün ekipleriyle değil, aynı zamanda iş ortaklarımızla ve en yenilikçi müşterilerimizle de bir araya gelin. SQL Server 2012, bugün teknolojideki en geniş Veri Platformlarının bir parçasıdır. Sunduğu iş kritik güveni, yüksek hızlı performansı ve şaşırtıcı etkileşimli veri görselleştirmelerini keşfedin.

SQL Server 2012 Sanal lansmanımızda 14 tanesi yerel olmak üzere 45′in üzerinde oturumla SQL Server 2012 hakkında öğrenmek istediğiniz her şeye istediğiniz anda ulaşabileceksiniz.
SQL Server 2012′nin sunduğu iş kritik sağlamlık, çığır açan iş zekası ve size göre şekillenen bulut altyapısını hemen keşfetmek için SQL Server 2012 sanal lansmanımızı kaçırmayın.
Kayıt olmak için tıklayın...