ASP.NET Cache, State DataGrid og Diagnostics
Agenda – ASP.NET Cache, State og Cookies ( 1 del ) –Cache –Static member –Application State –Session State –View State –Cookies Visning og manipulering af data (2 del) –DataTable –DataGrid –Diagnostics i ASP.NET
ASP.NET Cache –Page Caching –Partial Page Caching –Data Caching
ASP.NET OutputCache directive
ASP.NET Placering af Output Cache
ASP.NET Caching flere versioner af en Page –Afhængigt af VaryByParam ’None’En version af siden cached ’*’N versioner cached baseret på Query string V1N versioner af Page cached, V1 i Query string V1,V2 N versioner af Page cached, V1,V2 i Query string
ASP.NET Partial Page Caching –Indkapsle dele som er ideelle for caching (User controls) –Kode Eksempel
ASP.NET Guideline for Output caching 1.Enable output cache på sider som tilgås ofte og returnere det eksakt samme resultat hver gang 2.Cache så få sider som muligt 3.Sider som tilgås meget hvor en del af siden er meget statisk og en anden er meget dynamisk bør opdeles i user-controls med egen cache 4.Når cache slås til skal det sikres at der ikke opstår forkert visning for visse klienter 5.Overvej nøje hvilken Duration der skal være på siden, i forhold til memory forbrug samt visning af invalide data 6.Overvej nøje sliding expiration på en side, hvis der bruges VaryByParam=’*’
ASP.NET Data caching
ASP.NET Cache Entry Attributes
ASP.NET Cache Dependencies
ASP.NET Cache Object Removal
ASP.NET Guideline for Data caching 1.Data cache er ikke en container for shared updateable state 2.Concurrency protection 3.Cache data som tilgås ofte og er relative ”tunge” at hente 4.Data afhængige af file data kan der bruges CacheDependency 5.Vær opmærksom på coherency problemer
ASP.NET Static member –Ikke thread-safe –Bliver ikke notificeret ved ændring af variable –Udløber ikke –Bliver ikke automatisk slettet => stort forbrug af memory
ASP.NET State Management
ASP.NET Eksempel på brug af Application State
ASP.NET Application State –Fordele Hensigtsmæssigt i visse situationer at gemme globale data i denne (Read-only) –Ulemper Scalability –Ikke godt til globale data som bliver opdateret jævnligt –Kopieret for hver Application State –Bliver ikke gemt når IIS bliver Recycled
ASP.NET Session State –Unique for klient –Ligger i samme Process og AppDomain som applikationen under normale omstændigheder –Kode eksempel
ASP.NET Session State out of Process –SQL Server –Bemærk første gang skal InstallSqlState.sql køres
ASP.NET Session State out of Process –State Server
ASP.NET Session Key Management
ASP.NET Cookie State –Ikke med i HTTP specifikationen (endnu) –Bruges til at gemme bruger specifikke informationer, session variable, identitet –Klienten gemmer cookie –Sendes frem og tilbage mellem hvert Request –Kan bruges som Session dog skal kunne konveres til og fra strings –Klient kan slå Cookies fra –Kode eksempel
ASP.NET View State –Gemmes i skjulte felte på ASP.NET siden som hedder __VIEWSTATE –Sendes med hver gang der sker et kald –Primær brug er for controls (opretholdelse af state) –Kan bruges til at gemme klient specifikke data mellem post back –Gemmes ikke ved kald til ny.aspx side –Bør slå View State fra på visse Controls –Kode eksempel
ASP.NET 1 Del slut
ASP.NET DataGrid –DataSet, DataTable –Paging eksempel –Sorting eksempel –Editing eksempel
ASP.NET Diagnostics og error handling
ASP.NET Page Tracing
ASP.NET Enabling trace on Page
ASP.NET Writing trace messages
ASP.NET Writing custom trace messages
ASP.NET Application-level tracing
ASP.NET Enabling application-level tracing
ASP.NET Debugging
ASP.NET Error handling
ASP.NET Adding a customErrors element
ASP.NET Unhandled exception
ASP.NET Dealing with unhandled exception
ASP.NET Saving exception information
ASP.NET Retaining and accessing exception information
ASP.NET Summary
ASP.NET 2 Del slut