Differenza fondamentale: ASP sta per Active Server Pages. È comunemente noto come Classic ASP o ASP Classic. È un ambiente di scripting lato server sviluppato e rilasciato da Microsoft. ASP.NET è un framework per applicazioni Web lato server. ASPX è l'acronimo di Active Server Pages Extended. È stato progettato per lo sviluppo Web per la produzione di pagine Web dinamiche. Entrambi supportano il contesto di una sessione. Un oggetto di sessione memorizza informazioni o modifica le impostazioni per una sessione utente. In sostanza, prende nota di tutto ciò che un utente vede e fa su una pagina, in particolare ogni modifica che l'utente può incorporare nella pagina.

L'ASP viene principalmente utilizzato per creare ed eseguire applicazioni server Web interattive dinamiche. Consente inoltre di combinare pagine HTML, comandi di script e componenti COM per creare pagine Web interattive e potenti applicazioni basate sul Web. Semplifica inoltre lo sviluppo e la modifica delle suddette applicazioni Web.
Dopo la sua versione originale, sono state rilasciate due versioni. ASP 2.0 ha introdotto sei oggetti incorporati nell'originale, che erano Application, ASPError, Request, Response, Server e Session. ASP 3.0 ha introdotto alcuni miglioramenti aggiuntivi come il metodo Server.Transfer, il metodo Server.Execute e un oggetto ASPError avanzato. Inoltre, ASP 3.0 abilita anche il buffering di default e ottimizza il motore per prestazioni migliori. Tuttavia, a partire da maggio 2013 non ci sono aggiornamenti pianificati per ASP.

ASP.NET è basato sul Common Language Runtime (CLR). Ciò consente ai programmatori di scrivere codice ASP.NET utilizzando qualsiasi linguaggio .NET supportato. Le pagine Web ASP.NET sono anche comunemente note come Web Form. Contengono markup HTML (X) statico. Contiene inoltre markup che definisce controlli Web e controlli utente sul lato server. È qui che gli sviluppatori inseriscono tutti i contenuti rc per la pagina Web.
In ASP.NET Framework 2.0, è stato introdotto un nuovo modello code-behind. Ciò consente al testo statico di rimanere nella pagina .aspx, mentre il codice dinamico rimane in un file .aspx.vb o .aspx.cs o .aspx.fs. La posizione del codice dinamico dipende dal linguaggio di programmazione utilizzato.
Entrambi supportano il contesto di una sessione. Un oggetto di sessione memorizza informazioni o modifica le impostazioni per una sessione utente. In sostanza, prende nota di tutto ciò che un utente vede e fa su una pagina, in particolare ogni modifica che l'utente può incorporare nella pagina. Questo ha un vantaggio, poiché nel caso in cui il sistema si blocchi in modo anomalo tra le modifiche che l'utente stava tentando di eseguire, le modifiche non andranno perse quando il sistema si arresta in modo anomalo. La sessione manterrebbe la memoria di dove l'utente ha lasciato.
La sessione è essenzialmente un cookie di una pagina web. Memorizza e recupera valori per un utente mentre l'utente naviga sulla pagina web. Le variabili memorizzate in un oggetto Session contengono informazioni su un singolo utente e sono disponibili per tutte le pagine in un'unica applicazione. Alcune informazioni comuni memorizzate nelle variabili di sessione sono nome, ID e preferenze. Il server crea un nuovo oggetto Session per ogni nuovo utente e distrugge l'oggetto Session quando la sessione scade.
Alcune differenze tra la sessione ASP e la sessione ASP.NET:
- In ASP, la sessione dipende dal processo, mentre in ASP.NET la sessione è indipendente dal processo.
- In ASP, la sessione è dipendente dai cookie, mentre in ASP.NET la sessione è indipendente dai cookie.
- Lo stato della sessione ASP non ha alcuna soluzione inerente per lavorare con Web Farms. La sessione ASP.NET può essere archiviata nel server di stato e SQL SERVER che può supportare più server.
- La sessione ASP funziona solo quando il browser supporta i cookie, la sessione ASP.NET viene eseguita indipendentemente.
- Lo stato della sessione ASP dipende molto dal processo IIS. Se IIS si riavvia, anche le variabili di sessione ASP vengono riciclate. Mentre la sessione ASP.NET può essere indipendente dall'ambiente di hosting, la sessione ASP.NET può essere mantenuta anche se IIS viene riavviato.
- La sessione ASP affronta le limitazioni della server farm. Quando gli utenti passano da un server all'altro in una server farm Web, il loro stato di sessione non li segue. Lo stato della sessione ASP.NET supporta le configurazioni della server farm. Passa a un modello out-of-process, quindi non affronta il problema della server farm.