2009-02-06 21 views

Antwort

3

Es hängt wirklich von der Art des Projekts ab. Einige Leute mögen MVC wegen der SEO, die von sauberen URLs profitieren und Benutzern erlauben, URLs intelligent zu "hacken", indem sie intelligente URL-Vermutungen machen. MVC kommt mit einer Ausgabe, bei der Sie Websteuerelemente verlieren und somit kein ASP.NET AJAX und kein Drag-and-Drop-Grid aus Ihrer UI-Bibliothek.

Um zu verallgemeinern, könnte eine öffentlich zugängliche Website aufgrund ihrer SEO-Vorteile ein besserer Kandidat für MVC sein, während eine interne oder geschäftliche App besser die Zeit für die Entwicklung anderer Bereiche nutzen könnte.Dann wieder, wenn alle wollen Sie saubere URLs, können Sie die gleiche Sache ohne MVC mittels URL-Rewriting implementieren,

http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx http://msdn.microsoft.com/en-us/library/ms972974.aspx

So so weit wie ‚Nachteil‘ in mit MVC, es könnte sein, mehr von einem persönlichen darin,

  • Möchten Sie die Lernkurve bei MVC machen?
  • Sind Sie auf Kontrollen angewiesen? Kannst du dasselbe durch gutes altmodisches HTML, CSS, codieren?
  • Könnten Sie bei MVC Zeit verschwenden, wenn ein besserer Teil Ihres Projekts von der Codierungszeit profitieren würde?
  • Wenn alles, was Sie betrachten, SEO ist, ist das Umschreiben von URLs ein besserer Ansatz für Ihre Bedürfnisse?

Ich würde sagen, die Nachteile sind wirklich relativ zum Entwickler und Projekt.

+4

Loosing WebControls ist ein eindeutiger * Vorteil * – Jamiec

+0

Ich frage mich, ob ein Grid-Steuerelement, das bereits automatische Sortierung, Paging und alles etwas Schlimmes hatte. – TheAgent

+0

Sie summiert MVC auf saubere URLs und SEO! Es gibt viele Möglichkeiten, Websites in ASP.NET-Webformularen SEO-freundlich zu gestalten! –

1

Dinge wie Steuerzustand (Text in Eingabefelder) erfordert die manuelle Handhabung für einen, Webformulare vergleicht .. vorausgesetzt, Sie es verwenden „richtig ".

Alles in allem müssen Sie ein bisschen mehr von der eigentlichen Präsentationsarbeit selbst tun, was meiner Meinung nach eine gute Sache ist, aber in einer formintensiven Anwendung (Verwaltungen zum Beispiel) kann es Sie verlangsamen.

(ich meine sicher, Sie können in einer MVC-Anwendung der meisten normalen asp.net Dinge laufen, aber wenn man das ausgiebig tun, sollten Sie wahrscheinlich nur webforms laufen.)

6

Mit WebForms haben Sie eine Vielzahl von Vor- integrierte UI-Steuerelemente wie Grids, Grafiktools usw. Es gibt eine ganze Reihe von RAD-Steuerelementen.

Leider ist mit ASP.NET MVC eine Menge von diesem Zeug noch nicht ganz da.

+4

Ha, für dich ist das ein Nachteil. Ich sehe das als einen Vorteil, da all diese vorgefertigten Dinge am Ende mehr Probleme bereiten als sie wert sind. –

+1

+1 dazu. Die meisten dieser Steuerelemente haben so viel Kopfschmerz wie Funktionalität. –

+1

Ich sehe das auch als Vorteil :) –

1

ASP.NET erfordert IIS7-Routing (dh Windows Server 2008 oder Vista). Sie können es auf IIS6 unter Server 2003 ausführen, aber Sie verlieren die extensionless Routing Coolness.

+2

Ungenau. Sie können ein extensionless Routing auf IIS6 mit einer Platzhalterzuordnung erhalten (siehe http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx) –

2

Lernkurve und fehlende vordefinierte Steuerelemente, die die Produktivität eines WebForms-Entwicklers beeinträchtigen.

Ich kann Ihnen aber einen sehr guten Vorteil geben: Wenn Sie dies noch nicht getan haben, werden Sie endlich die Grundlagen von HTML/CSS und HTTP lernen, die für jede ernsthafte Webentwicklung benötigt werden, und nicht nur Drag-Drop Dinge im Editor.

4

Der größte Nachteil ist, dass Sie wahrscheinlich in mit Hilfe von JavaScript/AJAX gezwungen werden, werden komplexere Formen zu erreichen. Wenn Sie beispielsweise eine ganze Reihe von Widgets (z. B. Datagrids, zusätzliche Seitenformulare usw.) haben, die nicht direkt Teil der aktuellen Ansicht sind, ist das Verwalten des Status ein Problem.

In ASP.NET-WebForms verarbeitet der Viewstate dies automatisch, sodass mehrere unabhängige Steuerelemente Ereignisse zurückgeben und auslösen können, ohne etwas anderes auf der Seite zu verfälschen.

In ASP.NET MVC müssen Sie all dies selbst behandeln, und der einfachste Weg ist einfach Dinge auf der Browserseite zu verschieben.

Auf der Oberseite davon, nachdem Sie es alle Debuggen, kann es insgesamt zu einem besseren Benutzererlebnis führen.

0
  1. ASP.NET MVC-Sites benötigen durchschnittlich 10 Mal mehr Entwicklungszeit als die herkömmlichen ASP.NET-Sites.
  2. Es nutzt nicht die mächtigen asp.net Steuerelemente.

  3. Der Code ist nicht lesbar. Wenn Sie getroffen werden einige Verbesserungen auf einer Website von jemand anderem entwickelt, um hinzuzufügen, werden Sie Nüsse gehen ..

1
  • Die Komplexität hoch ist die Anwendungen mit diesem Muster zu entwickeln.
  • Nicht geeignet für kleine Anwendungen, die in nachteilige Auswirkungen auf die Leistung und das Design der Anwendung haben.
  • In Bezug auf Servlet und JSP enthalten beide oft Geschäftslogik und Präsentationsschicht.
  • Der isolierte Entwicklungsprozess von UI Autoren, Geschäftslogik Autoren und Controller Autoren können dazu führen, dass ihre jeweiligen Module Entwicklung verzögern.
  • Entwickler können die Ansicht des Modells nicht vollständig ignorieren, selbst wenn sie sind decoupled.If das Modell häufige Änderungen unterliegt, die Ansichten mit Update requests.Views wie grafischen Anzeigen überflutet werden könnte können einige Zeit in Anspruch nehmen zu machen. Als Ergebnis kann die Ansicht Update-Anforderungen fallen. REF: http://www.careerride.com/MVC-disadvantages.aspx
Verwandte Themen