Koray Kırdinli

Yazılım ve İş Yaşamı Hakkında Paylaşımlar

GENVEK (Genel Veri Erişim Katmanı)

ÖZET
GENVEK , genel veri erişim katmanının kısaltmasıdır . Projenin yapılış amacı programcının farklı veritabanı yönetim sistemlerine daha az kod yazarak genel bir erişimini sağlamaktır . GENVEK Visual Studio .NET platformunda , C Sharp programlama dili kullanılarak geliştirilmiş bir bileşen olup , veritabanlarına erişim ihtiyacı duyan .NET platformunda geliştirilecek projeler için kullanımı hedeflenmiştir . Veritabanı uygulamaları temel olarak kayıt arama , kayıt silme , kayıt güncelleme ve kayıt ekleme işlemlerine ihtiyaç duymaktadır . GENVEK veritabanındaki tabloların özelliklerini öğrenip otomatik sorgular oluşturarak veritabanı işlemlerini gerçekleştirebilmektedir . GENVEK kullanılan projelerde , uygulama ile veri erişim katmanı birbirinden ayrılarak çok katmanlı bir yapı oluşturulur . Bu katmanı kullanarak uygulama kodunun anlaşılırlığını artırabiliriz .

ABSTRACT
GENVEK is the abbreviation of the General Data Access Layer . The purpose of the project is to achive communication between programmers and database management systems by less coding . GENVEK is developed in Visual Studio .NET platform by using C Sharp programming language and aimed to use projects which needs database . Database applications are basicly need record searching , record deletion , record updating ana record insertion operations . GENVEK learns the attributes of the tables and creates queries automaticly . That is to say , number of the columns and rows are known by GENVEK and allows database operations without create any query . GENVEK includes these basic operations to make it easier for the programmer . The projects which is use GENVEK , the application and data access layers are distinct and this means n-tier structure . By using this layer we can do our code more understanding

1 Projenin Tanımı

Veritabanı uygulamalarında basit arama , kaydetme , güncelleme ve silme işlemleri çok sık yapılan işlemlerdir . Aynı kod satırları birbirlerini sürekli tekrar ederler , bu da kodun uzayıp karmaşıklaşmasına sebep olmaktadır . GENVEK veri erişim katmanı kullanılarak bu veritabanı işlemlerini daha kısa ve kolay bir şekilde gerçekleştirmek mümkündür . GENVEK sınıfının amacı farklı veritabanı yönetim sistemlerine aynı kod satırlarını kullanarak genel bir erişim sağlamak , defalarca aynı kodun tekrarlanmasından kurtulmaktır . Yani her veritabanı işlemi için farklı kodlar yazmaya gerek kalmaksızın işlemler gerçekleştirilebilir . Bu da program yazan kişiye büyük kolaylık sağlamaktadır . Örneğin SQL veritabanında arama yapmak için yazılan kod ile Access veritabanında arama yapmak için yazılan kod , fonksiyonlara verilen parametreler haricinde aynıdır .

GENVEK ile basit olarak veritabanına bağlanma , arama , kaydetme , güncelleme , silme , tablonun bütün kayıtlarını getirme , tablo isimlerini getirme işlemleri yapılabilir . GENVEK ‘in use-case diyagramı kullanıcısının yapabileceği işlemleri göstermektedir (Şekil 3.1) .

Şekil 3.1 : GENVEK use-case diyagramı

GENVEK bir bileşendir , yani başka uygulamaların kullanımına sunulmuş , değişkenleri ve fonksiyonları olan bir sınıftır diyebiliriz . Visual Studio.NET ‘te bileşen yaratmak oldukça kolaydır . Bir bileşen yaratmak için File – New – Project deyip önümüze çıkan pencereden Class Library’i seçmemiz yeterli olacaktır (Şekil 3.2) . Daha sonra yapılandırıcısı olan boş bir sınıf karşımıza çıkacaktır . Artık yapmamız gereken tek şey bu sınıfın içine kodlarımızı yazmaktır . Yazdığımız kodu derlediğimiz zaman “bin-Debug” klasörünün içinde .dll uzantılı bir dosya otomatik olarak oluşturulacaktır ve bu dosyayı artık farklı projelerde kullanabiliriz .

Şekil 3.2 : C#’ta bileşen yaratmak

GENVEK kodların yazıldığı .cs uzantılı bir sınıf , veritabanına erişim için gerekli bağlantı dizelerinin bulunduğu bir XML dosyası , veritabanlarındaki tabloların şemalarının bulunduğu SqlDataset ve OledbDataset isimli dataset nesnelerini bünyesinde bulundurur .

XML dosyasında veritabanlarına erişim için gerekli bağlantı dizeleri bulunur (Şekil 3.3) .

Şekil 3.3 : baglantilar.xml

Dataset’lerde ise tabloların xml şemaları bulunur (Şekil 3.4). Bizim yapacağımız uygulamanın Sql ve Access olmak üzere iki adet tablosu bulunmaktadır . Bu tabloları sürükle bırak yöntemi ile dataset’imize atıyoruz ve xml kodu otomatik olarak üretiliyor .

Şekil 3.4 : Tabloların XML şemaları

Projenin Tasarımı

GENVEK bileşeni soyut fabrika (abstract factory) desenini (design patern) kullanmaktadır . Soyut fabrika deseni creational grubunun bir desenidir . Creational grubundaki desenler bir yada daha çok nesnenin çeşitli şekillerde oluşturulması ile ilgili desenlerdir . Bu kategoride ele alınan soyut fabrika birbiri ile ilişkili veya birbirlerine bağlı olan nesnelerin oluşturulmasını en etkin şekilde çözmeyi hedefler . Bunu gerçekleştirebilmek için soyut sınıflardan (abstract class) ve arayüzlerden (interface) yoğun bir şekilde faydalanmaktadır . Soyut fabrika deseninin ana teması belirli sınıfların içerdiği ortak ara yüzü soyut bir sınıf veya ara yüz olarak tasarlamaktır . Böylece nesneleri üreten sınıf hangi nesnenin üretileceği ile pek fazla ilgilenmez . İlgilenmesi gereken nokta oluşturacağı nesnenin hangi ara yüzü desteklediği yada uyguladığıdır . Bu deseni oluşturduğumuz anda çalışma zamanında (run-time) hangi nesnenin oluşturulacağını bilmeden nesnelerin oluşturulmasını yönetebiliriz . Nesne oluştururken “switch” yada “if” deyimleri ile hangi nesnenin oluşturulacağına karar veriliyorsa soyut fabrika deseni ile daha az kod kullanılarak bu işlem gerçekleştirilebilir .

GENVEK bileşeninde de temel olarak soyut fabrika desenindeki bir yapı vardır. Bir tane soyut sınıf ve bu soyut sınıfın alt sınıfları , bir de soyut sınıfın alt sınıflarından hangisinin nesnesinin yaratılacağına karar veren fabrika sınıfı . GENVEK ’teki soyut sınıfın adı “databases” sınıfıdır . Bu sınıfın “sqlDatabases” ve “oledbDatabases” olmak üzere iki adet alt sınıfı mevcuttur . “databaseFactory” sınıfı ise bu iki alt sınıftan hangisinin nesnesinin yaratılacağına karar veren sınıftır . Yani kullanıcı hangi alt sınıfın kullanılacağına bu fabrika sınıfı ile karar verir fakat detayları bilmez .

Şekil 3.5 : GENVEK sınıf diyagramı

September 6, 2008 - Posted by | C# | ,

No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s