|
ADO.NET temelleri ve yenilikler |
|
Gönderiliyor lütfen bekleyin... |
|
|
Bu
makalemizde dotNET platformunun en önemli yeniliklerinde olan veriye ulaşım
tekniklerinden bahsedeceğiz. Bildiğiniz gibi Microsoft firmasının veritabanı
erişim sınıflarının genel adı ADO idi. ActiveX teknolojisi ile geliştirilmiş
olan ADO sınıflar topluluğu local yada uzaktaki makinalarda bulunan verleri
erişmemizi sağlıyordu. ADO.NET ile değişmeyen tek felsefe veriye erişim dersek
doğru söylemiş oluruz, zira ADO.NET 'in klasik ADO'dan çok büyük farklılıkları
vardır. Bu farkılılıklardan yeri geldikçe bahsedeceğiz. Makalenin ilerleyen
bölümlerinde ADO.NET'in en büyük yeniliklerinden olan offline çalışma ve programlama
yoluyla tablolar arasında ilişki kurmanın ne demek olduğunu göreceğiz.
ADO.NET i , eski ADO'nun bir üst versiyonu gibi görmemek gerekir. Her nekadar
eski ADO ile "connection" ve "command" gibi eş kavramlara
sahipsede eski ADO da olmayan "data set" gibi bir çok yeni kavram
vardır. Kısaca ADO.NET, .NET paltformu için geliştirilmiş, offline çalışma sistemini
destekleyen, web uygulamaları gibi n-katmanlı uygulamarda büyük kolaylık sağlayan
yeni bir veri erişim teknolojisidir, diyebiliriz. Eski ADO nun çalışma mantığı
olan sunucu/istemci kavramı ADO.NET te yerini, offline çalışmayı sağlayan DataSet
kavramına bırakmıştır. ADO.NET' in diğer en önemli özelliği ise doğrudan XML
desteği vermesidir. İçsel bir mekanizma ile veriler XML formatına dönüştürülür.
Bu içsel mekanizma HTTP protolu ile sağlandığı için herhangi bir firewall kısıtlamasından
bahsedemeyiz.
ADO ile ADO.NET arasındaki temel farkları bir tablo halinde inceleyelim
ADO |
ADO.NET |
ADO
nesne modeli 6 temel yapıdan oluşmaktadır.Bunlar:
-Connection Nesnesi
-Recordser Nesnedi
-Command Nesnesi
-Error Nesnesi
-Field Nesnesi
-Parametre Kolleksiyonu |
ADO.NET
modeli veriye erişim olarak iki ana metod kullanır.
Connected Access (Online Erişim)
Disconnected Access(Offline Erişim) |
ADO,
Recordset nesnesi ile offline çalışma modeline sınırlı bir imkan sağlar |
ADO.NET
iki yeni nesne modeli sunar.Bunlar DataSet ve DataAdapter nesneleridir.
Bu yapıların ikiside offline çalışma için gereklidir. DataSet tasarım olarak
her zaman offline çalışacak şekilde düzenlenmiştir. |
ADO
modelinde çok fazla bazen de hiç kullanılmayan yapılar uygulamanın performansını
düşürür. |
ADO.NET
modelinde ise daha yüksek performans sağlar. |
|
Doğrudan
XML desteği verir. ADO.NET, XML ile entegre çalıştığı için bir tablodaki
verileri XML formatına dönüştürmek çok basittir. Eski ADO da ise böyle bir
durum söz konusu değildir. |
ADO.NET
'i oluşturan bütün sınıflar bir DataSet oluşturmak ve bu DataSet üzerinde işlemler
yapmak içindir.Peki nedir bu DataSet? DataSet, veritabında bulunan bir veya
daha fazla tablonun içinde barındığı tablolar kolleksiyonudur. DataSet içinde
bulunan tablolar asıl veri kaynağından tamamen bağımsız bir şekilde çalışır.
Yani DataSet nesnesinin için birkere doldurduğunuzda veritabanı bağlantınızı
kesseniz bile DataSet ile sanki bir veritabanına bağlıymışsınız gebi DataSet
üzerinden tablolar arasında ilişki kurabilir, yeni bir veri ekleyebili, yeni
sorgulamalar yapabilir, ve hatta kayıtlar silip işiniz bittiğinde tekrar veritabanına
kaydedebilirsiniz. İşte DataSet nesnesinin bu çalışma prensibine disconnected(offline)
çalışma denmektedir.İşin ilginç tarafı ağ da bulunan bir veritabanınındaki bütün
tabloları DataSet içine alıp sanki kendi makinamızdaki veritabanı üzerinde çalışıyormuş
gibi yapabiliriz. Bu da doğaldır ki büyük bir kaynak tasarrufu ve performans
sağlamaktadır. Eski ADO da bulunan Recordset nesnesi hatırlarsanız sadece bir
tablo üzerinde çalışabiliyordu. ADO.NET ile online çalışma ise DataReader dediğimiz
nesne ile gerçekleştirilir.
ADO.NET veri erişimi olarak iki tip destek sağlar, birincisi SQL Server ile
yüksek performasnlı erişim ikincisi ise OLEDB protokolunu destekleyen diğer
veritabanlarına bağlanmak.Eğer veritabanı olarak SQL Server kullanıyorsak SQL
Server için özel yazılmış sınıfları kullanarak daha yüksek performans elde ederiz.
Bu sınıflar SQL Server ' in TDS (Tabular Data Strem) dediğimiz yapısı ile doğrudan
ilişkili olduğu için tercih edilir.
ADO.NET Nesne Modeli
ADO.NET'in altyapısını oluşturan sınıflar System.Data isimalanının içinde bulunurlar.
ADO.NET ' e ilişkin bütün sınıflar System.Data.dll isimli tek bir assembly de
toplanmıştır.
System.Data
ADO.NET in en temel isimalanıdır. Veriyi sembolize eden veri türleri burda tanımlanmıştır.
Mesela , tablo, sütun, satır , koşullar ve DataSet gibi veriyle doğrudan ilişkisi
olan türler bu isim alanındadırlar. Veri kaynağına bağlanmak için gerkli veri
türleri bu isimalanında değildir.
System.Data.Common
Bu isimalanı managed provider dediğimiz veri erişim kaynaklarını kullanan sistemlere
yönelik sınıfları içerir.
System.Data.OleDb
Burdaki sınıfların yapısı eki ADO ya biraz yakınlığı ile bilinir.OLEDB protokolünü
destekleyen veritabanı sistemlerine erişemk için kullanılan sınıflar bu isismalanı
içindedir.
System.Data.SqlClient
OleDb servislerini kullanmadan Sql Server sistemine doğrudan bağlanıp performansı
artımak istiyorsak bu isimalanı altında bulunan ve MS SQL Server için özel olarak
geliştirilmiş sınıfları kullanmalıyız.
System.Data.SqlTypes
Bu isismalanında bulunan veri tipleri, MS Sql Server içirisnde desteklenen doğal
veri türlerini içeir. Tabiki bu veri tiplerinin CLR(common language run-time)
daki karşılıklarını da kullanabiliriz, fakat sql veri tiplerini kullanamk SQL
Server için optimum bir çözümdür.
Bu yazımızda ADO.NET hakkında kısa ve öz bir bilgi edindik. Bir sonraki yazımızda
ise System.Data isimalanınnda bulunan veri tiplerini detaylı olarak inceleyeceğiz.
Makale:
ADO.NET temelleri ve yenilikler ADO.NET ve SQL Sefer Algan
|
|
|
-
-
Eklenen Son 10
-
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
|
|