Grootste voordeel van het gebruik van ASP.Net MVC versus webformulieren

Wat zijn enkele voordelen van het gebruik van de ene boven de andere?


Antwoord 1, autoriteit 100%

De belangrijkste voordelen van ASP.net MVCzijn:

  1. Maakt volledige controle over de weergegeven HTML mogelijk.

  2. Zorgt voor een schone scheiding van zorgen (SoC).

  3. Maakt Test Driven Development (TDD)mogelijk.

  4. Eenvoudige integratie met JavaScript-frameworks.

  5. Volgend op het ontwerp van de staatloze aard van het web.

  6. RESTful urls die SEO mogelijk maken.

  7. Geen ViewState- en PostBack-gebeurtenissen

Het belangrijkste voordeel van ASP.net-webformulieris:

  1. Het biedt RADontwikkeling

  2. Eenvoudig ontwikkelmodel voor ontwikkelaars die afkomstig zijn van winform-ontwikkeling.


Antwoord 2, autoriteit 55%

ASP.NET Web Forms en MVC zijn twee webframeworks ontwikkeld door Microsoft – het zijn beide goede keuzes. Geen van beide webframeworks zal door de andere worden vervangen en er zijn ook geen plannen om ze te laten ‘samenvoegen’ tot één framework. Voortdurende ondersteuning en ontwikkeling worden parallel uitgevoerd door Microsoft en geen van beide zal ‘weggaan’.

Elk van deze webframeworks biedt voor-/nadelen – met sommige moet rekening worden gehouden bij het ontwikkelen van een webtoepassing. Een webtoepassing kan met beide technologieën worden ontwikkeld – het kan de ontwikkeling voor een bepaalde toepassing gemakkelijker maken om de ene technologie versus de andere te selecteren en vice versa.

ASP.NET-webformulieren:

  • Ontwikkeling ondersteunt staat
    • Geeft de illusie dat een webapplicatie weet wat de gebruiker heeft gedaan, vergelijkbaar met Windows-applicaties. D.w.z. Maakt ‘wizard’-functionaliteit een beetje gemakkelijker te implementeren. Webformulieren doen geweldig werk door veel van die complexiteit voor de ontwikkelaar te verbergen.
  • Snelle applicatie-ontwikkeling (RAD)
    • De mogelijkheid om er gewoon ‘in te springen’ en webformulieren af ​​te leveren. Dit wordt betwist door een deel van de MVC-gemeenschap, maar wordt gepusht door Microsoft. Uiteindelijk komt het neer op het expertiseniveau van de ontwikkelaar en waar hij zich prettig bij voelt. Het webformulierenmodel heeft waarschijnlijk minder leercurve voor minder ervaren ontwikkelaars.
  • Grotere toolbox voor controle
    • ASP.NET Web Forms biedt een veel grotere en robuustere toolbox (webcontroles), terwijl MVC een meer primitieve controleset biedt die meer vertrouwt op uitgebreide controles aan de clientzijde via jQuery (Javascript).
  • Volwassen
    • Het bestaat al sinds 2002 en er is een overvloed aan informatie met betrekking tot vragen, problemen, enz. Biedt meer controle door derden – u moet rekening houden met uw bestaande toolkits.

ASP.NET MVC:

  • Scheiding van zorgen (SoC)
    • Vanuit technisch oogpunt is de organisatie van code binnen MVC erg schoon, georganiseerd en gedetailleerd, waardoor het (hopelijk) gemakkelijker wordt voor een webtoepassing om te schalen in termen van functionaliteit. Promoot geweldig design vanuit een ontwikkelingsstandpunt.
  • Eenvoudige integratie met client-side tools (rijke tools voor gebruikersinterface)
    • Meer dan ooit worden webapplicaties steeds net zo rijk als de applicaties die u op uw desktops ziet. Met MVC kun je gemakkelijker en naadlooser integreren met dergelijke toolkits (zoals jQuery) dan in Web Forms.
  • Zoekmachineoptimalisatie (SEO) vriendelijk / staatloos
    • URL’s zijn vriendelijker voor zoekmachines (d.w.z. mywebapplication.com/users/ 1 – haal gebruiker op met een ID van 1 vs mywebapplication/users/getuser.aspx (id doorgegeven in sessie)). Evenzo, aangezien MVC staatloos is, neemt dit de hoofdpijn weg van gebruikers die meerdere webbrowsers vanuit hetzelfde venster spawnen (sessiebotsingen). In dezelfde lijn houdt MVC zich aan het staatloze webprotocol in plaats van ertegen te ‘vechten’.
  • Werkt goed met ontwikkelaars die hoge mate van controle nodig hebben
    • Veel bedieningselementen in ASP.NET-webformulieren genereren automatisch veel van de RAW HTML die u ziet wanneer een pagina wordt weergegeven. Dit kan leiden tot hoofdpijn voor ontwikkelaars. Met MVC leent het zich beter om volledige controle te hebben met wat wordt weergegeven en er zijn geen verrassingen. Nog belangrijker is dat de HTML-formulieren typisch veel kleiner zijn dan de webformulieren die kunnen gelijkstellen aan een prestatiebureau – iets om serieus te overwegen.
  • Test Driven Development (TDD)
    • Met MVC kunt u gemakkelijker tests maken voor de webzijde van de dingen. Een extra testlaag zal nog een andere verdedigingslijst bieden tegen onverwacht gedrag.

Authenticatie, autorisatie, configuratie, compilatie en implementatie zijn alle functies die worden gedeeld tussen de twee webkaders.


Antwoord 3, Autoriteit 10%

Iedereen die oud genoeg is om de klassieke ASP te onthouden, zal de nachtmerrie onthouden van het openen van een pagina met code die is gemengd met HTML en JavaScript – zelfs de kleinste pagina was een pijn om erachter te komen wat het aan het doen was. Ik zou ongelijk kunnen zijn, en ik hoop dat ik dat ben, maar MVC ziet eruit als terug naar die slechte oude dagen.

Toen ASP.NET erop kwam, werd het geprezen als de Heiland, het scheiden van de Code uit de inhoud en waarmee we webontwerpers de HTML- en -programma’s aan de achterkant van de code laten maken. Als we ViewState niet willen gebruiken, hebben we het uitgeschakeld. Als we niet om de een of andere reden geen code achter wilden gebruiken, kunnen we onze code in de HTML zien, net als klassieke ASP. Als we niet postback willen gebruiken, worden we doorgestuurd naar een andere pagina voor verwerking. Als we geen ASP.NET-besturingselementen wilden gebruiken, gebruikten we standaard HTML-besturingselementen. We kunnen zelfs het responsobject ondervragen als we geen ASP.net Runat = “Server” op onze bedieningselementen wilden gebruiken.

Nu iemand in hun grote wijsheid (waarschijnlijk iemand die nooit de klassieke ASP heeft geprogrammeerd) heeft besloten dat het tijd is om terug te gaan naar de dagen van het mengen van code met inhoud en het “scheiding van bezorgdheid” noemen. Natuurlijk kunt u schonere HTML maken, maar u kunt met klassieke ASP. Zeggen “U programmeert niet correct als u te veel code in uw weergave hebt” is als zeggen “Als u goed gestructureerde en commentaar hebt gemaakt in de klassieke ASP is het verleidelijk en beter dan ASP.NET”

Als ik terug wilde naar het mengen van code met inhoud, zou ik kijken naar het ontwikkelen met PHP, wat een veel volwassen milieu heeft voor dat soort ontwikkeling. Als er zoveel problemen zijn met ASP.NET, waarom repareer dan niet die problemen?

Last but not least de nieuwe scheermesmotor betekent dat het nog moeilijker is om onderscheid te maken tussen HTML en code. We konden tenminste zoeken naar het openen en sluiten van tags I.E. & LT;% en% & GT; In ASP, maar nu zal de enige indicatie het @ -symbool zijn.

Het is misschien tijd om naar PHP te gaan en nog 10 jaar te wachten voor iemand om de code opnieuw te scheiden van de inhoud.


Antwoord 4, Autoriteit 8%

Als u met andere ontwikkelaars werkt, zoals PHP of JSP (en ik goktrails) – ga je een veel eenvoudiger tijd omzetten of samenwerken op pagina’s omdat je niet al die ‘smerige’ hebt ASP.NET-evenementen en controles overal.


Antwoord 5, Autoriteit 8%

Het probleem met MVC is dat zelfs voor “experts” het veel waardevolle tijd opeet en veel moeite heeft. Bedrijven worden aangedreven door het basisding “Snelle oplossing die werkt”, ongeacht de technologie erachter. Webformets is een RAD-technologie die tijd en geld bespaart. Alles wat meer tijd nodig is, is niet acceptabel door bedrijven.


Antwoord 6, Autoriteit 7%

  1. juiste ajax, b.v. Jsonresultaten nee
    Gedeeltelijke pagina postback onzin.
  2. Geen ViewState +1
  3. Geen hernieuwing van de HTML-ID’s.
  4. Schoon HTML = geen bloat en met een fatsoenlijke opname bij het renderen van xhtml of normen
    compatibele pagina’s.
  5. Geen gegenereerde Axd JavaScript.

Antwoord 7, Autoriteit 5%

grootste enkelvoordeel voor mij zou de duidelijke scheiding zijn tussen uw model, weergave en controllerlagen. Het helpt vanaf het begin goed ontwerp te bevorderen.


Antwoord 8, Autoriteit 5%

Ik heb GEEN ENKELE voordelen gezien in MVC boven ASP.Net. 10 jaar geleden kwam Microsoft met UIP (User Interface Process) als antwoord op MVC. Het was een flop. We deden toen een groot project (4 ontwikkelaars, 2 ontwerpers, 1 tester) met UIP en het was een regelrechte nachtmerrie.

Spring niet zomaar in op de bandwagon omwille van Hype. Alle bovengenoemde voordelen zijn al beschikbaar in Asp.Net (met meer geweldige aanpassingen [ Nieuwe functies in Asp.Net 4] in Asp.Net 4).

Als uw ontwikkelteam of een enkele ontwikkelaar bij Asp.Net werkt, houdt u er dan gewoon aan en maakt u snel mooie producten om uw klanten tevreden te stellen (die betaalt voor uw werkuren). MVC zal uw kostbare tijd opslokken en dezelfde resultaten opleveren als Asp.Net 🙂


Antwoord 9, autoriteit 5%

Francis Shanahan,

  1. Waarom noem je gedeeltelijke postback “onzin”? Dit is de kernfunctie van Ajax en is zeer goed gebruikt in het Atlas-framework en prachtige bedieningselementen van derden, zoals Telerik

  2. Ik ga akkoord met uw punt met betrekking tot de weergavestaat. Maar als ontwikkelaars voorzichtig zijn om de weergavestatus uit te schakelen, kan dit de grootte van de HTML die wordt weergegeven aanzienlijk verminderen, waardoor de pagina licht van gewicht wordt.

  3. Alleen HTML-serverbesturingselementen worden hernoemd in het ASP.NET-webformuliermodel en niet pure HTML-besturingselementen. Wat het ook mag zijn, waarom ben je zo bezorgd als het hernoemen is voltooid? Ik weet dat je veel javascript-gebeurtenissen aan de kant van de klant wilt afhandelen, maar als je je webpagina’s slim ontwerpt, kun je zeker alle id’s krijgen die je wilt

  4. Zelfs ASP.NET-webformulieren voldoen aan de XHTML-standaarden en ik zie geen opgeblazen gevoel. Dit is geen rechtvaardiging voor waarom we een MVC-patroon nodig hebben

  5. Nogmaals, waarom heb je moeite met AXD Javascript? Waarom doet het je pijn? Dit is opnieuw geen geldige rechtvaardiging

Tot nu toe ben ik een fan van het ontwikkelen van applicaties met behulp van klassieke ASP.NET-webformulieren. Voor bijvoorbeeld: Als je een dropdownlist of een gridview wilt binden, heb je maximaal 30 minuten nodig en niet meer dan 20 regels code (minimaal natuurlijk). Maar in het geval van MVC, praat met de ontwikkelaars hoe pijnlijk het is.

Het grootste nadeel van MVC is dat we teruggaan naar de tijd van ASP. Herinner je je de spaghetti-code van het door elkaar halen van servercode en HTML??? Oh mijn god, probeer een MVC aspx-pagina te lezen gemengd met javascript, HTML, JQuery, CSS, Server-tags en wat niet….Iedereen kan deze vraag beantwoorden?


Antwoord 10, autoriteit 4%

Webformulieren profiteren ook van een grotere volwassenheid en ondersteuning van externe controleproviders zoals Telerik.


Antwoord 11, autoriteit 3%

In webformulieren zou je ook bijna hele html met de hand kunnen renderen, behalve enkele tags zoals viewstate, eventvalidation en dergelijke, die kunnen worden verwijderd met PageAdapters. Niemand dwingt je om GridView of een andere server-side control te gebruiken die slechte html-rendering output heeft.

Ik zou zeggen dat het grootste voordeel van MVC SNELHEID is!

Het volgende is de gedwongen scheiding van zorg. Maar het verbiedt je niet om hele BL- en DAL-logica in Controller/Action te plaatsen! Het is gewoon scheiding van weergave, wat ook kan in webformulieren (bijvoorbeeld MVP-patroon). Veel dingen die mensen voor mvc noemen, kunnen in webformulieren worden gedaan, maar met wat extra moeite.
Het belangrijkste verschil is dat het verzoek naar de controller komt, niet naar de weergave, en die twee lagen zijn gescheiden, niet verbonden via een gedeeltelijke klasse zoals in webformulieren (aspx + code erachter)


Antwoord 12, autoriteit 2%

Mijn 2 cent:

  • ASP.net-formulieren zijn geweldig voor snelle applicatie-ontwikkeling en het snel toevoegen van bedrijfswaarde. Ik gebruik het nog steeds voor de meeste intranettoepassingen.
  • MVC is geweldig voor zoekmachineoptimalisatie omdat u de URL en de HTML in grotere mate beheert
  • MVC produceert over het algemeen een veel slankere pagina – geen weergavestatus en schonere HTML = snelle laadtijden
  • MVC kan delen van de pagina gemakkelijk cachen.
    -MVC is leuk om te schrijven:- persoonlijke mening 😉

Antwoord 13, autoriteit 2%

MVC laat je meer dan één formulier op een pagina hebben, een kleine functie die ik ken, maar het is handig!

Ook het MVC-patroon maakt de code volgens mij gemakkelijker te onderhouden, in het bijzonder. wanneer u het na een paar maanden opnieuw bezoekt.


Antwoord 14

MVC-controller:

   [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-weergave:

<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>

Hoe moeilijk is dat? Geen ViewState, geen BS-paginalevenscyclus… Gewoon pure efficiënte code.


Antwoord 15

Ik zie de enige twee voordelen voor kleinere sites zijn:
6) RESTful urls die SEO mogelijk maken.
7) Geen ViewState- en PostBack-gebeurtenissen (en betere prestaties in het algemeen)

Testen voor kleine sites is geen probleem, evenmin als de ontwerpvoordelen als een site toch goed is gecodeerd, MVC vertroebelt in veel opzichten en maakt het moeilijker om wijzigingen aan te brengen. Ik moet nog beslissen of deze voordelen het waard zijn.

Ik zie duidelijk het voordeel van MVC in grotere sites voor meerdere ontwikkelaars.


Antwoord 16

Het belangrijkste voordeel dat ik vind, is dat het het project in een meer testbare structuur dwingt.
Dit kan ook vrij eenvoudig worden gedaan met webformulieren (MVP-patroon), maar vereist dat de ontwikkelaar hier begrip voor heeft, velen niet.

Webforms en MVC zijn beide bruikbare tools, beide blinken uit in verschillende gebieden.

Ik gebruik persoonlijk webformulieren omdat we voornamelijk B2B/LOB-apps ontwikkelen.
Maar we doen het altijd met een MVP-patroon waarmee we 95+% codedekking kunnen halen voor onze unittests.
Dit stelt ons ook in staat om het testen van eigenschappen van webcontrols te automatiseren
eigenschapswaarde wordt weergegeven via de weergave, bijv.

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

)
Ik denk niet dat dit niveau van testen zo gemakkelijk wordt bereikt in MVC, zonder mijn model te vervuilen.


Antwoord 17

Je voelt je niet meer slecht over het gebruik van ‘non-post-back controls’ – en hoe je ze in een traditionele asp.net-omgeving kunt smijten.

Dit betekent dat moderne (gratis te gebruiken) javascript controles heeft zoals ditof ditof ditkan allemaal worden gebruikt zonder dat je probeert een ronde pen in een vierkant gat te passen.


Antwoord 18

Moderne javascript-besturingselementen en JSON-verzoeken kunnen heel eenvoudig worden afgehandeld met MVC. Daar kunnen we veel andere mechanismen gebruiken om gegevens van de ene actie naar de andere actie te posten. Daarom geven wij de voorkeur aan MVC boven webformulieren. We kunnen ook lichtgewicht pagina’s bouwen.


Antwoord 19

Mijn persoonlijke mening is dat,
Het grootste nadeel van het gebruik van ASP.Net MVC is dat CODE BLOCKSgemengd is met HTML
html hel voor de ontwikkelaars die het onderhouden…

Other episodes