29 Ağustos 2018 Çarşamba

Mühendisler Dünyası

MVC'de Model Kavramı

Makaleye başlarken günümüz web uygulamalarının temelinin ilişkisel veritabanları esasında geliştiğini vurgulamam gerekiyor. İlişkisel veritabanları esasında gelişen ORM teknolojileri de uygulamalarla veritabanlarının haberleşmesine ve uygulama geliştirme süreçlerinin hızlanmasına çok büyük katkı yapmıştır. Bu anlamda MVC teknolojisini ORM olmadan hayal etmek imkansızdır. Asp.net MVC de Entity Framework olmadan kaptanı olmayan uçağa benzer.

Buradaki benzetmeler önemli. Proje geliştirme süreci için Asp.Net otomobilse, Asp.Net MVC bir uçaktır. (Uçaktaki hız ve kaliteli yolculuk) Entity Framework olmadan da bu uçağın kaptanı yoktur diyebiliriz. Tabi ki Asp.net MVC ile diğer ORM teknolojileri de kullanılabilir. Ama Microsoft'un da direkt olarak Entity Framework desteği sağlamasının belirli nedenleri vardır değil mi?

İsterseniz küçük bir girişten sonra "Model" kavramını biraz daha detaylandıralım. MVC teknolojisindeki model kavramı bir anlamda tablonun nesneye dönüştürülmüş halidir. Web uygulamalarının da bu nesneleri oluşturma, güncelleme, silme, listeleme veya kompleks işlemleri üzerine kurulduğunu göz önünde bulundurursak MODEL kavramının MVC teknolojisinin en önemli parçası, nesne yapısı olduğunu söyleyebiliriz. Üstlendiği görev ise nesne yapısının kalıplar halinde arayüz ve controller arasında akmasını sağlamaktır.
MVC Model katmanı ile ilgili bilinmesi gereken en önemli nokta tabloları temsil ettiğidir. Bu cümle ilk başta garip gelebilir. Ama MVC projelerinin kullanıldığı projeleri de göz önünde bulundurursak ve genelde veritabanı CRUD işlemlerinin yoğun olarak yapıldığı projelerde kullanıldığını da kabul edersek bu tanımın ne kadar geçerli olduğuna siz de ikna olacaksınız. Özellikle ORM teknolojileri ve Code-First mantığının da proje kalıplarına oturmasıyla tasarladığımız modellerin ilişkisel veritabanlarında tablo olarak oluşturulması, nesne yönelimli programlamanın inheritence özelliği ile tüm tablolarda olan OID, Olusturma Tarihi ve başka özelliklerin Base Object olarak belirlenip kalıtım yapılması MVC Model kullanımının "best practice" yöntemi olarak kabul edilir. Bu hangi ORM teknolojisi kullanıldığından bağımsız olarak Veritabanı tasarımındaki normalizasyon kurallarının uygulanması için de önemli bir noktadır.

Model kavramı ile ilgili başlangıç bilgisi olarak anlatılan konuların yeterli olduğunu düşünüyorum. Teorik bilgilerin de belirli seviyeden sonra tecrübeyle kalıcılaşdırılması gerekiyor. Bu konuların de Temel seviye ve Entity Framework konularında detaylı anlatıldığını belirtmek istiyorum. Bu konuda uzmanlaşmak istiyorsanız menüde yer alan konu başlıklarını detaylıca incelemenizi tavsiye ederim. Önemli bir nokta ise bu konuda uzmanlaşmak sizin diğer proje türlerine de adapte olmanızı kolaylaştıracak.

Mühendisler Dünyası

Yazar Hakkında: Mühendisler Dünyası -

Bilgisayar Mühendisiyim. Yaklaşık 10 senelik Asp.net MVC tecrübemi de bu blogda yazmaya çalışıyorum. Bu yazıların sizin için faydalı olmasını temenni ediyorum.