İsterseniz amacımızı ve sonucumuzu şu şekilde sıralayalım.
İşlem : Veritabanı ile verilerin gösterimi ve bu gösterim süresinde ele alıcıların davranış biçimleri ve performansı.
Amaç: Ne yapmalıyız? Ado.Net mi ? EF mi ?
Sonuç: Kime göre, neye göre ama bana göre Ado.NET.
------------------------------------------------------------------------------------------------------------
Detay: Kısaca bu tür duyulara neden kapıldığımı bilmiyorum ama sürekli beynimin tam arkasında
Ado.Net vs EF |
Ado.Net kullanırım çünkü;
- Hızlı (zaten bu bana yeter :))
- FrameWork 2.0 (System.Data.SqlClient)
- Metotları istediğim derinlikte işleme ve düzenleme imkanına sahibim
- Kapalı kutu yapısından çıkıp kendi kod bloklarımı kendim kotarabilirim.
- Kendimi Programcı gibi hissederim
- Kod bloklarını yazmak zordur,
- Kontrol ve kotarımı zordur
- Değişikleri yansıtmam hem database hemde class tarafına zordur
- Bu ne ya bu kadar kod yazılır mı!!! tepkisi her zaman vardır.
- Ohhh rahat ve kullanımı çok basit
- Classlarımı oluştururum modellerimi çıkartırım
- Metotlar hazır ve her yerde belirli tanımlamalara sahip.(Update,Add,SaveChanges vs)
EF Kullanmam çünkü;
- Hız açısından Ado.Net ile karşılaştırılınca daha düşük performans sunmaktadır.
- ObjectQuery<T> ile tiplerimi cast etmesi ve return etmesi durumu biraz zorlaştırmakta.
- Tam refere edilen bir nesneye ilk datayı parse etmektense gelen küme içerisinden parse durumu söz konusu olmakta.
--------------------------------------------------------------------------------------------------------
Neyse lafı daha uzatmadan ve teknik terimlerle boğulmadan yaptığımız örneği ve performansları şu şekilde paylaşalım.
Bu test uygulamada .Net 4.0 seçildi.
Veri tipleri:VarBinnary(Tsql) ,NvarChar(Tsql)
CommandType:StroreProcedure
MetotType:Select Top 100
Beklenti: Hangi tür işlem daha performanslı
Result: Aşağıdaki gibi :)
1. aşama :)
2. aşama ve ADO.NETTTTTT
3. aşama EF üzgünüm :(((
sonuçlar ortada anlatmak ve göstermek istediğim bu örnekte bilerek Veritabanına gömülmüş resimler üzerinde çalıştım takibi mantıklı mı değil mi buna işi yapan yanı kodu yazan karar verecektir. Mimari açıdan yaklaşımlarda mutlaka saniyelik requesteler göz önünde bulundurulmalıdır. Veritabanında resimleri tutumanın avantajları ve dezavantajlarınıda bir ara birlikte tekrar inceleyelim.
Saygı ve sevgilerimle Rahmi Tuğrul ALTIN
(MCSD)