16 Haziran 2011 Perşembe

ASP.NET MVC Framework


MVC; Model, View (görünüm) ve Controller (denetleyici) kelimelerinin baş harflerininin birleştirilmesiyle oluşturulmuştur. Bir tasarım desenidir.

Model – View – Controller tasarım deseni, bir uygulamayı 3 anlamlı parçaya ayırır. Adından da anlaşılacağı şekilde model, view ve controller parçaları.

ASP.NET MVC Framework ise MVC deseni ile web uygulamaları geliştirmek için Microsoft tarafından geliştirilmiş bir framework. Geleneksel ASP.NET Web Formları desenine bir alternatiftir.

ASP.NET MVC Framework daha açık ve hafiftir ama en önemlisi test edilebilir bir Presentation tasarım desenidir.

Halihazırdaki web formları ile kullandığımız masterpage, membership ve authentication gibi özellikleri de kullanabileceğiniz bir yapıdır. Çünkü MVC Framwork de System.Web’in bir parçası olarak System.Web.Mvc isimuzayı altında tanımlıdır.

MVC, 1970’lerden beri yaygın kullanılan bir tasarım desenidir. Bazı web uygulamaları için MVC kullanmak yararlı olacaktır. Ama MVC her web projesi için uygun olmayabilir. Bu yüzden bazı web uygulamaları da postback mekanizmasını kullanan geleneksel ASP.NET uygulama desenini kullanmaya devam edecektir. Belki ikisinin kombinsyonu şeklinde uygulamalar da göreceğiz.

MVC Framework bileşenlerini ayrı ayrı açıklayalım.

Model
MVC mimarisinde, Model bileşenleri veriye ve uygulama tarafından kullanılan servislere bir arayüz sağlama görevini üstlenir. Bu yüzden Controller bileşenleri verilerin okunması, yazılması, değiştirilmesi gibi işlemlerle ilgilenmez; bunun yerine veri erişimini ve manipülasyonunu sağlayan Model bileşenleriyle iletişim kurarlar. Model bileşenleri iş mantığı (business logic) kısmının kodlandığı kısımdır.

View
Uygulamanın kullanıcı arayüzünü (UI) oluşturan bileşenlerdir.

Controller
MVC uygulamalarının merkezindeki bileşendir. Süreci yöneten ve yönledirmeleri yapan kısımdır. URL Routing gibi pek çok heyecan verici işlem bu bileşen tarafından icra edilir.

Controller, kullanıcı ile iletişimi yönetir, Model ile iletişim kurar, hangi View görüntülenecekse seçer, hazırlayıp görüntüler.

Bir MVC uygulamasında View sadece bilgileri görüntüler, kullanıcı girişlerini ve etkileşimlerini Controller yönetir.




MVC, farklı işlevleri (veri girişi, iş mantığı, kullanıcı arayüzü mantığı vb.) birbirinden ayırıp bunları gevşek bağlaşım (loose coupling) ile ilişkilendirerek uygulama geliştirme olanağı sağlar. Bu desen, hangi çeşit mantık uygulamanın neresinde bulunacak, onu seçer.

Kullanıcı Arayüz mantığı View bileşenine aittir. İş mantığı Model bileşenine aittir. Uygulama geliştirirken bu ayrıştırma karmaşayı önler. Bir zamanda uygulamanın sadece bir bileşenine odaklanmayı sağlar. Mesela iş mantığından bağımsız olarak sadece kullanıcı arayüzüne odaklanabilirsiniz.

MVC desenini bu kadar güçlü kılan belki de ayrıştırma yeteneği ile uygulamaların birim testinin (unit test) kolay yapılmasıdır. Web formları tabanlı bir web uygulamasına göre çok daha kolay bir şekilde birim testleri uygulamayı olanaklı kılar.

ASP.NET MVC, bileşenleri arasındaki etkileşimi arayüzler (interface, nesne yönelimli programlamadaki arayüz terimini kastediyorum) üzerinden gerçekleştirir.

Web formları tabanlı ASP.NET uygulamalarının test edilebilmesi için bir web sunucuya ihtiyaç duyulur. MVC ise arayüzler yardımıyla framework’ten bağımsız olarak uygulamanın test edilmesini olanaklı kılar.

MVC uygulamasının her bir birimi arasında gevşek bağlaşım bulunması, paralel geliştirmeyi de olanaklı kılar. Mesela, bir grup View üzerinde çalışırken diğer bir grup Model’de iş mantığı üzerine çalışabilir. ASP.NET MVC bu maharetini arayüzler üzerinden sergiler.

Hiç yorum yok:

Yorum Gönder