ASP versus ASP.Net

ASP en ASP.Net zijn heel verschillende programmeertalen. ASP is een scripttaal, waar als ASP.NET is de webformulering van een gecompileerde taal (Visual Basic, C #, J #, C ++, .Net). Bovendien is ASP.NET, in tegenstelling tot ASP, een objectgeoriënteerde taal.

Inhoud: ASP versus ASP.Net

  • 1 Procesisolatie
  • 2 Interpretatie vs. compilatie
    • 2.1 Prestatie-implicaties
  • 3 Debuggen
  • 4 Referenties

Procesisolatie

ASP wordt uitgevoerd onder de inetinfo.exe (IIS) -procesruimte en is daarom vatbaar voor toepassingscrashes doordat IIS wordt gestopt of opnieuw wordt opgestart.

Aan de andere kant is het ASP.NET-werkproces een afzonderlijk proces (aspnet_wp.exe) los van het IIS-proces inetinfo.exe. Het procesmodel in ASP.NET is niet gerelateerd aan procesisolatie-instellingen in IIS.

Interpretatie versus compilatie

Wanneer een traditionele ASP-pagina wordt aangevraagd, wordt de tekst van die pagina lineair geparseerd. Alle inhoud die geen script aan de serverzijde is, wordt teruggezet naar het antwoord. Alle serverscript op de pagina wordt eerst door de juiste interpreter (JScript of VBScript) geleid, waarvan de uitvoer vervolgens wordt teruggegeven aan het antwoord.

ASP.NET-pagina's worden daarentegen altijd gecompileerd tot .NET-klassen die zijn ondergebracht in vergaderingen. Deze klasse omvat alle code aan de serverzijde en de statische HTML, dus zodra een pagina voor de eerste keer wordt geopend (of een pagina in een bepaalde map wordt geopend), wordt de daaropvolgende weergave van die pagina onderhouden door gecompileerde code uit te voeren. Dit elimineert alle inefficiënties van het scripting-model van traditionele ASP.

Prestatie-implicaties

  • Aangezien ASP-scripts on the fly worden geïnterpreteerd, is er een impact op de prestaties. Een veelvoorkomende optimalisatie voor ASP-toepassingen is daarom het verplaatsen van veel server-side script naar vooraf gecompileerde COM-componenten om de reactietijden te verbeteren. Aangezien alle componenten in ASP.NET samenstellingen zijn, is er geen prestatievermindering door code op de server te gebruiken.
  • Met ASP is het vermengen van server-side evaluatieblokken met statische HTML minder efficiënt dan een enkel server-side scriptblok, omdat de interpreter meerdere keren moet worden aangeroepen. Om dit te voorkomen, nemen veel ASP-ontwikkelaars hun toevlucht tot grote blokken server-side script, waarbij ze in plaats daarvan de statische HTML-elementen vervangen door Response.Write () aanroepingen. Voor ASP.NET zijn dergelijke stappen niet vereist voor prestatieverbetering.
  • Met ASP kunnen verschillende blokken script binnen een pagina in verschillende scripttalen worden geschreven. Hoewel dit op sommige manieren aantrekkelijk kan zijn, vermindert het ook de prestaties door te vereisen dat een bepaalde pagina beide scripting engines (JScript, VBScript) laadt om een ​​verzoek te verwerken, wat meer tijd en geheugen vergt dan het gebruik van slechts één taal. ASP.NET heeft "code achter" in .aspx-bestanden die worden geparseerd en gecompileerd. Meerdere server-side talen kunnen niet worden gebruikt binnen één .aspx-bestand.

debugging

Omdat ASP scripts bevat die worden geïnterpreteerd, is debuggen moeilijk. Maar met ASP.NET zijn alle tools beschikbaar voor de .NET ontwikkelaar van toepassing op de .aspx-ontwikkelaar. Fouten met pagina's worden gegenereerd als compileerfouten en de kans is groot dat de meeste fouten worden gevonden op compilatietijd in plaats van runtime, omdat VB.NET en C # beide sterk getypte talen zijn.

Referenties

  • wikipedia: Active Server-pagina's
  • wikipedia: ASP.NET