Serverul de web nu are nici o idee despre aplicații separate existente - pur și simplu trece cererea la procesul de lucrător ASP.NET. Cu toate acestea, procesul de lucrător ASP.NET este partajat cu atenție executarea de cod într-o varietate de domenii de aplicatii bazate pe directorul virtual. pagini web care sunt în același director virtual (sau unul dintre subdirectoarele sale), sunt efectuate în același domeniu de aplicare. Paginile web de diferite director virtual sunt executate în diferite domenii de aplicare.
domeniul de aplicare
Domeniul de aplicare - aceasta stabilește limita CLR, care asigură faptul că o aplicație nu poate afecta o altă aplicație (sau a se vedea stocate în datele sale de memorie). Următoarele caracteristici sunt o consecință directă a modelului domeniului de aplicare:
Toate paginile web în aceeași aplicație Web împărtășesc aceleași resurse care sunt în memorie - date de aplicare la nivel mondial, date de sesiuni de utilizator individuale, precum și datele stocate în memoria cache. Aceste informații nu sunt disponibile în mod direct, alte ASP.NET sau aplicații ASP.
Toate paginile web în aceeași aplicație Web aceleași setări de configurare de bază. Cu toate acestea, puteți seta unii parametri de configurare în subdirectoare separate ale aceluiași director virtual. De exemplu, puteți seta doar un singur mecanism de autentificare pentru aplicații web, indiferent de cât de multe subfoldere sunt în ea.
Toate aplicațiile bazate pe web generează evenimente globale în diferite etape ale aplicației (atunci când domeniul de aplicare este creat pentru prima dată când acesta este distrus, și așa mai departe). Cu codul în fișierul Global.asax în aplicația director virtual, puteți atașa Stivuitoare eveniment care răspund la aceste evenimente de aplicare la nivel mondial.
Cu alte cuvinte, un director virtual este o structură a grupului de aplicații de bază limite definitorii ASP.NET. aplicație ASP.NET admisibila poate cuprinde de asemenea un formular web singur (fișier aspx). Cu toate acestea, în principiu, orice aplicație ASP.NET poate include toate componentele enumerate mai jos:
Aceste componente sunt fundamentale în orice aplicație ASP.NET.
Pagini master (.master fișiere)
Aceste componente sunt șabloanele care permit să construiască o multitudine de formulare web cu aceeași structură.
Aceste componente permit schimbul de caracteristici aplicații utile, care sunt localizate pe diferite calculatoare si platforme.
fișierele-cod din spatele
În funcție de modelul de cod poate fi, de asemenea, prezente și selectate fișierele sursă. Dacă aceste fișiere conțin codul în C #, ei au .cs de extensie.
Fișierul de configurare (web.config)
Acest fișier conține un set de parametri la nivel de aplicație, care sunt responsabile pentru configurarea tuturor aspectelor, variind de la securitate la depanare și de control al statului.
Acest fișier conține Stivuitoare eveniment care răspund la evenimente de aplicații globale (cum ar fi prima cursă).
Printre acestea sunt ansambluri compilate care conțin fie componente individuale dezvoltate de către dvs. sau terțe părți componente care sunt utile funcționalitate. Aceste componente vă permit să se separe logica de afaceri de logica de acces la date și de a crea comenzi personalizate.
Desigur, directorul virtual poate conține un număr mare de resurse suplimentare, care vor fi utilizate de aplicațiile bazate pe Web ASP.NET, inclusiv foi de stil, imagini, format XML-fișiere, etc. În plus, puteți extinde modelul ASP.NET, dezvoltarea componentelor specializate - HTTP și module de manipulare HTTP care pot fi integrate în aplicația și să ia parte la procesarea unei cereri de ASP.NET Web.
În același director virtuale pot fi stocate și diferite tipuri de fișiere aparținând diferitelor procesoare. Un exemplu simplu ar fi amestecarea cu fișiere aspx și asp. Într-un mediu mai complex ASP.NET exemplu 4 poate fi configurat pentru a procesa solicitări de fișier aspx, o ASP.NET 3.5 - cereri de fișiere cu o altă extensie de manipulare.
Durata de viață a aplicației
Pentru a crea un domeniu de aplicație ASP.NET utilizează tehnologia întârziată, sau inițializare „leneș“ (inițializare leneș). Aceasta înseamnă că numele de domeniu pentru aplicația Web este creat la prima primire a unei cereri către o pagină în această aplicație.
aplicație de lucru de domeniu poate fi reziliat din diverse motive, inclusiv din cauza finalizării serverului web. Dar, de regulă, aplicația repornite în mod independent, în noi domenii de aplicare ca răspuns la erori sau modificări ale configurației.
În cazul schimbării ASP.NET runtime-ul aplicație se actualizează automat domeniile de aplicare. Un exemplu poate fi o modificare a fișierului web.config. Un alt exemplu - înlocuirea unei pagini web sau fișier de asamblare DLL-fișier existent. În ambele aceste cazuri, ASP.NET lansează un nou domeniu de aplicație care să gestioneze toate cererile viitoare și își păstrează domeniul de aplicare existent în funcțiune atâta timp cât prelucrarea completă a tuturor cererilor aflate pe rol (inclusiv cele care sunt în coada de așteptare).
Compararea domeniilor de aplicare și aplicații bazine
În comportamentul IIS Web Application este configurat folosind piscina aplicație. Setările pool aplicarea determina versiunea de .NET, care este de a obține app, cât de mult poate rămâne inactiv înainte de sfârșitul anului, dacă acesta ar trebui să pornească automat atunci când anumite erori, etc.
Conceptul pool aplicație este similară cu conceptul de domenii de aplicare, dar este puțin mai mare. Diferența este după cum urmează. Fiecare pool aplicarea IIS poate configura una sau mai multe aplicații Web. În timpul executării fiecărei aplicații web de obicei constă dintr-un singur domeniu de aplicare. Formal, piscinele de aplicare sunt de configurare instrument IIS, un domenii de aplicare - parte a infrastructurii .NET.
Actualizarea aplicațiilor
Una dintre caracteristicile cele mai notabile ale modelului ASP.NET este că vă permite să actualizați aplicația Web fără a reporni serverul web și să nu vă faceți griji că ar putea dăuna clienților existenți. Acest lucru înseamnă că fișierele din directorul virtual pot fi modificate, adăugate sau eliminate în orice moment. ASP.NET apoi efectuează exact aceeași tranziție la un nou domeniu de aplicare, ca și în cazul schimbării configurației fișierului web.config.
Capacitatea de a actualiza oricare dintre aplicațiile în orice moment, fără a întrerupe performanța interogărilor existente, este un instrument puternic. Cu toate acestea, este important să se înțeleagă că este în ASP.NET ea arhitectura disponibilă face. Mulți dezvoltatori presupus eronat că aceste tranziții fără dificultăți la un nou domeniu de aplicație ASP.NET permite CLR. Dar, de fapt, CLR-mediu blochează întotdeauna fișierele de asamblare la efectuarea acestora.
A doua caracteristică notabilă este abilitatea de a detecta schimbările în fișierele sursă ASP.NET. Aici totul este destul de clar - ASP.NET pur și simplu se bazează pe posibilitatea sistemului de operare Windows pentru a ține evidența de fișiere și directoare, și trimite o notificare imediată a modificărilor. ASP.NET menține o listă activă a tuturor ansamblurilor încărcate într-un domeniu de aplicație specifică și utilizează codul de monitorizare pentru a monitoriza schimbările și să ia măsurile corespunzătoare.
ASP.NET pot utiliza fișierele stocate în GAC (Adunarea Cache Global - CAG), care este disponibil în stocarea de calculator și conține toate ingredientele esențiale, cum ar fi ansambluri pentru biblioteca .NET Framework clasa. GAC poate fi plasat și de a construi propria lor, dar este de obicei complicat pentru a implementa și gestiona aplicații Web.
Structura directorul aplicației
Fiecare aplicație web trebuie să aibă o structură de directoare bine gândit. Indiferent de structura de directoare nu este proiectat dezvoltator, ASP.NET oferă mai multe cataloage pentru scopuri speciale:
cataloage speciale ASP.NET
Acest director contine toate ansamblurile .NET precompilate (de obicei, având forma de DLL-fișiere) care utilizează această aplicație web ASP.NET. Numărul acestor ansambluri poate include atât pagini Web, clase de pre-compilate și alte ansambluri care se face referire de aceste clase.
La elaborarea unei aplicații web în Visual Studio utilizează modelul la proiect, mai degrabă decât mai comun modelul de web-site-ul, directorul Bin va conține, de asemenea, de asamblare cu cod compilat toate aplicațiile web. Acest ansamblu este aceeași cu cea a numelui de aplicare, de exemplu, WebApplication1.dll.
Acest director conține fișierele de cod sursă care sunt compilate în mod dinamic pentru a fi utilizate în această aplicație. Aceste fișiere de cod componente separate, în mod obișnuit, cum ar fi substituit o componentă pentru biblioteca de conectare sau de acces la date. cod compilat Dynamically nu apare în directorul Bin ca ASP.NET pune în directoare temporare, care sunt concepute special pentru aceste scopuri.
Acest director stochează resurse globale care sunt disponibile pentru fiecare pagină în aplicația web.
Acest director servește în același scop ca și catalogul Arr_GlobalResources, dar conține resurse sunt disponibile numai pentru pagini în aplicația pentru care sunt proiectate în mod specific.
Acest director conține link-uri către un serviciu Web care utilizează această aplicație bazată pe Web, inclusiv fișierele WSDL și a documentelor de constatare.
Acest director este utilizat pentru stocarea de date, inclusiv fișierele de baze de date SQL Server Express, și fișiere XML. Desigur, fișierele de date pot fi stocate în alte directoare.
Acest director conține definiții browser stocate în XML-fișiere. Aceste fișiere bazate pe XML determina posibilitatea de client browsere pentru a implementa diverse activități legate de vizualizare. Deși ASP.NET face la nivel global (pentru întregul calculator), catalogul App_Browsers vă permite să configurați acest comportament pentru aplicații Web individuale.
Acest dosar conține subiecte care pot fi utilizate în aplicația Web.