Bildiğimiz gibi ASP.NET MVC Framework'ün MIX '09 konferansıyla beraber 1.0 versiyonu yayınlandı.Daha önce Java ile uygulamalar geliştirenler tarafından kullanılan bu yapı şimdi ASP.NET ile de kullanılabilir durumda. MVC (Model-View-Controller) temelde bir uygulamadaki temel katmanların birbirinden ayrılmasını sağlamaktadır. Böylece birbirinden ayrılan katmanların birbirlerine bağımlılıkları azalmakta (loosely coupled) ve bakımları kolaylaşmaktadır.Katmanları birbirlerine sıkı sıkıya bağlı olmayan uygulamalarda da yapılan bir değişiklik diğer katmanları fazla etkilememektedir.
MVC'nin temel mimarisini ve elemanlarını açıklarsak:
MVC'de hedeflenen 2 amaç vardır:1-GUI eventleri ile Domain katmanındaki sınıflar arasındaki bağlantıyı kaldırmak
2-Domain katmanındaki sınıflarla Data katmanındaki sınıflar arasındaki direk bağlantıyı ortadan kaldırmak.
Bu iki işlemi kendi yazdığımız ASP.NET uygulamalarımızda da sağlayabiliriz. Ancak ASP.NET MVC bize bu konuda çeşitli kolaylıklar sağlamakta.
MVC uygulamalarındaki temel bileşenleri açıklarsak:
View: View katmanı uygulamalarımızdaki kullanıcı arayüzünü temsil etmektedir.Yazdığımız tüm kullanıcı arayüzleri bu katmanda bulunmaktadır.
Controller: MVC'de hedeflediklerimizden 1.sini sağlayan kısım Controller kısmıdır. Controller kullanıcı arayüzünden gelen eventleri karşılar ve domain katmanına iletir. Böylece domain katmanı ile kullanıcı arayüzü arasında iletişim controllerlar aracılığıyla gerçekleşir.
Model:Veri katmanımız bu bölümde bulunmaktadır. Veri temelli yapacağımız tüm işlemler bu kısımda yapılmaktadır.
Yukarıdaki resme bakarsak Controller Model ve View'a erişebiliyor.View ise sadece Model'e erişebiliyor. Model'in ise herhangi bir katmana erişim hakkı yok.
ASP.NET MVC Framework bize yukarıdakileri sağlayan bir yapı getiriyor ve mimariyi oluşturmamız kolaylaşıyor. Bir noktanın üzerinde durmakta fayda var.ASP.NET MVC, ASP.NET Web Form'lara alternatif olarak gelen bir framework.Yani Web Formların tarihe gömülmesi en azından şimdilik mümkün değil. :) Yeni bir web uygulaması geliştirme modeli dersek yanlış olmaz herhalde.
ASP.NET MVC peki ne gibi farklılıklarla geliyor bunları inceleyelim:
- MVC uygulamalarında sunucu taraflı kontroller (GridView vs..) bulunmamaktadır.
- Viewstate ve postback mekanizmaları yoktur.
- Event tabanlı çalışma mantığı yoktur.Yani butonun tıklanmasının yakalanması diye bir olay sözkonusu değil.
- URL'ler çözümlenerek yapılacak işlere karar verilir.
- Artık code - behind dosyaları bulunmamaktadır.
- Birim test gerçekleştirimi çok kolaylaşmaktadır.
ASP.NET MVC'nin temel mimarisini kısaca açıklamaya alıştım.Bir sonraki yazımda bir ASP.NET MVC projesinin yapıtaşlarından bahsedeceğim.
Görüşmek dileğiyle,
0 yorum:
Yorum Gönder