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