Son zamanlarda yabancı kaynakları takip ediyorsanız eminim ki MVC harflerini ASP.NET'in hemen yanında sıklıkla görmüşsünüzdür. MVC yani Model View Controller.
MVC mimarisi aslında daha önceden de duyulan bir tasarım deseniydi
(design pattern) programlama dünyasında. Bu yaklaşımdaki temel mantık
bir web projesini üç temel parçaya bölmek ve yapılacak işleri bu
parçalar üzerinden yürütmektir. Hazırladığımız projelerde sıklıkla
kullandığımız uygulamayı iş katmanı ile veri katmanı olarak ayrı
parçalara bölmeyi buradaki yaklaşım ile benzeştirebiliriz. Aslında
temel amaç uygulamayı işe yarar belirli amaçları olan parçalara bölmek
ve bir parçanın değişiminden diğer parçaların etkilenmesini
engellemektir.
MVC uygulamanın Model, View ve Controller olarak üçe ayrılmasını benimseyen bir tasarım desenidir.
– Model veri ve durum bilgilerini taşır. Burası DataTable, DataSet ve entity katmanımızdaki sınıfların bulunduğu bileşendir.
– View
uygulamanın arayüzlerinin bulunduğu bileşendir. Master sayfalar, aspx
ve ascx gibi kullanıcının görüntüleyeceği dosyalar bu kısımda yer alır.
– Controller ise arayüzler arasındaki
etkileşimi sağlayan, veri nesneleri üzerinde değişiklik yapılmasını
sağlayan bileşenlerdir. İşte burada benim çok ilgimi çeken bir yenilik
çıkıyor karşımıza. Controller katmanındaki sınıflar aracılığıyla etkin
URL Mapping işlemi yaparak artık tarayıcı üzerinden sayfalara istek
yapmak yerine nesnelere istekte bulunabiliyoruz. Yani URL üzerinden
tarayıcıda görüntülenecek nesnenin render edilmesi sağlanabiliyor.
Sol
kısımdaki resimde bu desenin bir projeye nasıl uygulandığının basit bir
örneğini görebilirsiniz. MVC tasarım deseni, önümüzdeki yıllarda bir
ASP.NET programcısının hayatına girecek önemli kavramlardan biri olacak
gibi. Zira Microsoft ASP.NET yazılım geliştirme grubunun önümüzdeki
günlerde çıkarmayı düşündüğü ASP.NET 3.5 Extensions
ile birlikte resmen web uygulamarına dahil edilecek bu desen. Üzerinden
daha detaylı araştırmalar ve çalışmalar yapılması gereken konular. Ben
askerde iken eminim ki ASP.NET 3.5 Extensions ve ASP.NET MVC
konularında birçok teknik yazı yazılacaktır. İnşallah dönüşte keyifle
okuyabilirim.
Daha detaylı bilgiler için Scott Guthrie'nin blogundaki şu başlıkları okuyabilirsiniz:
ASP.NET MVC Framework
ASP.NET MVC Framework (Part 1)
ASP.NET MVC Framework (Part 2): URL Routing