Asp.Net Mvc’nin Avantajları (Asp.Net Mvc Yazı Dizisi – 2)

Avantajlar

Önceki Yazı : Asp.Net  Mvc Nedir (Asp.Net Mvc Yazı Dizisi – 1)

Asp.Net Web Forms'dan sonra Asp.Net Mvc yeni bir yapı olarak karşımıza çıktı.

– Peki bu yapıya ihtiyaç duyulmasının sebebi neydi?

Bu soruya cevap bulabilmek için, öncelikle Microsoft firmasının bir önceki web yazılım mimarisi olan Asp.Net Web Forms'u incelemekte fayda var.

Web Forms mimarisi, klasik web mimarisi olan "istek cevap" ilişkisinin yerine "olay güdümlü programlama" modelini getirdiğinde, pek çok masaüstü programcısı bu yönelimden çok memnun kalmıştı. Çünkü böylelikle masaüstü program geliştirir gibi, web uygulaması geliştirebileceklerdi.

Ancak bu durum, beklendiği gibi olmasına rağmen bazı sıkıntılar doğurdu.

Sorun 1 : Öncelikle ViewState adı verilen, bir gizli <input type="hidden" value="....."/> html tagı sorun meydana getirdi. Bu girdi saydaki girdilerin son halini şifrelenmiş bir şekilde üzerinde saklıyordu (Adı, Soyadı, İli vs.). Sayfa sunucuya her gidip geldiğinde sayfa yeniden oluşturulmakta ve ViewState'deki veriler yeniden eski yerlerine yazılmaktaydı. Bu ise sayfanın durumuna göre ViewState'deki verinin aşırı artması ve her seferinde bu verinin istemci ve sunucu arasında gidip gelmesinde yavaşlamalar oluşturmaktaydı.

Sorun 2 : Sayfa, yapılan işlemler de komple sunucuya gidip, tekrar geri geldiğinde, sayfanın ilk açılışı mı yoksa bir değişiklik sonucu mu sunucuya gittiğinin belirlenmesi için, sunucu tarafında her seferinde IsPostBack kontrolünün yapılması gerekmekteydi. Bu da hem ekstra zahmet, hem de tüm işlemlerde bu olaya dikkat etme gerekliliği doğurmaktaydı.

Sorun 3 : Neredeyse tamamen sunucu taraflı kontrollerle çalışılmaktaydı. Örneğin Html tarafında <input type="text"/> kullanılmaktayken, Web Forms'ta <asp:TextBox gibi bir yapı kullanılmaktaydı. Bu yapıyla oluşan kontrol otomatikman <input type="text"/> yapısına çevrilip, istemciye öyle gönderilmekteydi. Bundan dolayı bu kontrole id, class gibi bilgiler otomatik olarak eklenmekte, istemci tarafında Css ve Javascript işlevlerini kontrol etmek oldukça zorlaşmaktaydı.

Yukarıda sayılan bu ve bunun gibi sorunlara aslında Mvc mimarisi çok iyi bir çözüm olmuştur. Artık tamamen Html taglarıyla çalışmaktayız. Javascript ve Css işlevleri çok daha kolay kontrol edilebilmekte, bu da sınırsız özgürlük imkanı tanımaktadır.