Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Att komma ifrån en stor Viewstate

Postades av 2005-02-01 10:09:13 - Rickard Robin, i forum arkitektur, Tråden har 8 Kommentarer och lästs av 1101 personer

Hej !

Är det någon som kan rekommendera ett sätt att komma ifrån/krympa ner viewstate på riktigt tunga sidor. Har just nu en webform som använder sig av en 3'e parts TabItems kontroll,där var tabitem är en usercontrol. Sedan har jag utvecklat egna komposita serverkontroller som används inuti dessa webuserkontroller. Allting verkar sparas ner i viewstate och det blir gigantiskt till slut vilket slöar ner applikationen otroligt mycket.

Hur går jag tillväga bäst för att spara ner state i, tjaa jag vet inte session kanske? Jag vill gärna undvika buggar som att sidor håller kvar info (som gärna händer när man sparar ner i session)
Men jag vill ju ha viewstate-effekten där t.ex griddar sparar info, textboxar håller text etc och så jag kan komma åt dem via Kontrol.Property på postbacks.

Det jag söker är alltså en bra arkitektur/designpattern för att komma åt detta problem, kåd är inga problem bara jag vet en bra arkitektur som lämpar sig för just detta. Jag undviker gärna URLqueries.
Det rör sig om kanske 20 användare samtidigt under dagen som jobbar ganska intensivt med applikationen.

Hoppas någon kan komma med några bra förslag
Mvh, Rickard Robin


Svara

Sv: Att komma ifrån en stor Viewstate

Postades av 2005-02-01 10:37:28 - Patrik Löwendahl

Det här är en grymt hård nöt att knäcka men är löst i asp.net 2.0 på ett ngt bättre sätt.

Problmet är att som du säger att du bara vill associera just en visst request med sitt viewstate.

För att lösa det här snyggt så tror jag att en kombination av interception och page controller kan bli en riktigt bra lösing.

Jag skulle nog skapat en http module som läser / skriver viewstate filer till och från en sessions variabel någonstans i början och någonstans i slutet av en request (interception). Sen hade jag skapat en ny basklass för mina sidor, som vid lämpligt event fyller kontrollerna med den datan som finns där. I ett annat lämpligt event kan det vara bra att skriva data från kontrollerna.


Svara

Sv:Att komma ifrån en stor Viewstate

Postades av 2005-02-01 11:32:33 - Rickard Robin

Mmm tycker det är väldigt klurigt.
Pagecontroller använder jag, dock har jag inte den tiden att labba med httphandler och httpmodule och att förändra requests på det djupet. Finns det något snabbare och effektivt "best practise" man kan använda eller så ? Hur brukar ni lösa det?


Svara

Sv: Att komma ifrån en stor Viewstate

Postades av 2005-02-01 13:01:23 - Patrik Löwendahl

Med en http module ;) Jag satt och funderade på det för en stund sedan.

Undrar om man inte kan byta ut viewstate modulen helt och hållet .....


Svara

Sv:Att komma ifrån en stor Viewstate

Postades av 2005-02-01 14:58:17 - Rickard Robin

Men du! Kan du inte labba och lösa det ? Tänk vilken grymt smart lösning du skulle komma på !
Just det, förresten när du är klar kan du ju skicka över koden så jag kan använda den också :D

Vore väldigt smart om när man utvecklar en komposit servercontrol att kunna tillåta en property där man väljer spara ner i "Viewstate" eller "Session", och på något sätt få serverkontrollen att jobba så automatiskt. Hur gör man det? Nån expert måste ju veta svaret ....

(Om man har fler kontroller vill gärna sessionobjekt krocka och skriver över varandra, kanske lösa med Inamingcontainter på nåt vis?)

Tror om man löser detta smart skulle många utvecklare bli glada!

/Rickard Robin


Svara

Sv: Att komma ifrån en stor Viewstate

Postades av 2005-02-01 15:39:48 - Herbjörn Wilhelmsen

Hej,

Jag föreslår att du istället gör en egen Page-klass. Den skall givetvis ärva från Page-klassen men två metoder skall overridas:

SavePageStateToPersistenceMedium

LoadPageStateFromPersistenceMedium

Dessa metoder sparar och laddar in ViewState på en sida. I dessa metoder kan du sedan välja hur och var ViewState skall sparas.

Det fina med detta är att alla kontroller som läggs på en sådan sida automatiskt sparar sin ViewState enligt dina val.

Ett annat tips är att sätta EnableViewState=false på de kontroller där du inte behöver ViewState :)

mvh
Herbjörn


Svara

Sv:Att komma ifrån en stor Viewstate

Postades av 2005-02-02 09:07:18 - Rickard Robin

Det där kan nog hjälpa mkt bra för då gör man väl en typ av "interception". Ska labba runt lite med det återkommer med resultat. Tackar!


Svara

Sv: Att komma ifrån en stor Viewstate

Postades av 2005-02-03 12:08:39 - Anders Vikström

Jag har labbat lite med SavePageStateToPersistenceMedium etc. och fått det att fungera bra. Vad jag inte lyckats med är att komma på något schyst sätt att rensa sessionen från viewstate-data (annat än vid session time-out/log off). Har man många sidor och många användare går det snart åt en hel del minne (om man inte sparar sessionen i databasen vill säga). Jag har därför gjort det möjligt att också kunna spara viewstate-data på disken i helt vanliga filer, vilket också fungerar bra. Men, om någon kommer på ett "mönster" som innefattar "aktiv städning" av minnet är detta något jag gärna tar del av...


Svara

Sv:Att komma ifrån en stor Viewstate

Postades av 2005-02-03 15:24:00 - Herbjörn Wilhelmsen

Hej,

Ett sätt är att endast tillåta en viss mängd ViewState per användare / session. T.ex. endast tillåta att en användare får spara ViewState 5 el 10 gånger (sidladdningar) per session. Om mer ViewState behöver sparas skrivs "gammal" ViewState över.

Om detta inte går bra är nog en databaslösning att föredra.

mvh
Herbjörn


Svara

Nyligen

  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino
  • 04:14 Vad finns det för kratomalternativ
  • 14:16 Indian online casino
  • 14:15 Indian online casino
  • 08:28 Butiksskyltar: Hur upplever utbude

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 871
27 965
271 770
720
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies