Bilmek istediğin her şeye ulaş

Asp.Net MVC mi Asp.Net WebForms mu? Geliştirdiğiniz projelerde MVC patternini kullanmaya neye göre karar veriyorsunuz?

Microsoft'un son zamanlarda web geliştirme cephesinde elini iyice güçlendiren Asp.Net MVC frameworkünün WebForms teknolojisine göre avantaj ve dezavantajlarını tam olarak ölçemiyorum. Her iki teknolojide de proje geliştiriyorum. Daha çok WebForms ile çalıştım. MVC'ye adapte olma sürecindeyim ancak dönüp dolaşıp şu yargıya varıyorum : WebForms ile daha kısa sürede daha çok iş/ürün üretiliyor. Düzenle
Büyük projelerde WebForm uygulamaları daha performanslı diye okumuştum.

Aşağıdaki resimde yapılan bir testin sonucunu görebilirsiniz.

.NET

Yukarıdaki adrestede ufak bir test yapılmış ve WebForm uygulamalarının daha hızlı çalıştığı söylenmiş.
  • Paylaş

Genel olarak kurumsal ve gelişime açık uygulamalar geliştiriliyorsa MVC kullanılmalı mantığı oluşmuş durumda. Ben bu görüşü savunmuyorum.


MVC uygulamaları profesyonel şekilde tasarlandıkları zaman hiçbir konuda WebForm ile karşılaştırılamaz. Örnekleyelim.


Katmanlı mimari yapısı sayesinde MVC'de çok daha rahat uygulama geliştirilir. Çünkü o platformda hiçbir kontrol yoktur, herşey yazılımcının elindedir. Ama bir WebForm platformunda GridView'i bazı durumlarda customize etmek çok zordur. Bu diğer kontoller içinde geçerlidir. Aklınıza şöyle bir cevap gelebilir. Bende GridView yerine Repeater kullanırım. O dinamik render edilen kontrolleri kullanamayacaksan neden WebForm kullanıyorsun?


WebForm'daki en önemli özelliklerden biriside ViewState yapısı. Bu sayede çok kolay şekilde dataları saklayıp işlemler yapabiliyoruz. Ama inanılmaz performans kaybına yol açar. Aklınıza şöyle bir cevap gelebilir. Bende Web.config'ten komple ViewState'i kapatırım. O zaman neden WebForm kullanıyorsun?


Her yazılımcının yapmadığı ama önemli olan diğer bir konu ise Test Driven Development. Uygulama akışının düzgün çalışıp çalışmadığını, dataların düzgün gelip gelmediğini, kurulan algoritmaların düzgün çalışıp çalışmadığını test etmeniz gerektiği durumlarda kullanılır. Bu yapıyı WebForm'a uygulayamazsınız. Ama MVC'nin yapısı TDD'yi desteklemektedir. O zaman neden WebForm kullanayım?


Özetlemek gerekirse MVC yazılımcıya daha rahat uygulama geliştirme imkanı sunduğu için her türlü uygulama MVC'de geliştirilebilir. Artık bundan sonrası yazılımcının keyfine kalmış birşey ;)


Ufak bir not

Ben MVC'ye geçiş yaptığımdan beri WebForm'a dönüş yapmadım. Her türlü ihtiyacımı fazlasıyla karşılıyor.

  • Paylaş

Zaman ve maliyet açısından bakmak gerektiğini düşünüyorum. MVC ile ilk tanıştığım andan itibaren bir çok insana şunu söyledim vaktin az ise MVC ile çok hızlı bir şekilde sonuca ulaşabilirsin. Hem temiz bir yapı hemde clientside için daha temiz kod demektir. WebForm kullanırken viewstate'i ve runat ile kullanmayarak daha çok html koda agırlık verirseniz WebForm ile güzel bir performans yakalayabilirsiniz. MVC yapısı ajax kullanımda çok anlaşılır hale geliyor. En basitinden User/Get denildiğinde bunun ne olduğunu (Method ve kontrol bazında) her insan anlayabiliyor. Bende Mvc'nin yavaş olduğunu bir yerde okudum, zaten araştırma yapıldığında da bir çok camur görebilirsiniz. @Burhan 'ın gönderdiği test sonucunuda 6 aylık istatistik deneyimime göre yorumlarsak :) insan sayısı arttıkca WebForm düşen MVC artan bir performans eğrisine sahiptir. MVC kullanmamak için sebep, öğrenmeye ayrılacak zamanın olmaması ve var olan webform bir projenin MVC'ye cevrilirken yaşanacak zorluklar olabilir. Yeni bir projeye başlanıyorsa MVC olmalı derim çünki Nuget kullanan insanlar çok iyi bilirki MVC için hazırlanan paketler WebForm için hazırlanan paketlerden çok çok daha fazla. Örn: Sosyal hesap entegrasyonları MVC ile çocuk oyuncağı, birde webform kullanan insanlara sormak gerekli özelliklede @Burhan 'a :)



Son edindiğim deneyime göre Mvc, arayüz tamamen farklı oldugunda ( Jquery, Extjs vb. UI teknolojileri kullanılarak yapılmak istendiğinde ) çok kullanışlı bir sistem olduğunu anladım. WebAPI gibi bir özellikle muhteşem işler çıkartılabiliyor. Attribute,ClientApi,Oauth,Area gibi farklı özellikleri çok basit bir şekilde kullanım artılar zincirinden bir tanesi. UpdateModel methodu gibi bir konuda varki sizi bir çok satırdan kurtarıyor. UpdateModel(model) ile tek bir method'da kaynağın değiştirilmiş olan alanlarını update edebiliyor.

  • Paylaş
1

Burhan Çetinkaya, WebForm tarafında sıkıntı o durum haklısın :D

Web form çok hantal bir yapı bir gridview yönetimi yapmaya kalksanız büyük sıkıntılar yaşıyorsunuz.. ajax kontrollerini kullanarak yaptığınız sayfalardan performans beklemeyin..açıkçası Web form kızlar için asp.net mvc erkekler için yapılmış bir yapı diyebiliriz..
  • Paylaş
Sonraki Soru
HESAP OLUŞTUR

İstatistikler

2705 Görüntülenme7 Takipçi4 Yanıt

Konu Başlıkları

Eş Anlamlı Soru Ekle

  • Asp. MVC mi daha iyi Asp.Net WebForms mu?

  • Geliştirdiğimiz projelerde MVC patternini nasıl kullanacağız?