ASP vs. ASP.Net

ASP e ASP.Net sono linguaggi di programmazione molto diversi. ASP è un linguaggio di scripting, in cui ASP.NET è la formulazione web di un linguaggio compilato (Visual Basic, C #, J #, C ++, .Net). Inoltre, a differenza di ASP, ASP.NET è un linguaggio orientato agli oggetti.

Isolamento del processo

ASP viene eseguito nello spazio del processo inetinfo.exe (IIS) ed è quindi suscettibile agli arresti anomali dell'applicazione dovuti all'arresto o al riavvio di IIS.

D'altra parte, il processo di lavoro ASP.NET è un processo distinto (aspnet_wp.exe) separato dal processo IIS inetinfo.exe. Il modello di processo in ASP.NET non è correlato alle impostazioni di isolamento del processo in IIS.

Interpretazione vs. Compilazione

Quando viene richiesta una pagina ASP tradizionale, il testo di quella pagina viene analizzato in modo lineare. Tutto il contenuto che non è uno script lato server viene reso così com'è alla risposta. Tutti gli script lato server nella pagina vengono prima eseguiti attraverso l'interprete appropriato (JScript o VBScript), il cui output viene quindi restituito alla risposta.

Al contrario, le pagine ASP.NET sono sempre compilate in classi .NET ospitate all'interno di assembly. Questa classe include tutto il codice lato server e l'HTML statico, quindi una volta che si accede a una pagina per la prima volta (o si accede a qualsiasi pagina all'interno di una determinata directory), il rendering successivo di quella pagina viene eseguito eseguendo il codice compilato. Ciò elimina tutte le inefficienze del modello di scripting dell'ASP tradizionale.

Implicazioni sulle prestazioni

  • Poiché gli script ASP vengono interpretati al volo, si ha un impatto sulle prestazioni. Un'ottimizzazione comune per le applicazioni ASP, quindi, è quella di spostare molti script lato server in componenti COM precompilati per migliorare i tempi di risposta. Poiché tutti i componenti in ASP.NET sono assiemi, non si verifica alcun peggioramento delle prestazioni utilizzando il codice lato server.
  • Con ASP, la combinazione di blocchi di valutazione lato server con HTML statico è meno efficiente di un singolo blocco di script lato server, poiché l'interprete deve essere richiamato più volte. Per evitare ciò, molti sviluppatori ASP ricorrono a grandi blocchi di script lato server, sostituendo invece elementi HTML statici con invocazioni Response.Write (). Per ASP.NET, tali passaggi non sono richiesti per il miglioramento delle prestazioni.
  • ASP consente di scrivere diversi blocchi di script all'interno di una pagina in diversi linguaggi di scripting. Anche se questo può essere attraente in qualche modo, riduce anche le prestazioni richiedendo che una determinata pagina carichi entrambi i motori di script (JScript, VBScript) per elaborare una richiesta, che richiede più tempo e memoria rispetto all'utilizzo di una sola lingua. ASP.NET ha "code-behind" nei file .aspx che vengono analizzati e compilati. Più lingue lato server non possono essere utilizzate all'interno di un singolo file aspx.

Debug

Poiché ASP prevede che gli script vengano interpretati, il debug è difficile. Ma con ASP.NET, tutti gli strumenti disponibili per lo sviluppatore .NET sono applicabili allo sviluppatore .aspx. Gli errori con le pagine vengono generati come errori del compilatore e vi sono buone probabilità che la maggior parte degli errori venga rilevata al momento della compilazione anziché durante l'esecuzione, poiché VB.NET e C # sono entrambi linguaggi fortemente tipizzati.

Articoli Correlati