Saturday, October 7, 2017

Veri Erişim Katmanına Giriş - Introduction to DAL (Data Access Layer)

Günümüzde yazılım projelerinde katmanlı mimari en önemli özelliklerden biridir. Katmanlı mimaride bir katman istenildiğinde başka bir projede aynen kullanılabilmekte böylece kod tekrarı azaltılmakta ve güvenilirlik büyük ölçüde artırılmaktadır.

Bir çok yazılım projesinin en önemli parçalarından biri veri erişim katmanıdır çünkü bu katman aracılığı ile veri tabanı işlemleri yürütülür. Bu yazıda kendi yazdığım "ProjectBase" (PB) isimli DAL katmanına giriş yapacağım. Proje kodlarına buradan ulaşabilirsiniz.

DAL katmanı için en önemli noktalar  tutarlılık, güvenilirlik, çok biçimlilik (Polimorfizm) ve genişletilebilirliktir. PB kütüphanesi çok biçimlilik ve genişletilebilirlik için "Interface" tabanlı bir yapıda oluşturulmuştur. PB kütüphanesi ile iş katmanında yazılan kodlarda değişiklik yapılmadan veri tabanı değişikliği kolaylıkla yapılabilmektedir. Ayrıca PB içinde tanımlı interface kullanılması ile istenildiği kadar "provider" sınıf yazılabilir ve bu sınıflar özelleştirilebilir.

Şimdi PB ile veri okuma işlemi yapalım:

* Veri tabanı olarak Oracle 11g Express Edition kullanacağım.  Veri tabanını Oracle'ın resmi sitesinden ücretsiz olarak indirebilirsiniz.

* Provider olarak Oracle "ManagedDataAccess" kullanacağım.

Veri tabanı kurulumunu yaptıktan sonra web.config içerisinde bağlantı stringi aşağıdaki gibi tanımlanmalıdır.

<connectionStrings>
      
    <add name="Context" connectionString="DATA SOURCE=XE;PASSWORD=hr;USER ID=hr" providerName="Oracle.ManagedDataAccess.Client" />
    
</connectionStrings>

Burada providerName önemlidir. Erişim sınıfları burada yazan provider bilgisine göre ilgili sınıfları seçecektir.

DAL katmanının kurulumu için "ProjectBase" kütüphanesini indirip projeye eklemek kurulum için yeterlidir.

using (IDatabase2 db = DatabaseFactory.GetDbObject())
{
    var dt = db.ExecuteQueryDataTable("select * from employees");
}

Yukarıdaki kod bloğu ile "Employees" tablosunda yer alan bütün veriler çekilip "DataTable" nesnesi olarak döndürülmektedir. Oracle veri tabanı içinde "HR" şemasında test için küçük bir veri tabanı servis edilmektedir. "Employees" tablosu bu veri tabanının içindedir.

ProjectBase kütüphanesi Oracle ve SQL veri tabanlarını ve OleDb erişimini desteklemektedir.

No comments:

Post a Comment