Avatar billede jensen2005 Nybegynder
07. april 2008 - 08:02 Der er 4 kommentarer og
1 løsning

Bevare en datatable i mellem postback

Hej Eksperter

Jeg sidder og arbejder med en Datatable, hvor jeg redigerer i. Jeg gemmer datatabellen i Session for at bevare den i mellem Postbacks. Jeg syntes at applikationen er begyndt at blive lidt langsom og vil derfor høre om der er andre måder kan bevare en Datatable i mellem Postbacks?

Hvis man bruge Typed datasets – så skal man vel også gemme i mellem postback ikke?

Venlig hilsen Jensen2005
Avatar billede jydebjerg42 Nybegynder
19. september 2008 - 22:45 #1
For at starte bagfra så er der ikke forskel på untyped datasets og typed datasets når det kommer til state håndtering (typed datasets arver System.Data.DataSet).

Mht. til state håndtering imellem postbacks så har du groft sagt nedenstående 5 muligheder.

1 - Session state
ASP.Net anvender den konfigurerede session state provider til at gemme data i. Som oftest er dette in process hvilket vil sige i ram, men i farm scenarier anvendes en eller anden form for n-tier løsning, typisk en database server da multiple maskiner naturligvis ikke kan dele ram. Session state er unik for den aktive session og kan derfor ofte give skaleringsproblemer.

2 - View state
Data serialiseres til klienten sammen med html renderingen, typisk som base64 encoded i et hidden form field.

3 - Application state
Ligesom med session state anvender ASP.net her den konfigurerede provider til at gemme data. Ulig session state er application state delt imellem alle sessioner for den pågældende application.

4 - Cache
ASP.Net gemmer data in process, altså i maskinens ram. Dette kan anvendes til at løse state håndtering i scenarier hvor applikationen kun kører på en maskine men vil ikke virke i farm scenarier og kan generelt ikke anbefales til state håndtering.

5 - Persistering
Det er naturligvis altid muligt at lave sin egen løsning fra bunden der f.eks. serialiserer data til harddisk, database eller lignende.

I langt de fleste scenarier, og også i dette, er det dog kun session state og view state som er egentlige muligheder. Begge løsninger har fordele og ulemper. Session state vil være hurtigt og nemt i udviklingsøjemed, men vil hurtigt påvirke performance negativt specielt i skaleringsscenarier. View state påvirker ikke performance på samme måde, men store datamængder vil medføre store mængder af data skal sendes imellem klient og server og vil derfor også medføre at brugere vil opleve applikationen som langsom. Helt generelt er det ofte en dårlig løsning at bevare datasets imellem postbacks da det ofte er mindre krævende simpelthen at indlæde data påny når serveren rammes. Hvis du ønsker at fortsætte med at persistere data imellem postbacks kommer dit valg meget an på hvilke krav der er til applikationen og hvilket miljø den skal operere i.
Avatar billede jensen2005 Nybegynder
20. september 2008 - 07:14 #2
takker..
Avatar billede jensen2005 Nybegynder
21. juni 2011 - 16:12 #3
Tak for svar - Lig et svar hvis du ønsker point.
Avatar billede jensen2005 Nybegynder
25. februar 2013 - 07:49 #4
Svar
Avatar billede jensen2005 Nybegynder
25. februar 2013 - 07:49 #5
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester