ASP.Net MVC ve web formlarını kullanmanın en büyük avantajı


164

Birini diğerinin üzerinde kullanmanın avantajları nelerdir?

Yanıtlar:


165

ASP.net MVC'nin ana avantajları :

  1. Oluşturulan HTML üzerinde tam kontrolü etkinleştirir.

  2. Endişelerin temiz bir şekilde ayrılmasını sağlar (SoC).

  3. Test Odaklı Geliştirmeyi (TDD) etkinleştirir .

  4. JavaScript çerçeveleriyle kolay entegrasyon.

  5. Ağın vatansız doğasının tasarımını takiben.

  6. SEO sağlayan RESTful URL'ler.

  7. ViewState ve PostBack olayları yok

ASP.net Web Formunun ana avantajı :

  1. Bu sağlar RAD gelişimini

  2. Winform geliştirmeden gelen geliştiriciler için kolay geliştirme modeli.


32
SoC ile ilgili olarak, insanlar web formlarında kullandıkları gibi, çok fazla iş mantığı veya hatta veri erişim kodu içeren "yağ" denetleyicileri yazarak onunla uğraşabilirler. SoC'nin kodlayıcı tarafından sağlanması gereken bir şey olduğunu söyleyebilirim, fw yardımcı olamaz.
rodbv

7
@ rodbv: Çok doğru, ancak MVC sizi doğru yönde itiyor ya da en azından bunu yapmak için çembere atlamıyor. Belki de bu nokta 'SoC'nin uygulanmasını kolaylaştırır' gibi bir şey okumalıdır
Erik van Brakel

4
Diğer herhangi bir yöntem üzerinde "Test Odaklı Geliştirmeyi Etkinleştir" nasıl olur? Ayrıca HttpContext.RewritePath yöntemi (dize) .NET 2.0 beri etrafında olmuştur ne zaman RESTful URL'leri izin karıştı?
Mark Broadhurst

2
Bu noktalar çoğunlukla MVC tarafı için doğru olsa da, birçoğu şimdi WebForms'a entegre ediliyor.
rtpHarry

Daha fazla ayrıntı içeren bu cevabın kaynağına bağlantı: weblogs.asp.net/shijuvarghese/archive/2008/07/09/…
DK.

91

ASP.NET Web Formları ve MVC, Microsoft tarafından geliştirilen iki web çerçevesidir - ikisi de iyi seçimlerdir. Ne web çerçeveleri diğeriyle değiştirilmeyecek ne de bunların tek bir çerçevede 'birleştirilmesi' planları yoktur. Sürekli destek ve geliştirme Microsoft tarafından paralel olarak yapılır ve ikisi de 'ortadan kalkmaz'.

Bu web çerçevelerinin her biri, bazıları bir web uygulaması geliştirirken dikkate alınması gereken avantajlar / dezavantajlar sunar. Her iki teknolojiyi kullanarak bir web uygulaması geliştirilebilir - belirli bir uygulamanın geliştirilmesini, bir teknolojiyi diğerine karşı seçmeyi kolaylaştırabilir veya tersini yapabilir.

ASP.NET Web Formları:

  • Geliştirme durumu destekler • Windows uygulamalarına benzer şekilde, bir web uygulamasının kullanıcının ne yaptığının farkında olduğu yanılsamasını verir. Ie 'Sihirbaz' işlevselliğinin uygulanmasını biraz daha kolaylaştırır. Web formları, bu karmaşıklığın çoğunu geliştiriciden gizlemekte harika bir iş çıkarır.
  • Hızlı Uygulama Geliştirme (RAD) • Sadece 'atlama' ve web formları sunmaya başlama yeteneği. Bu, bazı MVC topluluğu tarafından tartışılıyor, ancak Microsoft tarafından itiliyor. Sonunda, geliştiricinin uzmanlık düzeyine ve neyle rahat olduklarına iniyor. Web formları modeli muhtemelen daha az deneyimli geliştiriciler için daha az öğrenme eğrisine sahiptir.
  • Daha büyük kontrol araç kutusu • ASP.NET Web Formları, çok daha büyük ve daha sağlam bir araç kutusu (web kontrolleri) sunarken, MVC, jQuery (Javascript) yoluyla zengin istemci tarafı kontrollere daha fazla dayanan daha ilkel bir kontrol seti sunar.
  • Olgun • 2002'den beri var ve sorular, sorunlar vb. İle ilgili çok fazla bilgi var. Daha fazla üçüncü taraf kontrolü sunuyor - mevcut araç setlerinizi dikkate almanız gerekiyor.

ASP.NET MVC:

  • Endişelerin ayrılması (SoC) • Teknik açıdan bakıldığında, MVC içindeki kodun organizasyonu çok temiz, düzenli ve taneciklidir, bu da bir web uygulamasının işlevsellik açısından ölçeklenmesini kolaylaştırır (umarım). Harika tasarımı geliştirme açısından destekler.
  • İstemci tarafı araçlarıyla daha kolay entegrasyon (zengin kullanıcı arayüzü araçları) • Web uygulamaları, her zamankinden daha fazla, masaüstünüzde gördüğünüz uygulamalar kadar gittikçe daha zengin hale geliyor. MVC ile, bu araç setleriyle (jQuery gibi) Web Formlarındakinden daha kolay ve sorunsuz bir şekilde entegre olmanızı sağlar.
  • Arama Motoru Optimizasyonu (SEO) Dostu / Vatansız • URL'ler arama motorlarına daha uygundur (örn. Mywebapplication.com/users/ 1 - mywebapplication / users / getuser.aspx (kimlik oturumda geçmiştir) ile 1 kimliğine sahip kullanıcıyı alın. Benzer şekilde, MVC vatansız olduğundan, aynı pencereden birden fazla web tarayıcısı üreten kullanıcıların (oturum çarpışmaları) baş ağrısını ortadan kaldırır. Aynı hatlar boyunca, MVC buna karşı 'savaşmak' yerine vatansız web protokolüne bağlı kalır.
  • Yüksek düzeyde kontrol gerektiren geliştiricilerle iyi çalışır • ASP.NET web formlarındaki birçok kontrol, bir sayfa oluşturulduğunda gördüğünüz ham HTML'nin çoğunu otomatik olarak oluşturur. Bu, geliştiriciler için baş ağrısına neden olabilir. MVC ile, render edilenler üzerinde tam kontrole sahip olmaya daha iyi borç verir ve sürpriz yoktur. Daha da önemlisi, HTML formlarının genellikle bir performans artışına eşit olabilecek Web formlarından çok daha küçük olması - ciddi bir şekilde dikkate alınması gereken bir şeydir.
  • Test Odaklı Geliştirme (TDD) • MVC ile, şeylerin web tarafı için daha kolay testler oluşturabilirsiniz. Ek bir test katmanı, beklenmedik davranışlara karşı başka bir savunma katmanı daha sağlayacaktır.

Kimlik doğrulama, yetkilendirme, yapılandırma, derleme ve dağıtım , iki web çerçevesi arasında paylaşılan özelliklerdir .


27
"MVC ile, oluşturulanlar üzerinde tam kontrole sahipsiniz" - ayrıca Etiketler yerine Literals, Paneller yerine Yer Tutucular, Datagrids yerine Tekrarlayıcılar vb. Kullanırsanız WebForms ile tam kontrole sahip olabilirsiniz. bunun doğru olduğuna inanıyorum. Downvote ..
masty

3
Masty - Şahsen aşağıya vuracağımı bilmiyorum, ama söylediklerinin geri kalanına katılıyorum.
Peter

4
@masty - StackOverflow dünyasını nitpicking ve bu sorunun önemsenmemesini istediğin için teşekkürler. Cevabımı sadece senin için düzenledim - umarım oyunu geri almanı istediğin herkesle birlikte geri alabilirim. Teşekkürler!
JC

6
masty kısmen katılıyorum, ancak değişmez değerleri, yer tutucuları ve tekrarlayıcıları kullanırken, kod arkasına daha fazla html taşıyorsunuz. Bu da .aspx'i okuyan tasarımcılara ve .aspx.cs'yi okuyan kodlayıcılara karışıklığa neden olabilir. Bu yüzden evet mümkündür, ancak evet, ASP.Net WebForms'un amacını da yener. Bu durumda ControlAdapters'ın daha temiz bir çözüm olduğunu söyleyebilirim. Denetimleri değiştirmek yerine, bunların oluşturulma şeklini değiştirirsiniz.
Aidiakapi

2
"MVC ile neyin yaratıldığı üzerinde tam kontrole sahipsiniz" ifadesi karışıktır. Bence daha iyi ifade, "MVC çerçevesi daha az oluşturma yapar ve oluşturulan şey daha yalın olur. Oluşturulan belirli HTML / CSS üzerinde daha fazla kontrol sahibi olursunuz, ancak bu kontrolü elde etmek için işi yapmanız gerekir."
kingdango

17

Klasik ASP'yi hatırlayacak kadar yaşlı olan herkes, html ve javascript ile karıştırılmış kodlu bir sayfa açmanın kabusunu hatırlayacak - en küçük sayfa bile ne halt yaptığını anlamak için bir acıydı. Yanlış olabilirdim ve umarım öyleyim, ama MVC o eski kötü günlere geri dönmek gibi görünüyor.

ASP.Net ortaya çıktığında, kodu içerikten ayırarak ve web tasarımcılarının html oluşturmasını ve kodlayıcıların arkasındaki kod üzerinde çalışmasını sağlayarak kurtarıcı olarak selamlandı. ViewState'i kullanmak istemeseydik, kapattık. Bir nedenden dolayı kodu arkasında kullanmak istemiyorsak, kodumuzu klasik ASP gibi html içine yerleştirebiliriz. PostBack'i kullanmak istemeseydik, işlenmek üzere başka bir sayfaya yönlendirdik. ASP.Net denetimlerini kullanmak istemiyorsak standart html denetimlerini kullandık. Denetimlerimizde ASP.Net runat = "server" kullanmak istemiyorsak Yanıt nesnesini sorgulayabiliriz.

Şimdi büyük bilgeliğinden biri (muhtemelen klasik ASP'yi hiç programlamamış biri), kodun içerikle karıştırıldığı günlere geri dönüp "endişelerin ayrılması" dediği zamana karar verdi. Elbette, temiz html oluşturabilirsiniz, ancak klasik ASP ile yapabilirsiniz. "Görünümünüzde çok fazla kod varsa doğru şekilde programlamıyorsunuz" demek, "klasik ASP'de iyi yapılandırılmış ve yorumlanmış bir kod yazdıysanız ASP.NET'ten çok daha temiz ve daha iyi" demek gibidir.

Eğer içerik ile kod karıştırma geri dönmek istedim ben bu tür bir geliştirme için çok daha olgun bir ortam olan PHP kullanarak geliştirmeye bakmak istiyorum. ASP.NET ile ilgili çok fazla sorun varsa neden bu sorunları düzeltmiyorsunuz?

Son olarak, yeni Razor motoru, html ve kod arasında ayrım yapmanın daha zor olduğu anlamına geliyor. En azından ASP'de <% ve%> etiketlerini açıp kapatabiliriz, ancak şimdi tek gösterge @ sembolü olacaktır.

PHP'ye geçip birinin kodu içerikten tekrar ayırması için 10 yıl daha beklemenin zamanı gelmiş olabilir.


7
+1 Açık. MVC'ye ilk tepkim, tekrar tekrar klasik ASP yapıyordum; VBScript yerine bu sefer sadece C # 'da.
DancesWithBamboo

3
Bu cevabın neden bu kadar çok oy aldığını görünce şaşırdım. İlk olarak, ASP.NET MVC yerleşik MVC ayrımı vardır. Tabii ki, bunu ASP de yapmak mümkündür. İkincisi, ASP.NET MVC klasik ASP'den çok daha fazlasıdır. Bir çok yararlı yardımcı ile birlikte .NET'in gücü ile birlikte HTML üzerinde ince kontrol sağlar. Üçüncüsü, @, <%%> gibi iyi bir gösterimdir. Razor görünümleriniz için iyi bir düzenleyici @ notasyonunu destekleyecektir. Son olarak, PHP olgun? me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design ASP.NET MVC harika bir platform. Biraz daha dikkat et.
JP ten Berge

Benimle dalga mı geçiyorsun? Ben onun "<? ...?>" Notasyonu ile PHP kullanıyorum ve tamamen ayrıntılı olarak bulduk. "@" Sembolünün "<% ...%>" etiketlerinden daha kolay tanındığını görmüyorum. Ayrıca, HTML şablonlarında nadiren "@" simgesini kullanırsınız.
Exegesis

Gözlerim bir ustura sayfasında "<%%>" cehenneminden çok daha iyi dinlenebilir. Bir .aspx sayfası okumak başım ağrıyor. Neyin yaratıldığını da görmeyi tercih ederim. Bir @foreach (..) {<tr> ... </tr>} bloğu bir <abc: MyViewControl ID = "..." runat = "server" DatasourceID = "... "/>. Çok sayıda istemci tarafı manipülasyonu yapıyorum ve tam olarak neyin nerede, hangi kimlik, stil ve sınıflarla oluşturulacağını bilmem gerekiyor. Bir kontrolün anında yapmasına izin vermek yerine kendim yapmayı tercih ederim. Özellikle bazı kontroller ayarlarına bağlı olarak farklı şekilde işlendiğinde.
Thanasis Ioannidis

Bunun upvotes olduğunu şaşırdım, MVC çerçevesinin tamamen yanlış anlaşılması. Kendinizi MVC'deki içerikle karıştırırken, yanlış yapıyorsunuz demektir. Görünümleriniz içerik içeriyor, denetleyicileriniz (ve kullandıkları sınıflar) kod içeriyor. MVC'nin temel ilkelerinden biridir.
Josh Noe

14

PHP veya JSP gibi diğer geliştiricilerle çalışıyorsanız (ve rayları tahmin ediyorum) - tüm bu 'kötü' ASP.NET'e sahip olmayacağınız için sayfaları dönüştürmek veya işbirliği yapmak çok daha kolay bir zaman geçireceksiniz. her yerde olaylar ve kontroller.


hangisini kullanarak "çok daha kolay zaman"?
cregox

5
@cawas - MVC ile çok daha kolay. ASP.NET MVC'de hiçbir olay yoktur. temelde standart HTML ve css ile ilgileniyorsunuz ve PHP / JSP geliştiricilerinin öğrenmesi gereken pek çok olay ve kontrolle değil
Simon_Weaver

ASP.NET hem WebForms hem de MVC için temel oluşturur. İnsanlar WebForms'u ASP.NET ile karıştırıyor. "MVC vs ASP.NET" yoktur. "ASP.NET MVS" ve "ASP.NET WebForms" var. Ve aslında birbirleriyle savaşmıyorlar. Onlar bir web sitesi oluşturmak için, farklı artıları ve eksileri ile sadece farklı yollar vardır
Thanasis Ioannidis

13

MVC ile ilgili sorun "uzmanlar" için bile çok değerli zaman yiyor ve çok çaba gerektiriyor olmasıdır. İşletmeler, arkasındaki teknolojiden bağımsız olarak "Hızlı Çözüm" işlevi gören temel şey tarafından yönlendirilir. WebForms zaman ve para tasarrufu sağlayan bir RAD teknolojisidir. Daha fazla zaman gerektiren hiçbir şey işletmeler tarafından kabul edilemez.


1
İşletmeler için +1 temel "Hızlı Çözüm" temel şey tarafından yönlendirilir
Dragos Durlut

1
Sorun, bazı hızlı çözümlerin işe yaramadığıdır, çünkü ilk etapta hızlı olmayı amaçlamaktadırlar. Son deneyimler: Temel oluştur-düzenle-güncelleme yapmak için hızlı bir web formu sayfası. Biraz yavaş olan infopath equiveland sayfasından "daha hızlı" olması gerekiyordu. Aslında yeni çözüm, infopath sayfası ile neredeyse aynı performansa sahipti, ancak IE7'de işe yaramaz olma noktasına son derece yavaş olmasıydı. Sayfayı açmak için 5 saniye ve bir birleşik giriş kutusu her tıklandığında 5 saniye ... Tüm bunlar, hızlı olması gerektiğinden. Düşünce yok, planlama yok.
Thanasis Ioannidis

1
Bundan sonra, ağır ve gereksiz istemci tarafı komut dosyalarından kurtulmak için tüm kontrolleri kaldırdık ve bootstrate veri ve olaylarla manuel jtml kontrolleri ve jQuery ve BackBone.js'nin bir kombinasyonunu oluşturduk. Aslında bir webformları sayfasında barındırılan bir MVC yaklaşımıdır. Elbette, iyi olsa da ve WebForms ve MVC'nin planlanmasıyla her ikisi de gerçekten iyi performans gösterebilir, ancak WebForms, sadece ekranınızda bir şeylerin hareket ettiğini görmek için sayfanızdaki kontrolleri atmanız için sizi cezbeder ve ardından kaldırmadan daha fazla zaman harcarsınız hiç.
Thanasis Ioannidis

11
  1. Uygun AJAX, örn. JSONResimler kısmi sayfa geri gönderme saçmalıklarını içermez.
  2. görünüm yok +1
  3. HTML kimliklerini yeniden adlandırma yok.
  4. HTML'yi temizle = şişkinlik yok ve XHTML veya standartlarla uyumlu sayfalar oluşturmada iyi bir çekim.
  5. Artık AXD javascript oluşturulmuyor.

9

Benim için en büyük avantaj, Model, Görünüm ve Kontrolör katmanlarınız arasındaki net ayrımdır. En başından itibaren iyi tasarımın tanıtımına yardımcı olur.


4
Bu tür bir modelle daha önce hiç çalışmadıysanız, bunun büyük bir satış noktası olduğunu kabul ediyorum, ancak MVC veya MVP şablonunuzu WebForms'ta uygulayabilirsiniz. İnsanların veri kümeleriyle bir web formunu monolit etmek yerine bir desene geçmelerini sağlamak için şeref, ama genellikle işe aldığım insanların türü değiller.
Mark Broadhurst

9

ASP.Net üzerinde MVC herhangi bir avantaj görmedim. 10 yıl önce Microsoft, MVC'nin cevabı olarak UIP (Kullanıcı Arayüzü Süreci) ile geldi. Bir fiyasko oldu. O zamanlar UIP ile büyük bir proje (4 geliştirici, 2 tasarımcı, 1 test cihazı) yaptık ve tam bir kabustu.

Sadece Hype uğruna bandwagon'a atlamayın. Yukarıda listelenen tüm avantajlar Asp.Net'te zaten mevcuttur ( Asp.Net 4'te daha büyük ayarlarla [ Asp.Net 4'teki yeni özellikler ].

Geliştirme ekibiniz veya Asp.Net'li tek bir geliştirici ailesi buna bağlıysa ve müşterilerinizi memnun etmek için hızlı bir şekilde güzel ürünler yapın (çalışma saatlerinizi ödeyen). MVC değerli zamanınızı tüketecek ve Asp.Net ile aynı sonuçları üretecektir :-)


1
ASP.NET 4'te ara sıra kontrolde etkinleştirirken varsayılan olarak
görünüm durumunu devre dışı bırakmak

Hem WebForms hem de MVC, ASP.NET'in üzerine kurulmuştur.
Thanasis Ioannidis

8

Francis Shanahan,

  1. Neden kısmi postback'i "saçmalık" olarak adlandırıyorsunuz? Bu, Ajax'ın temel özelliğidir ve Atlas çerçevesinde ve Telerik gibi harika üçüncü taraf kontrollerinde çok iyi kullanılmıştır.

  2. Gösterim durumu ile ilgili fikrinizi kabul ediyorum. Ancak, geliştiriciler görünüm durumunu devre dışı bırakmaya dikkat ederse, bu, oluşturulan HTML'nin boyutunu büyük ölçüde azaltabilir ve böylece sayfa hafif hale gelir.

  3. Yalnızca HTML Server denetimleri saf html denetimleri yerine ASP.NET Web Form modelinde yeniden adlandırılmıştır. Ne olursa olsun, yeniden adlandırma yapılırsa neden bu kadar endişelisiniz? İstemci tarafında birçok javascript etkinliği ile uğraşmak istediğinizi biliyorum, ancak web sayfalarınızı akıllıca tasarlarsanız, istediğiniz tüm kimlikleri kesinlikle alabilirsiniz

  4. ASP.NET Web Formları bile XHTML Standartlarını karşılar ve herhangi bir şişkinlik görmüyorum. Bu neden bir MVC modeline ihtiyacımız olduğuna dair bir gerekçe değil

  5. Yine neden AXD Javascript ile uğraşıyorsunuz? Seni neden acıtıyor? Bu yine geçerli bir gerekçe değil

Şimdiye kadar, klasik ASP.NET Web formlarını kullanarak uygulama geliştirme hayranıyım. Örneğin: Bir açılır listeyi veya tablo görünümünü bağlamak istiyorsanız, en fazla 30 dakika ve 20 satırdan fazla kod (en az elbette) olması gerekir. Ancak MVC durumunda, geliştiricilerle ne kadar acı olduğunu konuşun.

MVC en büyük dezavantajı geri ASP gün gidiyoruz. Sunucu kodu ve HTML karıştırmak spagetti kod hatırlıyorum ??? Aman tanrım, javascript, HTML, JQuery, CSS, Sunucu etiketleri ile karışık bir MVC aspx sayfası okumaya çalışın ve ne değil .... Herhangi bir vücut bu soruya cevap verebilir?


6
Kısmi postback'ler çirkin bir
çamur

3
Görüşlerinizde çok sayıda kod varsa, yanlış bir şey yapıyorsunuz demektir. Görünümlerdeki kod yalnızca düzen ile ilgili olmalıdır.
UpTheCreek

1
Javascript ile css ve html ile karıştırılmış bir sayfa görmenizin tek nedeni, ayrı stilleri ve komut dosyalarını rahatsız edemeyen tembel bir geliştiricinin çalışmasına bakmanızdı. Bu web formlarında VE mvc'de olabilir. Ben komut dosyası etiketleri çirkin katılıyorum, ama MVC3 ile artık emin değilim, ve en azından dosya arkasında bir koda bakmadan ve bir kontrol databound olduğu noktayı bulmadan neler olduğunu görebilirsiniz ...
jcvandan

Ayrıca MVC kullanarak spagetti kodu oluşturuyorsanız, endişelerin ayrılması ilkesine bağlı kalmıyorsunuz ve güzel bir mimari model
kullanmıyorsunuz

1
Her ikisini de kullanarak hiçbir şeyin WebForms'tan daha karışık olmadığını söyleyebilirim. MVC temiz, sunucu etiketleri hariç, ama bunun yanı sıra, tüm karışıklık kötü programcıların hatasıdır. MVC, mantığı tasarımdan ayırmak için çekirdek tarafından tasarlanmıştır. Telerik'ten de bahsediyorsun. ASP.Net AJAX için Telerik böyle dağınık bir koda neden olur. Hızdan bahsetmemek gerekirse, (karıştırmak) bir telerik ızgarayı sıralamak: ASP.Net WebForms'ta 4 sayfa için 500ms, MVC'de 84 sayfa için 200ms alır. (Demo ve firebug'u krom için test edildi.) Performans ve ayrılma söz konusu olduğunda MVC kesinlikle kazanır.
Aidiakapi

6

Web formları ayrıca, Telerik gibi üçüncü taraf kontrol sağlayıcılarının daha fazla olgunlaşmasından ve desteğinden yararlanmaktadır.


2
MVC ile yapılamayacağını söylemiyorum, çünkü eminim, ama birlikte bir sürü bling Telerik ve WebForms ile hızlı ve kirli bir intranet veya extranet uygulaması tokatlamak istiyorsanız yenmek zordur. Alev al, dürüst gerçek bu.
infocyde

Telerik'in de MVC kontrolleri var (daha az ve daha az seçenekle, ancak yine de sahipler) ve WebForm varyantlarından daha hızlı AOT.
Aidiakapi

5

Web formlarında, PageAdapters ile kaldırılabilen viewstate, eventvalidation ve benzeri gibi birkaç etiket dışında neredeyse tüm html'yi elle oluşturabilirsiniz. Kimse sizi GridView veya kötü html oluşturma çıktısına sahip başka bir sunucu tarafı denetimi kullanmaya zorlamaz.

MVC'nin en büyük avantajının HIZ olduğunu söyleyebilirim!

Sıradaki kaygının ayrılmasıdır. Ancak tüm BL ve DAL mantığını Controller / Action içine koymanız yasak değildir! Web formlarında da yapılabilen sadece görünüm ayrımıdır (örneğin MVP deseni). İnsanların mvc için bahsettikleri bir çok şey web formlarında yapılabilir, ancak bazı ek çabalarla.
Temel fark, isteğin denetleyiciye gelip görünmemesi ve bu iki katmanın ayrılması, web formlarında olduğu gibi kısmi sınıf aracılığıyla bağlanmamış olmasıdır (aspx + kod arkasında)


Yani geliştirme hızı veya yürütme hızı?
Jules

1
Özellikle MVC ile telerik kullanırken. Demolarından bir ızgara sıralamak: 4 sayfa için 500ms (WebForms), 84 sayfa için 200ms (MVC). Benim için MVC'nin tercihi (şirketimde WebForms kullanmamıza rağmen, geçiş yapmayı düşündüğümüzü düşünüyor olsak da), daha temiz olması, görüşlerinizi, çıktınızı, modelinizi, dağınıklığınızı : P ve hepsini bir araya getiren kontrol cihazlarınız
Aidiakapi

4

2 sentim:

  • ASP.net formları Hızlı uygulama Geliştirme ve iş değeri hızla eklemek için mükemmeldir. Yine de çoğu intranet uygulaması için kullanıyorum.
  • URL ve HTML'yi daha fazla kontrol ettiğinizde MVC, Arama Motoru Optimizasyonu için mükemmeldir
  • MVC genellikle daha yalın bir sayfa üretir - görünüm durumu ve daha temiz HTML yok = hızlı yükleme süreleri
  • MVC sayfanın bazı bölümlerini önbelleğe almak kolaydır. -MVC yazmak eğlencelidir: - kişisel görüş ;-)

3

MVC bir sayfada birden fazla form olmasını sağlar, Bildiğim küçük bir özellik ama kullanışlı!

Ayrıca MVC desen Ben, esp. birkaç ay sonra tekrar ziyaret ettiğinizde.


2
ASP.NET Web Formları bir sayfada istediğiniz sayıda forma sahip olmanızı sağlar. Sınırlama sadece birisinin "runat =" sunucu "özelliğine sahip olmasıdır
Andrei Rînea

1
@AndreiRinea Bence şu anlama geliyordu: P, runat="server"hala web formlarını kullanmak istediğinizde form olmayan bir etikette çok fazla kullanım yoktur ve formları iç içe alamayacağınız / yapamadığınız için, ne demek istediğini açık bir şekilde :)
Aidiakapi

2

MVC Denetleyici:

    [HttpGet]
    public ActionResult DetailList(ImportDetailSearchModel model)
    {
        Data.ImportDataAccess ida = new Data.ImportDataAccess();
        List<Data.ImportDetailData> data = ida.GetImportDetails(model.FileId, model.FailuresOnly);

        return PartialView("ImportSummaryDetailPartial", data);
    }

MVC Görünümü:

<table class="sortable">
<thead>
    <tr><th>Unique Id</th><th class="left">Error Type</th><th class="left">Field</th><th class="left">Message</th><th class="left">State</th></tr>
</thead>
<tbody>
    @foreach (Data.ImportDetailData detail in Model)
    {
    <tr><th>@detail.UniqueID</th><th class="left">@detail.ErrorType</th><th class="left">@detail.FieldName</th><th class="left">@detail.Message</th><th class="left">@detail.ItemState</th></tr>
    }
</tbody></table>

Bu ne kadar zor? ViewState, BS Sayfası yaşam döngüsü yok ... Sadece saf verimli kod.


1

Daha küçük siteler için sadece iki avantajı görebilirsiniz: 6) SEO sağlayan RESTful URL'ler. 7) ViewState ve PostBack olayları yok (ve genel olarak daha yüksek performans)

Küçük siteler için test yapmak bir sorun oluşturmaz, bir site zaten düzgün bir şekilde kodlandığında tasarım avantajları da değildir, MVC birçok yönden gizler ve değişiklikleri yapmayı zorlaştırır. Hala bu avantajların buna değip değmeyeceğine karar veriyorum.

Daha büyük çoklu geliştirici sitelerinde MVC'nin avantajını açıkça görebiliyorum.


1

Bulduğum en önemli fayda, projeyi daha test edilebilir bir yapıya zorlaması. Bu, web formları (MVP deseni) ile de kolayca yapılabilir, ancak geliştiricinin bunu anlamasını gerektirir, birçok dont.

Web formları ve MVC, her ikisi de farklı alanlarda mükemmel olan uygulanabilir araçlardır.

Öncelikle B2B / LOB uygulamaları geliştirirken web formlarını şahsen kullanıyorum. Ancak bunu her zaman birim testlerimiz için% 95 +% kod kapsamı elde edebileceğimiz bir MVP deseni ile yapıyoruz. Bu ayrıca, webcontrols özellik değerinin özelliklerle ilgili testin otomatik olarak gösterilmesine otomatik olarak izin verir.

bool IMyView.IsAdminSectionVisible{
       get{return pnlAdmin.Visible;}
       get{pnlAdmin.Visible=value;}
    }

) Bu test seviyesinin modelimi kirletmeden MVC'de kolayca elde edildiğini düşünmüyorum.


0

Artık 'post-back kontrolleri' kullanmaktan ve onları geleneksel bir asp.net ortamına nasıl sokacağınızı bulmaktan kendinizi kötü hissetmiyorsunuz.

Bu, modern (kullanımı ücretsiz) javascript'in bu veya bu veya bu gibi kontrollerin bir kare delik hissine yuvarlak bir dübel takmaya çalışmadan kullanılabileceği anlamına gelir .


0

Modern javascript denetimleri ve JSON istekleri MVC kullanılarak çok kolay bir şekilde ele alınabilir. Burada, bir eylemden başka bir eyleme veri göndermek için birçok başka mekanizma kullanabiliriz. Bu yüzden web formları yerine MVC'yi tercih ediyoruz. Ayrıca hafif sayfalar da oluşturabiliriz.


0

Benim kişisel görüşüm, ASP.Net MVC kullanmanın en büyük dezavantajı, onu koruyan geliştiriciler için ... html cehennem CODE BLOCKSile karıştırılmış olmasıdır ...HTML

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.