ADO.NET Nedir?

Merhaba,

Başlangıçta ADO.NET'in bir ORM aracı olmadığını vurgulamak isterim. Fakat ORM araçlarının en önemli başlangıç noktası olan ADO.NET'i atlamak olmazdı.
Veri akışının ve obje ilişkilerinin mantığından başlayarak tüm ORM yöntemlerinin hepsini inceleyeceğiz.

Nedir bu ADO.NET!

ado.net

 

"Active Data Object"

ADO.NET temelde bir teknoloji olarak görülmektedir. Tamamen bir ORM aracı değildir.

Veritabanı ile C# dilini konuşturmak için kullanılan teknolokilerden bir tanesidir.
C# dilini kullanarak obje yönetimini kontrol edebileceğimiz gibi, obje yönetimi yapmadan da ADO.NET kullanabiliriz. (Transaction script yaklaşımı)
Temel amacı, kendi yazdığınız arayüz yardımıyla SQL üzerinde istediğimiz sorguları (procedure, view vs olabilir) çalıştırabilecek programlar/web projeleri oluşturmaktır. 

Ne Değildir?

ADO.NET bir programlama dili değildir.

Object Relation Mapping Nedir?

Veritabanımızda yaratmış olduğumuz her bir nesneye karşılık kod tarafında bir nesne oluşturmamızı temel kural olarak söyleyen yazılım mantığıdır.

ADO.NET Mimarisini Tanımak

ADO.NET kendi içerisinde 2 temal mimariyi barındırır.
1-) Connected (Bağlantılı model)
2-) Disconnected (Bağlantısız model)

Connected model ile Disconnected model arasındaki fark içerisinde bağlantı nesnesi olup olmaması değildir.
Connected: C# uygulamasıyla SQL server konuşmaya başladığı anda Connection nesnesi "OPEN" yapılmalıdır. Bunu yazılım geliştiriciler olarak biz kendimiz kontrol etmeliyiz.
Disconnected: Üzerinde çalışılacak veriler "SELECT" komutu ile alınır, alındıktan sonra bağlantı kapatılır ve bu bağlantı yönetimi işini geliştiriciler olarak biz değil bağlantı nesnesi olan SqlDataAdapter'in bizzat kendisi yapar.

Bu tanımları yaptıktan sonra akıllarda şu soru olabilir? "Her işi SqlDataAdapter yapıyorsa Disconnected kullanalım kafamız rahat etsin" fakat yapısı gereği Disconnected mimari Connected mimariye göre performansızdır. ADO.NET kullandığım projelerde Disconnected mimarisini sadece veri görüntülemede kullanıyorum. Ekleme, silme, güncelleme gibi CRUD işlemlerini her zaman Connected mimari üzerinde gerçekleştiririm.

Temel olarak C# kaynağından bir veri ile etkileşime girme olayından bahsedeceğiz. Başlangıç olarak veri listeleme, ekleme, güncelleme ve silme olarak tanımlayabiliriz.
Bu 2 tanımın (C# ve SQL) konuşması için ihtiyacımız olan ilk kavram "Connection" dır. (SQL veya JDBC olabilir.)
SQL server'da çalışmasını istediğimiz sorguları taşıması için ise "Command" nesnesine ihtiyaç duymaktayız. (SQL Command Oracle Command olabilir.)

ADO.NET teorisini tartıştıktan sonra giriş makalesini burada sonlandırıp, örneklerle devam edeceğimiz diğer makalelere geçiyorum.

Görüşmek üzere.

Yiğit

Xamarin Developer, Consultant & Architect. Community Leader and Director of Xamarin Türkiye

1 Comment

You can post comments in this post.

Post A Reply