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

Bu blogdaki popüler yayınlar

En İyi 20 Hacker Duvar Kağıtları