ASP vs. ASP.Net

ASP și ASP.Net sunt limbi de programare foarte diferite. ASP este un limbaj de scripting, unde ASP.NET este formularea web a unei limbi compilate (Visual Basic, C #, J #, C ++, .Net). Mai mult decât atât, spre deosebire de ASP, ASP.NET este un limbaj orientat pe obiecte.

Cuprins: ASP vs ASP.Net

  • 1 Izolarea procesului
  • 2 Interpretare vs. compilare
    • 2.1 Implicații asupra performanțelor
  • 3 Debugging
  • 4 Referințe

Izolarea proceselor

ASP se execută în spațiul procesului inetinfo.exe (IIS) și, prin urmare, este susceptibil la blocarea aplicațiilor datorită opririi sau reinițializării IIS.

Pe de altă parte, procesul lucrătorului ASP.NET este un proces distinct (aspnet_wp.exe) separat de procesul IET inetinfo.exe. Modelul de proces în ASP.NET nu are nicio legătură cu setările de izolare a proceselor din IIS.

Interpretare vs. compilare

Când se solicită o pagină ASP tradițională, textul acelei pagini este analizat liniar. Tot conținutul care nu este script pe partea de server este redat ca-este înapoi la răspuns. Toți script-urile de pe server sunt inițial difuzate prin intermediul interpretului adecvat (JScript sau VBScript), ieșirea din care este redată înapoi la răspunsul.

În schimb, paginile ASP.NET sunt întotdeauna compilate în clase .NET adăpostite în ansambluri. Această clasă include tot codul de pe server și codul static HTML, astfel încât, odată ce o pagină este accesată pentru prima dată (sau este accesată orice pagină dintr-un anumit director), redarea ulterioară a acelei pagini este efectuată prin executarea unui cod compilat. Acest lucru elimină toate ineficiențele modelului scripting al ASP tradițional.

Implicații asupra performanței

  • Deoarece scripturile ASP sunt interpretate în zbor, există un impact asupra performanței. O optimizare comună pentru aplicațiile ASP, prin urmare, este să mutați o mulțime de script-uri de pe server în componente COM precompilate pentru a îmbunătăți timpii de răspuns. Deoarece toate componentele din ASP.NET sunt ansambluri, nu există o degradare a performanței prin utilizarea codului de pe server.
  • Cu ASP, blocarea blocurilor de server-side cu HTML static este mai puțin eficientă decât un singur bloc script de server, deoarece interpretul trebuie invocat de mai multe ori. Pentru a evita acest lucru, mulți dezvoltatori ASP apelează la blocuri mari de script-uri de pe server, înlocuind elementele HTML statice cu invocările Response.Write (). Pentru ASP.NET, astfel de măsuri nu sunt necesare pentru îmbunătățirea performanței.
  • ASP permite ca diferitele blocuri de script dintr-o pagină să fie scrise în diferite limbi de scripting. Deși acest lucru poate fi atrăgător în anumite moduri, acesta degradează performanța, cerând ca o anumită pagină să încarce ambele motoare de scripting (JScript, VBScript) pentru a procesa o solicitare, care necesită mai mult timp și mai multă memorie decât utilizarea unei singure limbi. ASP.NET are "cod-behind" în fișiere .aspx care sunt analizate și compilate. Multiple limbi de server nu pot fi utilizate într-un singur fișier .aspx.

Debugging

Deoarece ASP implică scrierea de scripturi, depanarea este dificilă. Dar cu ASP.NET, toate instrumentele disponibile dezvoltatorului .NET sunt aplicabile dezvoltatorului .aspx. Erori cu pagini sunt generate ca erori de compilator și există șanse mari ca majoritatea erorilor să fie găsite la timpul de compilare în loc de timpul de execuție, deoarece VB.NET și C # sunt ambele limbi puternic tipizate.

Referințe

  • wikipedia: Pagini Active Server
  • wikipedia: ASP.NET