Utilizzo di OutputCache e ottimizzazione pagina aspnet
Giovanni_3478 non è online. Ultima attività: 24/09/2008 17.16.25Giovanni_3478
Inserito il: 27 giugno 2008 21.23
592 messaggi dal 10 feb 2006 Istalla Microsoft Silverlight!
Ciao

[C#, cache, OutputCache, controllo Substitution]
[la cache di SqlServer non è abilitata e non la uso]

Ho inserito molte domande: non pretendo nulla.
Le ho messe insieme perchè sono organiche.


1) quando nella pagina prova.aspx uso
<%@ OutputCache Duration="86400" Location="any" VaryByParam="none" %>,

e nella medesima pagina ci sono connessione al db,

se da un'altra pagina web miapagina.aspx inserisco dei dati nel db,

in prova .aspx i nuovi dati inseriti vengono visualizzati?

2) io poi ho esigenza di usare la cache sì,
ma una parte della pagina non la voglio inserire.

Con il controllo substitution deve chiamare un metodo statico
<asp:substitution id="Substitution1"
methodname="GetCurrentDateTime"
runat="Server">
</asp:substitution>
contenuto nel codebehind ma il problema è che deve essere statico.
Io ho un controllo img, e random ad ogni refresh della pagina
assegno un valore diverso alla proprietà src,
in pratica ad ogni aggiornamento della pagina viene visualizzata un'immagine diversa.
Con l'outputcache visualizzo sempre la stessa immagine.
C'è quindi una parte della aspx che non deve essere cache-ata
e una parte della aspx.cs che non deve essere cache-ata.

Come posso fare per ottenere questo risultato?

3) Sto cercando di portare la velocità delle mie pagine aspnet vicino a quelle dei siti Microsoft (è un sogno :-D)
per fare questo ho:
1) ho usato i controlli solo dove servono con relativo Viewstate
2) ho usato il form runat = server solo dove serve
3) ho disabilitato l'autoevenwiredup e l'autoeventvalidation, il debug
4) non uso ajax, uso immagini leggere, css snelli
5) utilizzo un processo esterno che mi visita la homepage ogni 15 minuti
6) ho precompilato il sito
7) nei postback all'evento onload uso if(ispostback == true){esegui istrunzioni}
8) non uso i temi
9) uso l'outputCache
10) la gestione dello stato sessione la uso solo se serve

Conoscete altri accorgimenti ?

4) quali sono gli httpmodules che disabilitate nel web.config?

5) Ho impostato l'output cache come durata a 86400 secondi cioè 24 ore
Ciò vuol dire che conserverà la pagina nella cache per 24 ore,
dopo di che la ricarica e riconserva nella cache e così via.
Se io mettessi come durata 365 giorni cosa succede? Il server ha bisogno di memoria e riavvia il processo, giusto?

6) Nel web.config ci sono riferimenti agli assembly
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

Più ce ne sono e più la prestazioni scendono?


7) Nel web.config c'è la sezione compilers
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="OptionInfer" value="true"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
</compilers>

Per migliori prestazioni è opportuno usare solo ad esempio C# ?

8) nel code behind
using System;
using System.Collections;
using System.Configuration;
usare using richiede memoria, quindi conviene usarlo con parsimonia?

Modificato da Giovanni_3478 il 27 giugno 2008 21.24 -
Microsoft Most Valuable Professional
Re: Utilizzo di OutputCache e ottimizzazione pagina aspnet
Daniele Bochicchio non è online. Ultima attività: 15/10/2008 15.08.53Daniele Bochicchio
Inserito il: 30 giugno 2008 11.20
contributi / Top Poster / Community manager / daniele.aspitalia.com / Blog / 9852 messaggi dal 31 ago 1998 Istalla Microsoft Silverlight!
Giovanni_3478 wrote:
1) quando nella pagina prova.aspx uso
<%@ OutputCache Duration="86400" Location="any" VaryByParam="none" %>,
e nella medesima pagina ci sono connessione al db,

se da un'altra pagina web miapagina.aspx inserisco dei dati nel db,
in prova .aspx i nuovi dati inseriti vengono visualizzati?

con any sì, perchè di fatto non usa il vero outputcache server side, ma imposta le header client side. quindi ogni utente avrà la sua versione in cache.

2) io poi ho esigenza di usare la cache sì,
ma una parte della pagina non la voglio inserire.
....
Come posso fare per ottenere questo risultato?

farti restituire il tag img dal metodo statico, senza usare il controllo Image.

3) Sto cercando di portare la velocità delle mie pagine aspnet vicino a quelle dei siti Microsoft (è un sogno :-D)
[...]
Conoscete altri accorgimenti ?

sì, rimuovere glu HttpModule che non servono.

4) quali sono gli httpmodules che disabilitate nel web.config?

Session, Profile, Roles (se non uso i rispettivi provider), WindowsAuthentication, PassportAuthentication, FileAuthorization, ErrorModule.

5) Ho impostato l'output cache come durata a 86400 secondi cioè 24 ore Ciò vuol dire che conserverà la pagina nella cache per 24 ore, dopo di che la ricarica e riconserva nella cache e così via. Se io mettessi come durata 365 giorni cosa succede? Il server ha bisogno di memoria e riavvia il processo, giusto?

la cache è valida fino a che non si riavvia il processo. basta modificare il web.config perchè ciò avvenga quindi dubito fortemente che starà in cache per un anno

6) Nel web.config ci sono riferimenti agli assembly
<assemblies>
<add assembly="System.Core, Version=3.5.0.0,
Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

Più ce ne sono e più la prestazioni scendono?

teoricamente è indifferente, una volta che ha compilato (cioè la prima volta che richiede una pagina).

7) Nel web.config c'è la sezione compilers
[...]
Per migliori prestazioni è opportuno usare solo ad esempio C# ?

come sopra.

nel code behind
using System;
using System.Collections;
using System.Configuration;
usare using richiede memoria, quindi conviene usarlo con parsimonia?

no, using non richiede memoria, richiede tempo in fase di compilazione per andare a stabilire se effettivamente quel namespace è in uno degli assembly referenziati. ma è una cosa trascurabile, alla fine del giro.

Daniele Bochicchio

ASP.NET
.NET Framework
LINQ
Silverlight
Re: Utilizzo di OutputCache e ottimizzazione pagina aspnet
Giovanni_3478 non è online. Ultima attività: 24/09/2008 17.16.25Giovanni_3478
Inserito il: 02 luglio 2008 12.24
592 messaggi dal 10 feb 2006 Istalla Microsoft Silverlight!
Grazie mille per l'aiuto e la pazienza

Per quanto riguarda gli httpmodule
ho inserito questo
<remove name="PassportAuthentication" />
<remove name="WindowsAuthentication" />
<remove name="FileAuthorization" />
<remove name="Profile" />

ErrorModule mi dice che non esiste.
Microsoft Most Valuable Professional
Re: Utilizzo di OutputCache e ottimizzazione pagina aspnet
Daniele Bochicchio non è online. Ultima attività: 15/10/2008 15.08.53Daniele Bochicchio
Inserito il: 02 luglio 2008 17.01
contributi / Top Poster / Community manager / daniele.aspitalia.com / Blog / 9852 messaggi dal 31 ago 1998 Istalla Microsoft Silverlight!
Giovanni_3478 wrote:
ErrorModule mi dice che non esiste.

il nome esteso è ErrorHandlerModule.
se non usi le rispettive features, anche AnonymousIdentification, RoleManager, ServiceModel e Profile possono essere rimossi.

Daniele Bochicchio

ASP.NET
.NET Framework
LINQ
Silverlight
Re: Utilizzo di OutputCache e ottimizzazione pagina aspnet
Giovanni_3478 non è online. Ultima attività: 24/09/2008 17.16.25Giovanni_3478
Inserito il: 03 luglio 2008 19.30
592 messaggi dal 10 feb 2006 Istalla Microsoft Silverlight!
le rispettive features quali sono ?
Microsoft Most Valuable Professional
Re: Utilizzo di OutputCache e ottimizzazione pagina aspnet
Daniele Bochicchio non è online. Ultima attività: 15/10/2008 15.08.53Daniele Bochicchio
Inserito il: 04 luglio 2008 11.30
contributi / Top Poster / Community manager / daniele.aspitalia.com / Blog / 9852 messaggi dal 31 ago 1998 Istalla Microsoft Silverlight!
Giovanni_3478 wrote:
le rispettive features quali sono ?

AnonymoysIdentification, Roles API, WCF e Profile API, come si evince dal nome dei rispettivi HTTPModule.

Daniele Bochicchio

ASP.NET
.NET Framework
LINQ
Silverlight

Vai a:
Torna al forum |   Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.


maltra - 623 pt
vladimiro - 491 pt
PeppeDotNet - 290 pt

Ultimi vincitori: maltra, vladimiro, PeppeDotNet

Iscriviti anche tu e raccogli punti. Questo mese in palio Windows Vista Ultimate, SQL Prompt e 1 ebook!



COMMUNITY
ULTIMI MESSAGGI


IN EVIDENZA
MISC
Powered by .db Forums