Ich begann vor einem Jahr in MVC zu arbeiten, ich war inspiriert, aber nicht beeindruckt.
Ich verabscheue den Ansichtszustand und sehe es als die Wurzel allen Übels in Bezug auf ASP.NET. Deshalb benutze ich es einfach nicht und um ehrlich zu sein, warum würdest du?
Ich nahm im Grunde das ASP.NET MVC Framework-Konzept und baute das auf meine eigene Art und Weise. Ich habe ein paar Dinge geändert. Ich habe meinen Controller-Wrapping-Code oder URL-Routing-Code um die dynamische Neukompilierung herum erstellt.
Jetzt würde ich gehen so weit zu sagen, dass ASP.NET MVC-Anwendungen werden schneller, je nachdem, wie Sie es verwenden. Wenn Sie WebForms vollständig aufgeben, sind Sie schneller, da das Lebenszyklus- und Objektmodell von ASP.NET enorm ist.
Wenn Sie schreiben, instanziieren Sie eine Armee ... nein, warten Sie, eine Legion von Objekten, die an der Wiedergabe Ihrer Ansicht teilnehmen. Das wird langsamer als wenn Sie das minimale Verhalten in der ASPX-Seite selbst ausdrücken möchten. (Ich interessiere mich nicht für View Engine Abstraktion, weil die Unterstützung für ASPX-Seiten in Visual Studio anständig ist, aber ich habe WebForms als Konzept und im Grunde jedes ASP.NET-Framework aufgrund von Code Bloat oder nicht in der Lage, das zu ändern Dinge, die meine Anwendung verdrahten).
Ich habe Wege gefunden, sich auf die dynamische Neukompilierung (System.Reflection.Emit) zu verlassen, um spezielle Zweckobjekte und Code wann immer erforderlich zu senden. Die Ausführung dieses Codes ist schneller als die Reflektion, wird aber zunächst durch den Reflection-Service erstellt. Dies hat meinem MVC aromatisierten Framework eine großartige Leistung gegeben, aber auch sehr statisch getippt. Ich verwende keine Zeichenketten und Namen/Wert-Paar-Sammlungen. Stattdessen gehen meine benutzerdefinierten Compiler-Dienste in einen Formular-Post zu einer Controller-Aktion um, der ein Referenz-Typ übergeben wird. Hinter der Szene passiert eine Menge Dinge, aber dieser Code ist schnell, viel schneller als WebForms oder das MVC Framework.
Außerdem schreibe ich keine URLs, ich schreibe Lambda-Ausdrücke, die in URLs übersetzt werden, die später sagen, welche Controller-Aktion aufgerufen werden soll. Das ist nicht besonders schnell, aber es ist besser, wenn man URLs kaputt macht. Es ist, als hätten Sie sowohl statisch getippte Ressourcen als auch statisch typisierte Objekte. Eine statisch typisierte Webanwendung? Das ist was ich will!
Ich würde mehr Leute ermutigen, dies auszuprobieren.
Nachdem ich seit ihrer Veröffentlichung mit WebForms gearbeitet habe, werde ich nie wieder gerne zurückkehren! MVC hat meine <3 gestohlen - und diese Seite läuft super auf Beta 5! –
Was ist mit all den Revision Rollbacks zu dieser Frage ..? – Nick
@Nick: Das OP rückt alle Bearbeitungen zurück und löscht alle Kommentare, die sie erklären. – GEOCHET