03 Aralık 2007

ASP.NET MVC Nedir?

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

2 yorum:

Unknown dedi ki...

MVC Modeli ile web uygulaması geliştirmek gerçekten güzel ve zevkli oluyor. Oluşturduğunuz sistem stabil, sonradan müdahale edilebilir bir hal alıyor. ASP.NET MVC'nin yanında yaklaşık 2 senedir bu sistemi kullanan symfony,
codeigniter,ruby on rails gibi php ve ruby ile geliştirilmiş ve mvc pattern kullanan frameworkler mevcut. Meraklı arkadaşlar onları deniyerekte şuanda daha asp.net mvc yayınlanmadan bilgi sahibi olabilirler.

yurtman dedi ki...

Bu arada CTP si yayınlandı:

Link