1.  

    image

    Merhaba arkadaşlar bir önceki makalemde enterprise Library ‘ e giriş anlamını taşıyan bir yazı hazırlamıştım ve genel olarak ne işe yaradığından bahsetmiştim. Bu yazımda ise Enterprise Library kullanılarak Data Access Application Blok Kütüphanesini nasıl kullanabileceğimiz konusunda örnekler gerçekleştireceğim.

    Şimdi bir web projesi açalım ve klasik olarak gelen default sayfasında GridView nesnesi atalım.

    image

    Şimdi çalışmamızda kullanmak amacıyla bir Connectionstring oluşturalım. Bunun için projemizde bulunan Web.config dosyasına sağ tıklayalım ve Enterprise Library Configuration diyelim.(İşlemlerimiz de görüldüğü gibi Enterprise Library sadece kod kütüphanelerinin dışında araçlardan da oluşmaktadır.)

    image

    Bu işlemi yaptıktan sonra gelen pencereden Connection String sekmesi altında yeni bir bağlantı adresi ekleyelim.

    image

    Bu yolu izledikten sonra yeni eklemiş olduğumuz bağlantı adresinin özelliklerine gelerek bağlantı ile ilgili değişikleri yapalım. Bu işlemden sonra örneğimize başlayalım. Örneğimize başlarken ilk olarak Microsoft.Practices.EnterpriseLibrary.Data.dll ve Microsoft.Practices.EnterpriseLibrary.Common.dll kütüphanelerini çalışmamıza referans edelim.

    İlk örneğimize gelim ve ne yapacağımızdan bahsedelim. Bu örneğimizde basit bir şekilde veritabanında bulunan Products tablosu içerisindeki ilk on kaydı bize gönderen bir SQL sorgusu veritabanına göndermekteyiz.

     

     

    Database db = DatabaseFactory.CreateDatabase("ConnectionString");

    DbCommand Dbcmd = db.GetSqlStringCommand("Select Top 10 ProductId,"ProductName,UnitPrice From Products");

    IDataReader rd = db.ExecuteReader(Dbcmd);

    DataTable table = new DataTable();

    table.Load(rd);

    GridView1.DataSource = table;

    GridView1.DataBind();

    Data Access Application Block nesnesini kullanırken öncelikle bir Database nesnesini oluşturmak gerekmektedir.Database nesnesinin bağlantı bilgisi vermek için DatabaseFactory static class kullamaktadır. DatabaseFactory sınıfında bulunan static metod olan CreateDatabase çağırarak config dosyada bulunan bağlantı adresini adını buraya yazdık.

    Not:DatabaseFactory sınıfı config dosyada bulunan bağlantı bilgisinin System.Configuration namespace kullanarak almaktadır. config dosyada sadece bir tane bağlantı adresi tanımlı ise burada CreateDatabase() metoduna, bağlantı adresinin ismini yazmaya gerek yoktur.

    Uygulamayı hazırladıktan sonra uygulamayı test edelim.

    image

    Hazırlamış olduğumuz kodlamada gördüğünüz gibi Net 2.0 ile birlikte gelen System.Data.Common namespace kullandık. Bu sayede ise veri kaynağından bağımsız bir şekilde işlemlerimizi sağlamış olduk, sadece bağlantı bilgisinde yer alan providerName kısmı ise hangi bağlantı namespace kullanarak bağlanıcağımızı karar verir.

    Not:Yukarıda bahsetmiş olduğumuz gibi System.Data.Common namespace kullansa da Data Access Application uygulama derleme aşasaında Microsoft.Practices.EnterpriseLibrary.Common.dll kütüphanesini referans almadığınız durumda hata vermektedir.Çünkü Data Access Application kütüphanesi kaynak kodlarına bakıldığında bu kütüphaneyi kullandığını görmekteyiz.

    Bir diğer örneğimize gelecek olursak; bu örneğimde ise StoredProcedure kullanmayı inceleyeceğiz. Bunun için ise sadece örneğini oluşturmuş olduğumuz Database nesnesini GetStoredProcCommand metodunu çağıracağız ve kullanmak istediğimiz StoredProcedure ismi yazıyoruz.

    Database db = DatabaseFactory.CreateDatabase("ConnectionString");

    DbCommand Dbcmd = db.GetStoredProcCommand("Ten Most Expensive Products");

    IDataReader rd = db.ExecuteReader(Dbcmd);

    DataTable table = new DataTable();

    table.Load(rd);

    GridView1.DataSource = table;

    GridView1.DataBind();

    Not:DataTable nesnesinin Load metodu IDataReader tipinden bir değer alarak çalışabilen polimorfik bir metodtur. Bu sayede DataTable nesnesi üzerine hızlı bir şekilde verilerimizi çekebilmemizi sağlamaktadır.

    Uygulamanın test aşamasında görüldüğü gibi istediğimiz sonucu almış olduk.

    image

    Gördüğünüz üzeri Enterprise Library kullanarak veritabanı nesneleri kullanmak ve çeşitli işlemleri bu kadar kolay yapabilmekteyiz. Bu yazım burada sona ererken, yazının herkes için yararlı olması dileği ile kolay gelsin…

    Yorum ekle