Tekil Mesaj gösterimi
Alt 07 Mart 2010, 15:34   #1
Çevrimdışı
toXic
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
ASP.NET MVC Framework Giriş




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.

ASP.NET MVC Avantajları
Uygulamayı Model, View ve Controller bileşenlerine bölerek karmaşıklığı önler.
Viewstate ve sunucu taraflı form kullnamaz. Uygulamanın bütün evelerine müdahale etmek ve hakim olmak isteyen geliştiriciler için idealdir.
Front Controller deseni kullanır. Bütün istekleri (request) tek bir Controller tarafından karşılanıyor. Bu sayede MVC, çok esnek bir yönlendirme (Routing) altyapısına sahiptir.
Daha iyi Test Driven Development (TDD) desteği sağlar.
Geniş bir takım tarafından geliştirilen, uygulam davranışları üzerinde daha fazla kontrol gerektiren web uygulamları için ideal bir yapıdır.
Web Formları Avantajları
Olay modeli ile geliştirme yapmaya onanak sağlar. Yüzlerce sunucu kontrolü üzerinden binlerce olay vardır.
Bir sayfaya özel işlevsellikler ekleyebilen Page Controller desenini kullanır.
View state ve sunucu tabanlı formlar yardımıyla sayfanın durum bilgisi kolaylıkla yönetilebilir.
Hızlı uygulama geliştirme yapmaya müsait olduğundan küçük gruplarla yapılacak karmaşık olmayan web projelerinde iyi çalışır.
MVC modeline göre daha az kod gerektirir.
ASP.NET MVC Framework Özellikleri
MVC Framework yapısının özelliklerini özetleyelim.

Uygulama görevlerini (giriş mantığı, iş mantığı, arayüz mantığı) ayırır. TDD desteği var.

MVC yapısı tamamen arayüz tabanlıdır, uygulamadaki gerçek nesnelerin simulasyonlarından oluşan mock nesneleri yardımıyla test edilebilir. ASP.NET Controller nesnelerini, web uygulamasını çalıştırmadan birim testine (unit test) sokabiliriz. .net Framework ile uyumlu olan hernagi bir test framework ile unit-test yapabilirsiniz. Visual Studio Unit Test adlı test motoru Preview 3 ile hazır gelmektedir. Ama diğer yaygın test motorları da kullanılabilir.

Esnek ve tak-çıkar özellikleri olan bir framework. Her bir bileşen, aynı işlevi yerine getiren farklı alternatifleri ile değiştirilebilir. Mevcut bileşenler kendi isteğimize göre özelleştirilebilir.

Güçlü bir URL yönlendirme (URL Routing) mekanizması var. Dosya uzanltılarına (asp, aspx vb.) ihtiyaç yoktur. SEO ve REST uyumlu URL adlandırmaları kullanılabilir.

View şablonları olarak ASP.NET sayfası (.aspx), kullanıcı kontrolü (.ascx) ya da masterpage (.master) kullanılabilir.

İç içe masterpage, in-line ifadeler (<%=%>), deklaratif sunucu kontrolleri, şablonlar, veri-bağlama (data-binding), yerelleştirme gibi mecut ASP.NET özelliklerini MVC ile de kullanabilirsiniz.

Nereden Başlamak Gerekiyor
ASP.Net MVC Framework için Preview 3, geçtiğimiz günlerde duyuruldu.

İstanbul Üniversitesi Avcılar kampüsünde yaptığımız seminer sunumunu buradan, seminer demolarını buradan indirebilirsiniz.Seminer videosunu buradan izleyebilirsiniz.

ASP.NET MVC Preview 3 ile ilk demo uygulamayı yapmak isteyenler için bir makale hazırlanıyor. Bir kaç gün sonra o makale ile birlikte daha çok işin içine girebileceksiniz.

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet