Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
ORM Araçlarının Avantaj ve Dezavantaşları hakkında görüşleriniz
#6
Merhaba,

.NET platformunda ürettiğimiz uygulamalarda Entity Framework ve kendi kurguladığımız, dünya çapında kabul görmüş n-tier (çok katmanlı) yapılarda ORM tercih ediyoruz. En büyük avantajı bir projenin altyapısı doğru sistemati ile kurduğunuz zaman sizi hata yapmaktan alıkoyuyor olması. Büyük projelerde özellikle takım çalışmalarında herkesin her şeyi ezbere bilmesi gibi bir şey söz konusu değil. Bu yüzden bir stil oturttuğunuz zaman ORM yapıları veritabanı tasarımınızdaki standartları koruyup, Entity (varlık) üzerinden çoğul-tekil ilişkileri aşırı konforlu bir şekilde kullanmanızı kolaylaştırıyor.

Ben gerek Object Pascal, gerekse C# kodlamalarım için kendi sistemlerimi ve mimari yapımı oluşturuyorum. Veri erişim katmanlarından IoC konteynır kullanımına, Ninject, Fluent Validation, PostSharper, Castle gibi kütüphanelere ve sistemleri de implement ediyorum. Tasarım desenlerini hakkıyla kullandığınız zaman işinizi daha pratik ve daha sistematik yapacağınız her türlü kütüphane faydalıdır. Ancak burada projenin canlı kalması, desteğinin sürdürülmesi, versiyon geçişleri gibi kritik meseleler var. O yüzden yaygın kitleler tarafından kabul görmüş kütüphane ve bileşenlere başvurmakta fayda var.

Şimdi gelelim asıl istenilen cevaba;

+/- Notları

+ Pozitif yanları

1) Database-First (ilk önce veritabanı tasarımı) yaklaşımı ile geliştirilen projelerde ORM framework sizin yerinize tüm ilişkisel veritabanınızın CRUD işlemlerini ve modellemelerini çıkartır.
2) Veritabanında yaptığınız değişiklikleri override ederek tek bir hamle yapmadan düzenler, ilaveleri ekler. Sizin yapacağınız tek şey View/Presentation katmanı ile iş katmanlarınızı bağlamak.
3) Eğer veritabanının tasarımını doğru yaptıysanız, ekibin en az tecrübelisini rahatlıkla projeye sokabilirsiniz. Ona tercih imkanı veya hata yapma imkanı bırakmaz.
4) Erişim katmanı (Access) kodlarına dokunmadığınız için oluşan context veritabanından bağımsız olarak bir veritabanı kalıbı taşır. Böylece veritabanı sürücüsü değiştirerek anında projeyi X veritabanı sisteminden Y veritabanı sistemine taşıyabilirsiniz. (Proje kodlarında SQL Server ile koşan projeyi Oracle'a taşımak 5 dk sürmüştü.)

- Negatif yanları

1) Sizi kesinlikle tembelleştiriyor ve bağımlı hale getiriyor. Ama buna pozitif yandan bakarsak, camia içindeki jargonuyla kod ameleliği yapmanıza gerek kalmıyor olması.
2) Kullandığınız sistemlerdeki versiyonların birbiriyle doğru çalışması için bir versiyon eşlemesi yapmanız gerekiyor. Ekosistemin içinde hızlı gelişen parçalara ayak uyduramayan parçalar sizi sıkıntıya sokabiliyor.
3) Hatalı veya çok revize gören veritabanı yapılarında kodlanmış projenizde geri dönüşler biraz daha vakit alıcı oluyor.
4) Bu tarz sistemler kendi çalışma mekanizmalarını getirip sizin projenize eklediği için klasik ado.net bağlantısından aldığınız hızı alamayacağınız projeler olabilir. Bunun tek sebebi ORM değil, çevre birimleri, donanım kalitesi ve evsafı, internet altyapısı vs. ancak ORM'nin transaction hızı çok etkili. Özellikle asenkron işlemlerin adedi büyüdüğü zaman.
5) Yapısal değişikliğe gidildiğinde veya başka bir teknolojiyi projeye dahil ettiğinizde doku uyuşmazlığı oluşturabilir. VCL projeyi FMX'e çevirdiğinizde FMX desteği olmaması gibi.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Cevapla


Bu Konudaki Yorumlar
ORM Araçlarının Avantaj ve Dezavantaşları hakkında görüşleriniz - Yazar: Abdullah ILGAZ - 18-04-2019, Saat: 20:52

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  IDE Color problemi hakkında adelphiforumz 0 127 23-07-2019, Saat: 17:51
Son Yorum: adelphiforumz
  GetIt içeriği hakkında adelphiforumz 1 284 15-04-2019, Saat: 18:06
Son Yorum: Fesih ARSLAN
  Berlin GetIT Hatası hakkında adelphiforumz 3 588 09-01-2019, Saat: 17:42
Son Yorum: adelphiforumz
  Delphi Tokyo Git Entegrasyon Hakkında adelphiforumz 9 1.135 13-12-2018, Saat: 21:04
Son Yorum: engerex
  Lazarus Hakkında adelphiforumz 5 1.034 25-07-2018, Saat: 09:43
Son Yorum: SimaWB



Konuyu Okuyanlar: 1 Ziyaretçi