Makale Özeti

Visual Basic’in ilk 3 sürümü bir veritabanına erişim için herhangi bir bileşen sunmuyordu. Data Access Objects (DAO) teknolojisi Visual Basic 3 ile birlikte sunuluyordu. DAO programcılara Microsoft’un Jet Database Engine formatına uygun, yerel veritabanlarına erişimi mümkün kılıyordu. DAO ile ana makine (sunucu) üzerindeki veritabanlarına da ulaşılabiliyordu. Fakat bu tarz bir ulaşımda performans önemli ölçüde düşüyordu. Bu gayet normaldi; çünkü DAO yerel veritabanları için tasarlanmıştı.

Makale

Ado.NET Giriş

ADO.Net NEDİR?

Visual Basic’in ilk 3 sürümü bir veritabanına erişim için herhangi bir bileşen sunmuyordu. Data Access Objects (DAO) teknolojisi Visual Basic 3 ile birlikte sunuluyordu. DAO programcılara Microsoft’un Jet Database Engine formatına uygun, yerel veritabanlarına erişimi mümkün kılıyordu. DAO ile ana makine (sunucu) üzerindeki veritabanlarına da ulaşılabiliyordu. Fakat bu tarz bir ulaşımda performans önemli ölçüde düşüyordu. Bu gayet normaldi; çünkü DAO yerel veritabanları için tasarlanmıştı.

DAO’dan sonra Remote Data Objects (RDO) ve daha sonra ActiveX Data Objects (ADO) teknolojileri geliştirildi. Bu teknolojiler özellikle sunucu/istemci (server/client) uygulamaları için tasarlanmıştı.Fakat bu teknolojilerdeki yetersizlik ve performans düşüklüğü yeni bir teknolojiyi haber veriyordu. InterNet gibi ortamdan bağımsız ortamların da yaygınlaşmasıyla artık yeni bir teknoloji şart olmuştu;ADO.Net

ADO.Net Microsoft un yeni kuşak veri erişim teknolojisidir .

ADO.Net veritabanı bağlantısız veri işleme yeteneklerine ve XML desteğine sahiptir. ADO.Net bileşenleri özellikle bilginin çeşitli ortamlarda paylaşmak ve bu paylaşımda en uygun performansı yakalamak için tasarlandı.

ADO.Net belirlenen bu hedefleri iki temel bileşenle sağlar; DataSet nesnesi ve .Net veri sağlayıcısı (.Net Data Provider)... .Net Data Provider Connection,Command,DataReader ve DataAdapter gibi bileşenlere sahip bir settir.

ADO.Net’in Gelişimi
ADO.Net bir çok farklı özellik getirmektedir. ADO nesne modelinin ADO.Net ile kıyaslandığında çok daha sınırlı olduğunu görürüz.ADO.Net bir çok farklı görev için özel bir dizi nesneler sunmaktadır. ADO.Net bir ADO geliştirme versiyonu değil tamamen gelişmiş yeni bir veri erişim teknolojisidir.

ADO teknolojisi ADO.Net’in atasıdır. Bu yüzden bazı özellikleri mukayeseli olarak incelemek yararlı olacaktır. ADO’nun RecordSet nesnesi ADO.Net’te yerini DataSet nesnesine bırakmıştır.

ADO’da yerleşmiş bir kültür .Net ile tarihe karışacak. Artık sadece sorgularımızın sonuçları olan bilgiler RecordSet’te toplanıp karşımıza çıkmayacak. Bunun yerine tüm bilgiler DataSet nesnesinin içinde saklanacak.

 

ADO.Nette genel veri işleme sistemi şöyledir; ilk adım olarak tabloları DataSet nesnesine aktarılması için bir veritabanına bağlanılır. Sonra DataSet nesnesi tüm tabloları hafızaya -DataSetCommand nesnesini kullanarak - yerleştirir. DataSet nesnesi doldurulur doldurulmaz bağlantı kesilir. (DataSet nesnesine aktardığımız) tablolar arası bağlantıyı DataSet nesnesinin kendi içinde tanımlarız. Daha sonra bilgiyi yazı tabanlı (text-based) Xml ile istediğimiz istemci uygulamaya gönderebiliriz.

DataSet Xml ile yapılandırılabildiğinden bir (yerel) Windows uygulaması ile web tabanlı bir uygulama arasında programlama adına pek bir farklılık kalmaz. Hatta işi daha ileriye de götürüp elektronik bilgi arayüzüne (EDI) Xml ve ADO.Net ile geçiş yapılabilir.

Görüldüğü gibi eskimiş, ortama bağımlı yapı .Net dünyasına pek fazla erişemiyor.

ADO ile ADO.Netin en temel farkı ADO.Netin veritabanına bağlanıp gerekli sonuçları elde ettikten hemen sonra veritabanı ile bağlantıyı kesmesidir.

ADO İLE ADO.Net’in Karşılaştırılması
ADO.Net’in avantajlarını daha iyi anlayabilmek için özelliklerini aşağıdaki tabldoda kıyaslayalım.

Özellik ADO ADO.Net
Hafızada kalan veri Tek tablo gibi davranana Recordset nesnesini kullanır Birden fazla tablo içerebilen DataSet nesnesini kullanır.
Çoklu tablolar arası ilişki Farklı veritabanındaki tabloları tek bir sonuç tablosunda göstermek için Join sorgusunu kullanır. Herhangi bir tablodaki kayıtları başka tablolardaki kayıtlarla ilişki kurabilmek üzere tasarlanmış DataRelation nesnesini destekler.
Veriye erişim Ardışık olarak RecordSet satırlarını tarar. Ardışık olmayan erişimlere olanak sağlar.Satırlar arası ilişkileri takip ederek farklı satırları tarayabilir.
Çevrimdışı erişim RecordSet nesnesi tarafından desteklenmesine rağmen verim alabilmek için genellikle sürekli bağlantı kullanılır. DataSet nesnesi standart olarak bu yapıyı destekler.

Programlanabilirlik Komutları Connection nesnesini kullanarak iletir. Xml’in titizlikle hazırlanmış programlama özelliklerini kullanır. Xml’de bilgi kendini tanımlar.
Çevrimdışı verinin bileşenler veya diziler arasında paylaşımı COM dizilemesini kullanılır.Bu yüzden sadece COM standartlarının tanımladığı veriler kullanılabilir. DataSet’i Xml dosyası kullanarak taşır.Xml formatı veride herhangi bir kısıtlama koymaz ve herhangi bir tip dönüşümü gerektirmez.
Verinin firewall’lardan (ateş duvarları ) geçirilmesi Doğuştan problemlidir.Çünkü firewall’lar zaten sisteme ulaşma isteklerine (COM nesneleri gibi ) karşı tasarlanmıştır. Herhangi bir sorun çıkarmaz. Çünkü DataSet nesnesi yazı bazlı Xml kullanır. Bu Xml dosyaları firewall’lardan rahatlıkla geçebilirler.

Kâsım GÜLCAN
SQLNedir?com