Merhaba herkese.

Yeni bir eğitim serimize başlıyoruz. Bu eğitim serimizde Microsoft’un veritabanı yönetim yaklaşımı olan Entity Framework’un Code First yapısını ele alacağız.

Microsoft ADO.Net yaklaşımından sonra veri tabanı işlemleri için ortaya yepyeni bir teknoloji koydu. Entity Framework. Bundan sonra EF diye söyleceğiz.

Microsoft’un EF DLL’i 3 tip yaklaşıma sahiptir.

  • Database First
  • Model First
  • Code First

Çok önceden yaptığımız proje yaklaşımlarımızı ele alarak işe başlayalım.

Daha önceden projelerimiz için kullanacağımız veri tabanlarımızı SQL, MySQL gibi veri tabanı yaratma programları üzerinde önce oluşturur sonrada projelerimize bağlardık.

Code First ile Microsoft olaya öyle bir bakış açısı getirdi ki yazılımcıların kodlama sistemlerini ileri anlamda değiştiren ve geliştiren bir yaklaşım oldu bu.

Çünkü daha önceden Backend Developerlar isteklerini veri tabanı tasarımcılarını anlatırlardı. Onlarda bu işleri gerçekleştirirlerdi.

Code First ile veri tabanı tasarımı tamamen C# üzerinden kodlarla yapıldığı için bir geliştiricinin ileri seviye Veritabanı Tasarımı bilmesini ortadan kaldırmış oldu.

Yazılımcıların bu yapı sayesinde anlaşabilme seviyeleride artmış oldu. Güzel artılarından biri de bu oldu.

Kısaca yapıya bakacak olursak.

Code First’ün en uyumlu çalışabildiği Patternlerden biri Domain Driven Design Patterndir. Kendi Tutorial’larında da aynen böyle bahsedilmektedir.

Yapısına bakacak olursak.

Normal veri tabanında tablolara karşılık gelen alanlar burada Classlara karşılık gelecektir. Ayrıca tablo yapısına sahip bu classlara biz Entity diyeceğiz.

Tablolarımızda kolonlara karşılık gelen alanlar C# da Property’lere karşılık gelecek.

Ayrıca veritabanında bilirsinizki bir özelliğin belli başlı nitelikleri vardır. Mesela kaç karakter alabileceği, Key olma durumu vs. Bunun gibi niteliklerine Attribute diyeceğiz. C# üzerinden bu attribute ları ekleme olanağıda bize verilmektedir.

Code First Modelinin çalışma stiline kısaca göz atalım.

Öncelikle Entitylerimizi Domain Katmanında oluşturacağız. Veritabanı ile alakalı Configure işlemlerimiz App.Config üzerinden gerçekleştireceğiz. En sonra Migration işlemlerimizle beraber bir anlamda Soyut olarak yazmış olduğumuz veri tabanımızı Canlıda ayağa kaldırmış olacağız. Hangi veritabanı ile çalışıyorsak o Database üzerinde fiziksel olarak veri tabanımız tamda bizim istediğimiz gibi tüm bağlantılarıyla dahil oluşmuş olacak.

Bu sisteme tam olarak alıştığınızda eskiden biz nelerle uğraşıyormuşuz düşüncesini net olarak yaşayacaksınız.

Çünkü bu sistemle beraber zamandan kazanıyor hemde projenizin veritabanı üzerinde tam kontrol sağlıyorsunuz. Bir yazılımcı daha ne istesin.

Bu yazımda bir anlamda soyut kalan kavramlarımızı adım adım bir projede garçekleştirdiğimiz de çok net oturacağından emin olabilirsiniz.

Bir sonraki yazımda görüşmek üzere.

Selametle.


muratbilginer