Selam dostlar, bu yazımda sizlere MVC Tasarım Deseninden bahsedeceğim.
Öncelikle MVC (Model-View-Controller) ile ilgili kısa bir giriş bölümü yapalım.
Trygve Reenskaug tarafından 1979 yılında ortaya atılmış ve daha ileriki zamanlarda Microsoft'un geliştirdiği bir framework olan Asp .NET MVC ile yaygınlaşmış ve tanınmış bir tasarım desenidir (Desing Pattern).
Model
Projemizde kullanılan, referans alınan tüm nesnelere karşılık gelen yapıdır. Aynı zamanda bir veritabanı ile ilişki durumunda, veritabanı tablolarıda bizim için birer modeldir. Bu modeller projemizin yaşam döngüsü içerisinde verileri saklayan ve gerektiğinde ilgili veriye ulaşmamızı sağlayan yapılardır.
View
Kullanıcının etkileşime geçtiği uygulama arayüzüdür. Geliştirilen platforma, uygulamaya göre farklılık gösterebilir. (Web, Mobile vb.)
Controller
Model ve View arasındaki veri akışının, veritabanı işlemlerinin, özel methodlarımızın vb işlemlerin yapıldığı yönetim katmanıdır. Kısaca filmin yönetmeni bu abimizdir.
MVC'den bahsettiğimize göre gelin birde anlamaya çalışalım.
MVC Çalışma Mantığı
Çalışma mantığını anlatırken hayali bir senaryo üzerinden gideceğim, çünki daha net anlamamızı sağlayacağını düşünüyorum. Bu senaryo bir web sayfasından beğendiğimiz ürünü sipariş sepetimize ekleme ile ilgili olacak.
Bir E-Ticaret web sayfasından sipariş vermek istiyoruz, burada bahsettiğimiz sitenin, tamamen kullanıcının gördüğü kısmı, aslında MVC'nin ikinci harfinin açılımı olan View kısmıdır. Artık View'in ne olduğunu hızlıca öğrendiğimize göre alışverişe devam.
Ürünümüze karak verdik ve sepete eklemek istiyoruz. Yani biz ürünümüzü View'den alıp, asıl sepete ekleme işlemini yapacak olan Controller'a göndermemiz gerekiyor.
Projemizde kullanılan, referans alınan tüm nesnelere karşılık gelen yapılarımız Model'lerimizdi. Bu durumda ürünümüz bizim modelimiz oluyor. Modelimiz de oluştuğuna göre Controller'a doğru yolculuğa çıkalım.
Artık ürünümüz Model aracılığıyla View üzerinden Controller'a geldi. Burada sepete ekleme işlemini gerçekleştirebiliriz. Bu işlemde herhangi bir veritabanı işlemi olacaksa da Model'lerden yararlanıyoruz. Model'ler hem referans alınan nesneler hemde veritabanı nesneleridir bunu unutmayın.
MVC birçok Framework ve programlama dilinde kullanılmış ve olgunlaşmış bir desendir fakat Asp .NET sayesinde MVC Deseni (Pattern) kullanılarak hızlı çalışan, test edilebilir ve tekrar kullanılabilir parçaları olan web uygulamaları geliştirilebilmektedir.
Evet dostlar, web üzerinde daha detaylı kaynaklar elbette bulabilirsiniz fakat ben size kısaca MVC Tasarım desenini anlatmaya çalıştım.
Anlattıklarımdan faydalanmanız dileğiyle..