Caching pagina Web c#

giovedì 05 febbraio 2009 - 10.59

$ilver Profilo | Junior Member

Ciao a tutti,
sono nuovo del forum e di questa community, e vi dico che sono anche alle prime armi con c# .

Vi espongo il mio problema:

Io ho una pagina web (creata appunto in c#) che si apre molto molto lentamente, allora dopo aver messo a posto diverse cose sul db, ora avevo intenzione di creare una pagina uguale identica a quella originale, salvarla in un punto del server e farla puntare a chi si collega senza così far puntare la pagina originale che invece si carica ogni volta (e quindi carica dati dal db, i vari menu, controlli etc)

Si può fare?
Spero di essere stato chiaro

$ilver

rossimarko Profilo | Guru

Ciao,

ASP.NET mette già a disposizione degli strumenti di caching: http://msdn.microsoft.com/it-it/library/xsbfdd8c.aspx

Puoi gestirli come meglio credi senza dover fare un'altra pagina. Puoi impostare la tua pagina perchè venga salvato l'output e quindi non venga più elaborata per X secondi oppure puoi sfruttare l'oggetto Cache da codice e salvare al suo interno ad esempio quanto ritornato dal database
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

$ilver Profilo | Junior Member

Grazie mille,
però ora la mia domanda è questa: io sto cercando di importare un lavoro scritto in c# liberamente (cioè file per file), in visual studio2008 (Come primo lavoro in c# non è un gran chè ).
Ovviamente ho miliardi di errori e quando compilo non mi esegue il progetto, quindi vero che non posso utilizzare questa funzione di visualstudio finchè non metto a posto questi errori?

Se si c'è un modo per poter fare il caching senza passare da visula studio?, Perchè in Produzione c'è il codice c# creato file per file, quindi senza file di progetto o file di soluzione generati da visual studio (sperando di sostituirlo con il progetto che sto cercando di creare).

rossimarko Profilo | Guru

No se non compila non riesci a farlo andare...
Ma in produzione c'è il codice sorgente?

In visual studio ci sono due possibilità di creare un sito web:
- web site
- web project
http://blogs.dotnethell.it/rossimarko/ASP.NET-Web-Site-e-Web-Application-Projects__14167.aspx

Se hai il codice sorgente ci sta che sia un website, quindi basta che tiri giù tutti i file (aspx, cs ecc) e poi da visual studio fai Open Web Site e specifichi la cartella dove hai scaricato il tutto.
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

$ilver Profilo | Junior Member

Facendo così lui mi crea un progetto, una soluzione e una cartella bin?

Ma secondo te è meglio un web site o un web application?

rossimarko Profilo | Guru

>Facendo così lui mi crea un progetto, una soluzione e una cartella
>bin?

No, ti apre la cartella come website. Te lo dicevo perchè se ci sono i sorgenti ma non c'è il website allora il modo migliore per aprirla è come website.

>Ma secondo te è meglio un web site o un web application?

Io mi trovo meglio con i webproject (soprattutto quando le pagine sono molte), ma per migrare da website a webproject ci sono alcuni passaggi da seguire: http://webproject.scottgu.com/CSharp/migration2/migration2.aspx

Se il sito non è molto grosso per adesso puoi tenere anche il website

-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

$ilver Profilo | Junior Member

Allora io ho aperto l'ho aperto come website, mi da un errore, che cercherò di correggere, ma ora da qui posso fare il caching?

rossimarko Profilo | Guru

Adesso hai aperto il progetto e quindi se compila correttamente puoi modificare il codice. E' importante avere nella cartella anche il web.config
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

$ilver Profilo | Junior Member

Perfetto ora sono riuscito a compilare il tutto e ho anche il web.config

Quindi ora posso mettere questi valori (VaryByParam della direttiva @ OutputCache) nella mia Default giusto?

rossimarko Profilo | Guru

Si adesso puoi sviluppare normalmente.. Dovresti anche riuscire a provare il sito con tasto Play (F5)
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

$ilver Profilo | Junior Member

Si ok funziona.

Ancora una cosa poi nn ti rompo più promesso ( ).

Adesso che ho lanciato il sito e nella mia default.aspx ho inserito <%@ OutputCache Duration="1000" VaryByParam="none" %> , in produzione devo mettere tutto il progetto (visto che l'ho utilizzato con VS2008 che non era mai stato fatto perchè era stato fatto tutto da textr editor) oppure solo la pagina che ho modificato?

rossimarko Profilo | Guru

Se hai cambiato solo quello basta che inserisci la riga nella pagina e sei a posto.
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

rossimarko Profilo | Guru

Dimenticavo.. se puoi hai risolto accetta una risposta nel thread così viene chiuso.

Grazie!
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

$ilver Profilo | Junior Member

Purtroppo per il cash non ancora.

Perchè io ho messo <%@ OutputCache Duration="1000" VaryByParam="none" %> nella mia pagina aspx ma la prima volta che vado ad aprire la pagina si apre sempre lenta e non so dove sbaglio

rossimarko Profilo | Guru

Al primo caricamento è normale che sia lenta, viene comunque elaborata... Solo le richieste successive che devono essere veloci
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

$ilver Profilo | Junior Member

Tu invece cosa mi consigli di fare per velocizzare la prima volta?

Cioè io pensavo di caricare la pagina prima e di far puntare la pagina già caricata al client.

Dici che è una cavolata?

rossimarko Profilo | Guru

Quanto tempo ci mette la prima volta? La lentezza è dovuta al database?

Secondo me dal punto di vista del web va già bene così, hai impostato una cache di output di 1000 sec, quindi il problema di lentezza si verificherebbe al primo caricamento e basta..
Al max si può pensare di velocizzare la chiamata preparando i dati già pronti su database
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5