Tabiyki bu 3 satır kod sunum katmanında yer alacak.1-2 gündür enterprise library üzerine makaleler okuyorum ve oldukça başarılı bulduğumu sölemek isterim : ) Bugunde konu hakkında ilk örneğimi yaparken, bunu makale olarakta aktarmak istedim zira yazacağım class'in ilerde tekrar kullanılabilir bir yapıda olacağını düşünüyorum.Eğer enterprise library nedir , data access application block nedir bilmiyorsanız bu örnekten önce bu konuda araştırma yapmanızı öneririm çünkü bu yazı bir anlatım değil sadece örnek niteliği taşımaktadır.

Oncelikli olarak bir web projesi açalım ve sayfamızı aşağıdaki şekilde tasarlayalım ;

 

Şimdi projemize IsMethodlari isimli bir class ekleyelim.Buraya 3'er kere overload edilmiş 2 method yazıcaz.1.si verileri connected ortamdan getirecek yani her seferinde veritabanına bağlanacak ve veriyi direk olarak db den çekecek. disconnected ortamdan gelecek veri ise bildiğiniz gibi dataset vasıtası ile ram e atılacak bizde her seferinde direk olarak db'den değil dataset den çalışarak verileri alıcaz.Eğer uygulamanızda, her zaman güncel olan verilere ulaşmanız gerekiyorsa dataset kullanmayın.

Önce uygulamamıza referanslardan Microsoft.Practices.EnterpriseLibrary.Data dll ini ekleyelim ve bu dll 'i class'imiza using satırı ile import edelim; Bundan sonra web.config dosyasının içerisinde uygulamamızda verileri çekeceğimz northwind veritabanı için Connection string 'i belirtelim.

burada providerName belirtmemiz önemli çünkü kullanılıcak olan veritabanının sql veritabanı olduğuna işaret ediyor.Yani aslına bakarsanız ilerde projenizi oracle gibi bir veritabanına taşımak isterseniz , size kolaylık sağlayacak bir yapıya sahip enterprise library.kullandığım dll deki class'lara ve methodlara biraz bakınca abstract factory tasarım desenininde kullanıldığını farkettim,yani buda providerName in işaret ettiği noktaya işaret ediyor.

 

methodun içindeki kodlar gayet anlaşılır belki dikkatinizi datatable ın load methodu çekmiş olabilir.kendisi datareader dan aldığı veriyi datatable a yüklüyor.oldukça kullanışlı : ) diğer bir belirtmek istediğim noktada executeReader 'ın sp parametre alabilmesi.şimdide disconnected ortamdan verileri getirmek için Database class 'ının  ExecuteDataSet methodunu kullanıcaz ve datasettende direk olarak datalist , gridView ve listcontrol'e setlenebilecek şekilde methodlarımızı overload ederek yazıcaz.

 

 

şimdi gelelim sunum kısmına.öncelikli olarak dataList ve GridView için verilerin eval ile html'e bağlanması gerekiyor.bütün kontroller için productName kolonunu getirelim.şimdi ise yazdığımız methodları kullanmaya geldi sıra.projenin başında söylediğimiz 3 satır kodu connected ortamdan verileri kontrollere setlemek için kullanalım bakalım...

 

 

verileri disconnected olarak getirmek isteseydikte şöyle bir 3 satır yazabilirdik : )

 

 şimdi 2sinden birini seçip sonucu görebiliriz..