A causa del diverso processo di esecuzione, ASP e
ASP.NET non possono integrarsi in maniera diretta. Ad esempio non è possibile
condividere lo stato della sessione o sfruttare la tecnica degli include
per condividere parti di codice. Durante il processo di update è possibile,
però, utilizzare la tecnica denominata "URL grabbing" per riutilizzare pagine
ASP all'interno delle nuove ASP.NET. Un primo passo è quello di creare un
Web User Control che sostituisce l'include, ed inseriamo il seguente codice
nell'evento load:
HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create("http://localhost/test.asp");
HttpWebResponse webRes = (HttpWebResponse)webReq.GetResponse();
System.IO.StreamReader stream = new System.IO.StreamReader(webRes.GetResponseStream());
Response.Write(stream.ReadToEnd());
stream.Close();
webRes.Close();
Il codice cattura l'output generato dalla pagina
test.asp e lo riporta all'interno dell'output del Web User Control.
Ovviamente questo è solo un esempio e le possibili ottimizzazioni sono
molteplici, ma risponde attualmente alle nostre esigenze. L'inclusione del
codice nel Web User Control consente di "preparare" l'applicazione al completo
upgrade. Quando, infatti, tutte le sezioni che utilizzano l'include saranno
aggiornate, sarà sufficiente aggiornare il controllo.
Questa tecnica, però, crea un carico maggiore di richieste verso il server,
cosa che in siti ad elevato traffico potrebbe creare qualche problemino di
troppo (immaginate di moltiplicare le richieste per ogni singolo include/Web
Control utilizzato nella pagina). E' opportuno utilizzare, dove
possibile, anche le tecniche di caching che i Web User Control offrono.
powered by IMHO