|
Önünde saçmalık yazılmış Temelleniyor. .NET'in üç katmanlı mimarisi şu katmanlara ayrılabilir: Data Linq katmanı, veri erişim katmanı, iş mantığı katmanı ve sunum katmanı. Aşağıdaki Şekil 1'deki ok sembolleri katmanlar arasındaki etkileşimi gösterir: veri erişim katmanı, Data LINQ katmanına referans verir; İş mantığı katmanı, veri erişim katmanına ve varlık sınıflarına Veri LINQ katmanında referans verir. Sunum katmanı, iş mantığı katmanını ve Data LINQ katmanındaki varlık sınıflarını ifade eder. Veri LINQ katmanı esas olarak varlık sınıflarını ve Veri Bağlamı sınıflarını içerir. Genellikle, bir varlık sınıfı veritabanındaki tek bir tablo içindir. Farklı katmanlar arasında aktarılan varlık sınıflarının örneklerini veri nesneleri olarak oluşturabiliriz.
Şekil 1 LINQ'dan SQL'e üç katmanlı mimari Aşağıda, LINQ'nin SQL'e üç katmanlı mimari geliştirmesini tanıtmak için bir proje oluşturulurken giriş penceresine bir örnek verilmiştir Hazırlık 1. İlk olarak, giriş yapmış kişinin kullanıcı adı ve şifresini depolamak için bir veritabanı ve veri tablosu gerekir. Burada SQL Server 2005 veritabanı kullanılmaktadır. Veritabanı tablosu yapısı Şekil 2'de gösterilmiştir.
Şekil 2 Veritabanı Kullanıcı tablosu 2. VS'yi açın ve diğer proje türleri ---> yeni bir proje oluşturun---> Visual Studio çözümleri---> boş çözümler. Şekil 3'te gösterildiği gibi. (Burada Visual Studio 2008 kullanılmıştır)
Şekil 3 Boş bir çözüm oluşturun 3. Bir sınıf kütüphanesi ekleyin. Çözüm Geziri'nde yeni oluşturulan çözüme sağ tıklayın ---> yeni ---> proje ---> sınıf kütüphanesi ekleyin. Şekil 4'te gösterildiği gibi. Aynı yöntem, üç kütüphane (BLL, DAL ve DataLinq) ve bir Windows Forms uygulaması (eğer bir web uygulaması geliştirmeyse, ASP.NET Web uygulamasını seçin) ekleyip ona arayüz (kullanıcı arayüzü) eklenmesini gerektirir.
Şekil 4 Bir kütüphane projesi ekle Eklemeden sonraki yapı Şekil 5'te gösterilmiştir. Aynı zamanda, arayüze sağ tıklayın ve kullanıcı arayüzünü lansman öğesi olarak ayarlayın.
Şekil 5 Proje yapı diyagramı Bir alıntı ekle Çözüm Gezginci'nde her seviyeye referans ekleyin. BLL katmanı Referansları seç --->referans eklemek ---> sağ tıklayın. Şekil 6'da gösterildiği gibi. System.Data.Linq adresine bir referans ekleyin. Aynı zamanda, yukarıdaki Şekil 1'de gösterilen katmanlar arasındaki ilişkiye göre, DAL ve DataLinq'e proje referansları ekleyin. Aynı şekilde, DAL katmanı System.Data.Linq ve DataLinq'a proje referansları ekler, DataLinq katmanı System.Data.Linq'a referanslar ekler ve UI katmanı System.Data.Linq'a referanslar ekler ve proje referanslarını BLL ile DataLinq'a ekler.
Şekil 6 Proje referansları ekle Şu ana kadar üç kademeli bir mimari kurulmuştur. Aşağıda, her katmana karşılık gelen sınıfları eklemek için yapılır. 1. İlk olarak, DataLinq katmanı. DataLinq'---> yeni ---> proje ekleyin---> Şekil 7'de gösterildiği gibi LINQ'den SQL sınıfını seçin.
Şekil 7 SQL sınıfına LINQ ekleme 2. Ekleme tamamlandıktan sonra, Server Explorer'a bağlantı ile birlikte otomatik olarak boş bir tasarımcı (.dbml dosyası) oluşturulur; ayrıca ilgili dbml.layout dosyası (XML dosyası) ve designer.cs dosyası da bulunur. Server Explorer'ı açın ve veritabanına bağlantı oluşturun.
Şekil 8 Açık Sunucu Explorer 3. Veritabanına bağlanın. Aracı seçin ---> veritabanı ekleyin. Şekil 9'da gösterildiği gibi. Yeni oluşturulan veritabanını seçin ve bağlantı veritabanını belirleyin. Bu noktada, veritabanı Server Explorer'da görünecektir.
4. Kullanmak istediğiniz veri tablosunu seçin, aşağıdaki Şekil 10'da gösterildiği gibi tasarımcıya sürükleyip bırakın. Dosyayı kaydet. Şimdi, ilgili özellikler, yöntemler ve metodlara sahip DataContext sınıfları ve varlık sınıfları otomatik olarak oluşturulmuştur.
Şekil 10 Kullanıcı sınıfı Kod katmanları ekleyin DAL katmanı Yeni bir UserDAL sınıfı oluşturun ve aşağıdaki kodu ekleyin //UserDAL.cs DataLinq kullanarak; System.Data.Linq kullanarak;
isim alanı DAL
{ public class UserDAL { özel DataLinq.DBLinqDataContext objDataContext = yeni DataLinq.DBLinqDataContext();
public User SelectRecordByID(string userid) { Denemek { return (objDataContext.User içindeki u'dan, burada u.Id == userid select u). Single(); } catch (İstisna örneğin) { Throw Ex; } } }
}
BLL katmanı Yeni bir UserBLL sınıfı oluşturun ve aşağıdaki kodu ekleyin //UserBLL.cs System.Data.Linq kullanarak; DataLinq kullanarak;
isim alanı BLL
{ public class UserBLL { özel DAL. UserDAL objUserDAL = yeni DAL. UserDAL();
public User SelectRecordByID(string userid) { return objUserDAL.SelectRecordByID(userid); } }
}
UI katman kodu //LoginForm.cs özel BLL. UserBLL objUserBLL = yeni BLL. UserBLL();
private void btnSubmit_Click(object sender, EventArgs e) { string id = txtId.Text.Trim(); string psd = txtPsd.Text.Trim();
Kullanıcı localDataTable = objUserBLL.SelectRecordByID(id);
if (localDataTable != null && localDataTable.Psd == psd) { MessageBox.Show ("Başarı"); } else { MessageBox.Show ("yanlış"); } }
Bu noktada, giriş arayüzü kodu tamamlanmıştır. Etkisini görmek için çalıştırabilirsiniz.
|