Donnerstag, 5. April 2012

Der sagenumwobene Viewstate

Seit ich mich im .Net Umfeld bewege, konnte ich die Sache mit diesem "Viewstate" nicht wirklich nachvollziehen. Seit vor einiger zeit das Problem aufkam, dass in einem unserer Produkte ein speichervorgang einer Seite mehrere Minuten dauern konnte, bin ich dem Problem auf den Grund gegangen und habe festgestellt, dass der Viewstate auf über 6MiB angewachsen war.
Die Seite als solches ist dabei aber recht einfach gestrickt und besteht im Grunde aus einer Tabelle mit 5 Spalten von Dropdownboxen, aus der eine Auswahl getroffen werden kann. Klar kommt da schnell eine Menge an Daten zusammen, zumal eine der Auswahlmöglichkeiten mehr als 100 Textbausteine enthalten kann.

Die Große Frage aber, die sich mir stellt: Warum so ein riesiger Viewstate für ein paar Dropdownboxen? Dieses nachverfolgt, stellt sich heraus, dass X-Mal der identische Inhalt der Textbausteine im Viewstate vorgehalten wird.
Zur Lösung des Problems habe ich ein Control in der Form einer Textbox erstellt, die beim "Lostippen" vorschläge zur Auswahl stellt, in denen der gesuchte Begriff vorkommt. Anschließend habe ich den ViewState für den Dialog abgeschaltet und der Performance-Gewinn war unbestreitbar.

ViewState? Wozu?

Hilfreich zu diesem Thema ist auch der folgende Artikel aus dem MSDN: "Ein mundgerechtes Stück ASP.NET ViewState"

Keine Kommentare:

Kommentar veröffentlichen

Feel free to comment...