Asp.Net Mvc
Asp.Net ile web platformuna geçerken
detaylı olarak ele aldığımız ‘Page Life Cycle’ (Sayfa yaşam döngüsü) aşamalarında
bir kullanıcının web sayfasını görüntülemek istediği anda hangi aşamalardan geçtiğini
görmüştük. Bu aşamaları tekrar edecek olur isek.
1-
Kullanıcı görüntülemek istediği
sayfanın ‘Alan Adı(Domain)’nı tarayıcının adres çubuğuna yazar ve sayfayı görüntüleme
isteği gönderilir.
2-
Gönderilen istek ilk olarak DNS(İsim
Sunucusu)’e gider Alan Adı’na karşılık gelen IP(İnternet Protokol)’yi bulur.
3-
IP üzerinden gideceği Sunucu’ya isteği
gönderir.
4-
İsteği alan sunucu, içerisinde
bulunan projeye gider ve istek yapılan sayfayı hazırlar.
5-
Sunucu hazırladığı web sayfasının son
halini istek yapan kullanıcıya(istemci) gönderir.
6- Kullanıcı sayfayı görüntüler.
Genel olarak
bir web uygulamasının yaşam döngüsü bu şekildedir. MVC projesinin de kendi içerisinde
bir yaşam döngüsü bulunmaktadır. Bu yaşam döngüsü ise aşağıdaki gibidir.
Kullanıcı
görüntülemek istediği sayfanın Alan Adı(Domain)’nı tarayıcının adres çubuğuna
yazarak istek gönderir.
2-
Bu
istek internet üzerinden projenin bulunduğu sunucuya DNS üzerinden gönderilir.
3-
Gönderilen
istek http protokolü üzerinden Controller’a iletilir.
4-
İstek
Controller’da işlenirken gerekli duyulan veriler için Model’ gidilir.
5-
Model
istenilen verileri temin etmek için Veritabanı(Database)’e gider.
6-
Veriler
alınıp işlendikten sonra Controller’a gönderilir.
7-
Controller’da
gerekli işlemler yapıldıktan sonra veriler View’a aktarılır.
8-
View
içerisindeki HTML ve C# kodları gelen veriler ile çalıştırılır ve Http
protokolü üzerinden kullanıcıya gönderilir.
9- Kullanıcı sayfayı görüntüler.
15.4. ASP.NET MVC AVANTAJLARI DEZAVANTAJLARI
Yazılım
dünyasında Web Forms mu ? MVC mi ? soruları sıklıkla sorulmaktadır. Bu seçimi
yaparken iki teknolojiyi de iyi tanımak gerektiğini vurgulamak gerekir. Her iki
teknolojinin de kendine özel avantajları ve dezvantajları vardır. Bu ayrımları
iyi yaparak projeyi hangi teknoloji ile sürdürmek gerektiğine karar verilmesi
en doğrusudur.
Neden Asp.Net Web Forms ?
15.4.1.1. ViewState Kullanımı
Web Forms için oldukça
performans kaybı yaratabilen ViewState, doğru ve verimli kullanıldığında bu
dezavantajı avantaja dönüştürülebilir.
15.4.1.2. Zengin Sunucu
Kontrolleri
Web Forms’da büyük kolaylık sağlayan
Asp.Net kontrolleri(button, textbox, checkbox, gridview, dropdownlist, listview…),
çok büyük kolaylıklar sağlaması itibarı ile zor vazgeçilebilecek yapıların başında
gelir. Javascript, Ajax gibi yapıları hazır olarak sunması, validation, editör
gibi kullanıcıların sıklıkla kullandığı kontrolleri basit olarak sunması Web
Forms’u zor vazgeçilir kılmaktadır. Birçok yazılımcı bu kontroller üzerinden işlem
gerçekleştirdikleri için MVC teknolojisine soğuk bakmaktadır. 359 | S a y f a
Şekil 6
15.4.1.3.
Olay Güdümlü Programlama (Event Driven Programming)
Asp.Net Web
Forms teknolojisinin en önemli kolaylıklarından biri de olay güdümlü
programlama yapısıdır. Geliştirici bir button’u işlevsel hale getirmek ve içerisinde
bir kod bloğu çalıştırmak istediğinde tıklama olayı(click event)nın içerisine
gitmesi yeterlidir. Ya da Bir listbox’da seçili elemanın bilgisini almak ve o
an bir işlem yapmak istiyor ise seçili eleman değişme olayı(SelectedIndexChanged)na
gidebilir.
Şekil 7
Şekil 8
15.4.2.
Neden Asp.Net MVC ?
15.4.2.1.
Performans
MVC
teknolojisinde durum yönetimi otomatik olarak yapılmaz. ViewState kullanımı
olmadığı için sayfa server’a giderken ve gelirken üzerinde herhangi bir kontrolün
bilgisini ve diğer yük olacak verileri barındırmaz. Buna bağlı olarak da daha
performanslı çalışır.
15.4.2.2.
Yeniden Kullanılabilirlik (Reuseability)
Web Forms’da
olay güdümlü programlama ve zengin kullanıcı kontrolleri faydalı görünse de MVC
yapısına baktığımızda yeniden kullanılabilirlik açısından pek de faydalı değildir.
Yazılan kodların yalnızca o sayfaya veya o kontrole özgü olması, her kontrol için
ve her sayfa için ayrı ayrı kod yazmamızı gerektirir.
MVC içerisinde
böyle bir yapı bulunmadığından dolayı yazdığımız kodları birden fazla yerde
kullanarak bir standart 360 | S
a y f a
oluşturabilir, ileri tarihte projeyi geliştireceğimiz tüm süreçleri
için önemli bir zaman kazanabiliriz.
15.4.2.3.
Test Driven Development
Asp.Net MVC’
de sorumlulukların ayrı olması prensibi itibari ile her katman ayrı bir iş gerçekleştirir.
Böylece her işin kendine özgü test senaryoları ve süreçleri olabilir. Dolayısı
ile proje Test Driven Development’ a son derece uygun yapıdadır.
Yorumlar
Yorum Gönder