Heutzutage gibt es so viel Hype um ASP.NET MVC, aber die Wahrheit ist, dass ASP.NET-Webforms für eine gewisse Zeit nirgends hinführen werden. Gibt es eine Möglichkeit für aktuelle Entwickler, ASP.NET-Webformulare so schnell wie ASP.NET MVC zu optimieren?
Ich habe einen signifikanten Geschwindigkeitsunterschied zwischen ASP.NET MVC- und ASP.NET-Webformularen festgestellt. MVC ist viel schneller und lädt Seiten schneller als Webforms. Kann ich dasselbe mit ASP.NET-Webformularen erreichen, indem ich es optimiere? Wenn ja, was würdest du empfehlen?
Gehen Sie in Ihrer Seitenanweisung wie folgt vor:
%Vor% Die Deaktivierung von ViewState
macht hauptsächlich den Unterschied in der Seitenleistung aus. Wenn Sie auch die Verwendung von WebForm-Steuerelementen einschränken, wird Ihr HTML-Code viel weniger ausführlich dargestellt, da sie dazu neigen, sehr ausführlichen HTML-Code zu produzieren.
Auf der anderen Seite ist es fast so, als würden einige der großen Vorteile von WebForms wegfallen. Die Steuerelemente und die Zusammenfassung des Status mithilfe von ViewState
ist einer der Hauptgründe, warum WebForms heute so beliebt ist.
Ich mache noch eine Menge WebForms-Entwicklung und mache MVC auch. Das Wissen über beide und ihre Stärken wird Ihnen helfen, eine performante App in beiden Frameworks zu erstellen. Wenn ich eine neue WebForms-App erstelle, ist das erste, was ich mache, Seiten in ein Panel
einzubinden. Stellen Sie sicher, dass ViewState
für das gesamte Panel deaktiviert ist. Während ich mich entwickle, und ich finde eine Verwendung für die ViewState
(zB um mir Zeit zu sparen oder Dinge zu vereinfachen), schalte ich es von Fall zu Fall ein, damit ich verstehe, warum ich es benutze und eine bewusste Entscheidung treffe, den Overhead hinzuzufügen meine Seite.
WebForms können genauso schnell sein wie MVC, wenn Sie Ihre Webanwendung mit Leistung betrachten, aber es ist sehr einfach, es viel langsamer zu machen, wenn Sie nur die Leistung ignorieren und die App einfach fertig machen wollen.
Die Technologie spielt keine Rolle, wie Sie Ihre Anwendung implementieren. Man könnte argumentieren, ViewState würde einen Unterschied machen, aber das ist auch ein Implementierungsdetail. ViewState ist nicht erforderlich und Sie können es auch auf dem Server belassen. Am Ende des Tages liefern beide Technologien HTML über HTTP.
Ich habe einen ziemlich wahrnehmbaren Unterschied in der Geschwindigkeit bemerkt
Vielleicht sollten Sie zuerst die Leistung auf eine definierbare Weise richtig messen. Dann, wenn Sie tatsächlich einen Unterschied haben, wird es viel klarer, woher dieser Unterschied kommt und wie Sie diesen Leistungsunterschied überbrücken können.
Es gibt dieses eine Ding, das ASP.NET verlangsamen kann, dass andere erwähnten: Viewstate. Dies gilt insbesondere für Ajax-Anrufe. Der vollständige Viewstate wird gepostet, wenn UpdatePanels verwendet wird.
Das heißt, es gibt diese eine Sache, die Ihre ASP.NET-Site Ihre ASP.NET MVC-Site übertreffen wird: Caching. ASP.NET ermöglicht das Donut-Caching: Sie können Caching-Regeln auf WebControll-Basis definieren. Sie können dies in ASP.NET MVC nicht tun.
Wenn Sie wirklich ein Geschwindigkeitsproblem haben, versuchen Sie, die Flaschenhälse zu finden. Es könnte Datenbankaufrufe sein (sql-profiler verwenden), es könnte html-bezogen sein (yslow benutzen) oder es könnte die Anwendung betreffen (versuche einen Profiler wie den von redgate).
Ist dies ein Fall von zwei verschiedenen Werkzeugen für zwei verschiedene Ansätze, um Probleme zu lösen und zu versuchen, zwischen ihnen zu vergleichen?
Tags und Links asp.net-mvc optimization asp.net performance webforms