Ist es möglich, ASP.NET-WebForms so schnell wie ASP.NET MVC zu optimieren?

8

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?

    
Sahat Yalkabov 13.07.2010, 17:21
quelle

6 Antworten

6

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.

    
Kelsey 13.07.2010, 17:47
quelle
8

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.

    
rick schott 13.07.2010 17:38
quelle
5

Ein Grund dafür ist ViewState, neben anderem aufgeblähten Code, der als Teil von <ASP:TextBox> gerendert wird usw. Sie sollten sich auf das Seitengewicht konzentrieren.

Alles andere ist gleich, das ist der Hauptleistungsunterschied, den ich kenne.

    
Nate 13.07.2010 17:23
quelle
3
  

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.

    
quentin-starin 13.07.2010 17:25
quelle
3

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

    
Mathias F 13.07.2010 18:03
quelle
1

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?

    
jcolebrand 13.07.2010 17:27
quelle