14 Aralık 2013 Cumartesi

Neden Code First?


 Code First uygulamalarda kodları veritabanına daha az bağımlı hale getiren bir metodolojidir. Eğer projemizde bir ORM kullanıyorsak uygulamamızı istediğimiz kadar katmanlara ayıralım, projemizde ORM katmanının yarattığı sınıfları kullanmak zorunda kalırız(Db First).
Bu da aslında aşağıdaki gibi bir ilişki hiyerarşişi oluşturur.


 Görüldüğü gibi projemizi ne kadar katmana ayırırsak ayıralım db sınıflarını kullanabilmemiz için her katmana ayrı ayrı ORM modelini referans etmek zorunda kalıyoruz. Bu da yapılan her değişikliğin ardından tüm katmanlardaki db contexlerinin ayrı ayrı update edilmesi anlamına geliyor. Bu işlemler de bizim projeyi katmanlara ayırarak elde etmek istediğimiz katmanlar arası bağımsızlığa tam anlamıyla baltayla vuruyor.

 Peki Code First kullanırsak bu ilişki hiyerarşisi nasıl olacak? İşte böyle.


Evet görüldüğü gibi veritabanımızın sadece 1 katman ile ilişkisi var ve artık code generation sınıflarını kullanmak zorunda değiliz.
 Şimdi aklınıza şu sorular gelebilir. Peki sistem tabloları, sutunları foregin keyleri primary keyleri nasıl tanıyor? Dbml yada edmx gibi data modellerinin yaptığı işleri nasıl hallediyoruz? Bu soruların cevapları için de bu makaleyi okuyabilirsiniz.
Herkese iyi çalışmalar.