330 likes | 734 Views
ADO.NET Ders Notları II. 18 Ocak 2011. Hazırlayan: Fatmagül İBİŞOĞLU Yazılım ve Veritabanı Uzmanlığı Eğitimi Hafta İçi Sabah Grubu - E Sınıfı BilgeAdam. Veri Katman Mimarisi. Neden Katmanlı Mimari?. Katmanlı mimari çok fazla artısı olan bir program yazma modelidir.
E N D
ADO.NET Ders Notları II 18 Ocak 2011 Hazırlayan: Fatmagül İBİŞOĞLU Yazılım ve Veritabanı Uzmanlığı Eğitimi Hafta İçi Sabah Grubu - E Sınıfı BilgeAdam
Neden Katmanlı Mimari? • Katmanlı mimari çok fazla artısı olan bir program yazma modelidir. • Mimari yazacağınız uygulamanın ihtiyaçlarına göre şekillenir. • Microsoft n katmanlı mimari demeyi tercih etmektedir. Bazı uygulamalarda 3 katman yeterli iken bazı uygulamalarda 6 ya da 7 katmana kadar çıkılabilmektedir. Temelde hepsi 3 katmanlıdır.
Katmanlar Nelerdir? 3 2 1
1) Veri Katmanı • Uygulamaların %98’i veritabanına bağımlı çalışmaktadır. Bir veriye ulaşım katmanına ihtiyaç vardır. • Verinin veritabanı sisteminden getirilmesi ve veritabanı sistemine gelen verilerin eklenmesi için veri katmanına ihtiyaç vardır.
2) İş Katmanı • Veritabanına veri katmanı ile getirilen verilerin programdaki işlere uygunluğunun denetlenmesi gerekmektedir. Bu denetimi iş katmanı sağlamaktadır.
3) Sunum Katmanı • Veritabanına girilmiş verilerin kullanıcıya sunulması için gereken katman sunum katmanıdır. • Kullanıcı ile iletişim halindedir. • Kullanıcının girdiği verileri bir alt katmana iletmektedir. • Veritabanından gelen verileri kullanıcıya sunmaktadır.
Özet: “Kullanıcı veri girmek istediğinde” • Kullanıcı veriyi sunum katmanı ile girmektedir. • Girilen veri, programın kriterlerine göre (örneğin, yetkisi olmayan kullanıcının veritabanına veri ekleyememesi gibi) iş katmanından geçmektedir. • Veri, iş katmanından veri katmanına iletilmektedir.
Özet: “Kullanıcı veriyi görmek istediğinde” • Veri, veritabanından veri katmanı ile çekilmektedir. • Getirilen verinin uyumluluğu ve şekli iş katmanı ile kontrol edilmektedir. • İş katmanı kontrolünden geçen veri sunum katmanına yollanmaktadır.
“Parçala ve Yönet!” • Katmanların en önemli avantajı parçala ve yönet kolaylığıdır. • Problem durumunda yalnızca gerekli kısım değiştirilip programın çalışmasına kalındığı yerden devam edilebilmektedir. • Uygulamanın genişlemesi durumunda, uygulamanın başka bir veritabanında ya da başka bir istemci sisteminde çalıştırılması gerektiğinde yapılması gereken oldukça zahmetsiz olacaktır.
Veri Katman Mimarisi • ADO.NET uygulamalarında connection belirlenirken ve command tanımlanırken çok sayıda kod satırı yazılmaktadır. Bu hem enerji hem de zaman kaybı olabilmektedir. • Çözüm ise connection ve command komutlarının verildiği satırları bir “class” yapısında tutmak ile sağlanabilmektedir.
Class : “DataProcess” • Bu uygulamaya öncelikle DataProcess (Veri Süreci) adını verdiğimiz bir sınıf yapısı geliştirerek başlayabiliriz. • Sınıf içerisinde ayrıca; • GetCommand • AddParameter • ExecuteNonQuery • ExecuteScalar metotları geliştirilecektir.
Class: “DataProcess” Veritabanına Bağlantıyı Tutan Değişken GetCommand Metodu AddParameter Metodu ExecuteNonQuery Metodu ExecuteScalar Metodu
Burada “usingSystem.Data.SqlClient” kütüphanesini kullanmaya gerek yoktur. Form1 Kodları
RootPanel Formu textBox toolStrip label toolStripbutton4 toolStripButton2 toolStripButton1 toolStripButton3 listView
RootPanel Kodları I RootPanel açıldığında listView kontrolüne veritabanında kayıtlı tutulan verilerin ID numarasına göre azalan sırada gelmesini BindCustomers() metodu sağlar.
RootPanel Kodları II Müşteri Ekle butonuna basıldığında AddCustomer formu açılacaktır.
RootPanel Kodları III Müşteri Sil butonuna basıldığında listView kontrolündeki seçili müşteri veritabanından silinecektir.
RootPanel Kodları IV Güncelle butonuna basıldığında belirtilen ID numarasındaki müşteri bilgilerin veritabanında güncellenebilmesi için UpdateCustomers formu açılacaktır.
RootPanel Kodları V Ekle, güncelle gibi işlemler sonunda veritabanındaki verilerin son halinin görülebilmesi için Refresh (Yenileme) butonuna basılır.
RootPanel Kodları VII Müşteri Sil butonunda seçili müşterinin ID’sini getirebilmek için listView_ItemSelectionChanged yordamı içerisindeki e parametresinin “tag” özelliğini kullanmak gerekmektedir.
AddCustomer Formu label radioButton textBox textBox maskedTextBox
UpdateCustomers Formu label textBox radioButton textBox maskedTextBox
UpdateCustomers Kodları RootPanel'den “Güncelle” button’una basıldığında seçili olan ID‘ninUpdateCustomers formuna aktarılması için tanımlandı.
Login Formu groupBox textBox textBox label Button