Merhabalar, ADO.Net ve Object Relational Mapping (ORM) Nedir? yazım ile programlama yazılarına devam ediyorum. Bu yazımızda ADO.Net ve Object Relational Mapping (ORM) arasındaki farklara değinmeye ve ikisini de açıklamaya çalışacağım. Ben yazılıma başladığımdan beri ado.net kullanıyorum. Bir çok yerde ado.net’i kötüleseler de ben aynı fikirde değilim. Bu yazımda işte biraz bunlara değinmek istiyorum. …
ADO.Net ve Object Relational Mapping (ORM) Nedir?
ADO.Net Nedir?
ADO.Net bir ORM aracı değildir arkadaşlar. ADO “Active Data Object” temelde bir teknolojidir. ORM araçlarının en temel ve önemli başlangıç noktasıdır diyebiliriz. Veritabanı ve C# programlama dili arasında iletişim sağlamak için kullanılan bir teknoljidir. ORM’deki gibi bir obje yönetimi yapmadan da ADO.Net kullanılabilir.
Bu benim hep kullandığım yöntemdir. Kodlar arasında sql sorgularını elle yazdığım yönteme deniyor yani. Aşağıdaki görsel ADO.Net kullanımına örnektir.
string adi = sql.comscalar("SELECT FirstName FROM Accounts WHERE Id = "+1+" " ).ToString();
Tabi başka sitelerde bu konu hakkında araştırma yaptığınızda size aşağıdaki gibi örnekler gösterebilirler.
string sql = "SELECT FirstName FROM Accounts WHERE Id = 7"; DbCommand cmd = new DbCommand(connection, sql); Result result = cmd.Execute(); string firstName = result[0]["FirstName"];
Elbette yukarıdaki görseldeki gibi kod yazarsanız ADO.Net asla tercih edilmez. Neyse biz bir kıyaslama yapmıyoruz. Sadece neyin ne olduğunu anlatmak istiyorum.
Ben hala ADO.Net kullanıyorum. Çalıştığım şirket ve geliştirdiğim projeler aynı anda en az 2 veritabanı kullanmak durumunda olduğundan dolayı ORM kullanımı beni çok zorluyor. Şuana kadar geliştirdiğim uygulamalar aynı anda en az 2 en fazla 5 veritabanı kullanıyordu. Ayrıca çalışma zamanında veritabanı değiştirmesi gerekliliği olan uygulalarımız da var. Bu sebeplerle ORM pek uymuyor.
Object Relational Mapping (ORM) Nedir?
Veri tabanı ile nesneleri bağlamak için metadata tanımlayan bir programlama tekniğidir. Burada nesnelerimiz (Object) C# gibi nesne yönelimli programlama (OOP) dillerinde yazılır. Burada ORM yapısı oluşturulan veri tabanı nesneleri ile (tabloların class yapıları) ve veri tabanı arasındaki veri bağlantısını sağlar. Buradan şunu anlayabiliriz. Bağlanan veri tabanındaki tablolar ve diğer nesneler yazılım dilinde kodlara dökülür. Bu sayede biz proje içerisinde sql kodları ile uğraşmak durumunda kalmayız.
ORM yapısı Uygulama Katmanı altında yer alır ve tüm OOP dilleri için mevcuttur. C# dili tarafında en sık duyulan hali Entity Framework‘dur.
Programlama dillerine göre sık kullanılan ORM örnekleri;
- C#: Entity Framework, Dapper, ECO, XPO, Norm
- Python: Django, South,Storm
- Java: Hibernate, Ebean, Torque, JPA,MyBattis
- Php: CakePHP, Codelgniter, RedBean, Doctrine,Propel, PdoMap
İki kavram arasındaki en bariz farklar şunlardır.
ADO.Net, ORM’ye göre daha performanslı çalışır.
ORM daha alt yapıda güvenlik sağladığından ADO.Net’e göre daha güvenlidir.
ADO.Net ve Object Relational Mapping (ORM) Nedir? yazımda bu kadar arkadaşlar. Diğer yazılarımda görüşmek üzere. C# Eğitim Seti eğitimi sayfasına gitmek için tıklayınız. Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz…
Sağlıcakla ve kodla kalın….