Moduli Web ASP.NET - ASP.NET Web Forms
| Autori originali | Microsoft |
|---|---|
| Versione iniziale | 2002 |
| Sistema operativo | Windows , Linux , macOS |
| piattaforma | .NET Framework |
| Tipo | Framework dell'applicazione web |
| Sito web | dotnet |
ASP.NET Web Forms è un framework di applicazioni Web e uno dei numerosi modelli di programmazione supportati dalla tecnologia Microsoft ASP.NET . Le applicazioni Web Forms possono essere scritte in qualsiasi linguaggio di programmazione che supporti Common Language Runtime , come C# o Visual Basic . Gli elementi costitutivi principali delle pagine Web Form sono i controlli server , che sono componenti riutilizzabili responsabili del rendering del markup HTML e della risposta agli eventi. Una tecnica chiamata stato di visualizzazione viene utilizzata per mantenere lo stato dei controlli del server tra richieste HTTP normalmente senza stato .
Web Forms è stato incluso nella versione originale di .NET Framework 1.0 nel 2002 (vedere la cronologia delle versioni di .NET Framework e la cronologia delle versioni di ASP.NET ), come primo modello di programmazione disponibile in ASP.NET. A differenza dei componenti ASP.NET più recenti, Web Forms non è supportato da ASP.NET Core .
Caratteristiche
Le pagine Web ASP.NET, conosciute ufficialmente come Web Form, erano i principali elementi costitutivi per lo sviluppo di applicazioni in ASP.NET prima dell'introduzione di MVC. Esistono due metodologie di base per i Web Form: un formato di applicazione Web e un formato di sito Web. Le applicazioni Web devono essere compilate prima della distribuzione, mentre i siti Web consentono all'utente di copiare i file direttamente sul server senza previa compilazione. I moduli Web sono contenuti in file con estensione ".aspx"; questi file in genere contengono markup HTML statico ( X ) o markup del componente. Il markup del componente può includere controlli Web lato server e controlli utente che sono stati definiti nel framework o nella pagina Web. Ad esempio, un componente casella di testo può essere definito in una pagina come , che viene visualizzato in una casella di input html. Inoltre, il codice dinamico, che viene eseguito sul server, può essere inserito in una pagina all'interno di un blocco , che è simile ad altre tecnologie di sviluppo Web come PHP , JSP e ASP . Con ASP.NET Framework 2.0 , Microsoft ha introdotto un nuovo modello code-behind che consente al testo statico di rimanere nella pagina .aspx mentre il codice dinamico viene inserito in un file .aspx.vb o .aspx.cs o .aspx.fs (a seconda del linguaggio di programmazione utilizzato).
<asp:textbox id='myid' runat='server'><% -- dynamic code -- %>
Modello code-behind
Microsoft consiglia di gestire il codice del programma dinamico utilizzando il modello code-behind, che inserisce questo codice in un file separato o in un tag di script appositamente designato. I file code-behind in genere hanno nomi come " MyPage.aspx.cs" o " MyPage.aspx.vb" mentre il file di paging è MyPage.aspx (stesso nome file del file di paging (ASPX), ma con l'estensione finale che indica la pagina linguaggio). Questa pratica è automatica in Visual Studio e altri IDE , sebbene l'utente possa modificare il nome della pagina code-behind. Inoltre, nel formato dell'applicazione Web, il nomepagina.aspx.cs è una classe parziale collegata al file nomepagina.designer.cs. Il file designer è un file che viene generato automaticamente dalla pagina ASPX e consente al programmatore di fare riferimento ai componenti nella pagina ASPX dalla pagina code-behind senza doverli dichiarare manualmente, come era necessario nelle versioni ASP.NET precedenti alla versione 2. Quando usando questo stile di programmazione, lo sviluppatore scrive codice per rispondere a diversi eventi, come la pagina che viene caricata o un controllo su cui si fa clic, piuttosto che una procedura dettagliata del documento.
Il modello code-behind di ASP.NET segna un allontanamento dall'ASP classico in quanto incoraggia gli sviluppatori a creare applicazioni tenendo a mente la separazione tra presentazione e contenuto . In teoria, ciò consentirebbe a un Web designer, ad esempio, di concentrarsi sul markup del design con meno potenziale di disturbo del codice di programmazione che lo guida. Questo è simile alla separazione del controller dalla vista nei framework model-view-controller (MVC).
Direttive
Una direttiva è un'istruzione speciale su come ASP.NET dovrebbe elaborare la pagina. La direttiva più comune è <%@ Page %>, che può specificare molti attributi usati dal parser e dal compilatore di pagine ASP.NET.
Controlli utente
I controlli utente sono incapsulamenti di sezioni di sezioni di pagina registrate e utilizzate come controlli in ASP.NET.
Controlli personalizzati
I programmatori possono anche creare controlli personalizzati per le applicazioni ASP.NET. A differenza dei controlli utente, questi controlli non dispongono di un file di markup ASCX, poiché tutto il loro codice è compilato in un file di libreria a collegamento dinamico (DLL) . Tali controlli personalizzati possono essere utilizzati in più applicazioni Web e progetti di Visual Studio 2013 .
Tecnica di rendering
.NET utilizza una tecnica di rendering dei "compositi visitati". Durante la compilazione, il file del modello (.aspx) viene compilato nel codice di inizializzazione che crea un albero di controllo (il composito) che rappresenta il modello originale. Il testo letterale entra nelle istanze della classe di controllo letterale e i controlli server sono rappresentati da istanze di una classe di controllo specifica. Il codice di inizializzazione è combinato con il codice scritto dall'utente (di solito dall'assemblaggio di più classi parziali) e risulta in una classe specifica per la pagina. La pagina funge anche da radice dell'albero dei controlli.
Le richieste effettive per la pagina vengono elaborate attraverso una serie di passaggi. Innanzitutto, durante i passaggi di inizializzazione, viene creata un'istanza della classe di pagina e viene eseguito il codice di inizializzazione. Ciò produce l'albero di controllo iniziale, che ora è in genere manipolato dai metodi della pagina nei passaggi seguenti. Poiché ogni nodo nell'albero è un controllo rappresentato come un'istanza di una classe, il codice può modificare la struttura dell'albero e manipolare le proprietà/metodi dei singoli nodi. Infine, durante la fase di rendering, un visitatore viene utilizzato per visitare ogni nodo dell'albero, chiedendo a ciascun nodo di eseguire il rendering utilizzando i metodi del visitatore. L'output HTML risultante viene inviato al client.
Dopo che la richiesta è stata elaborata, l'istanza della classe di pagina viene scartata e con essa l'intero albero di controllo. Questa è una fonte di confusione tra i programmatori ASP.NET alle prime armi che si affidano ai membri dell'istanza della classe che vengono persi con ogni ciclo di richiesta/risposta di pagina.
gestione dello stato
Le applicazioni ASP.NET sono ospitate da un server Web e vi si accede utilizzando il protocollo HTTP stateless . Pertanto, se un'applicazione utilizza l'interazione stateful, deve implementare autonomamente la gestione dello stato . ASP.NET fornisce varie funzioni per la gestione dello stato. Concettualmente, Microsoft tratta lo "stato" come stato della GUI . Possono sorgere problemi se un'applicazione deve tenere traccia dello "stato dei dati"; ad esempio, una macchina a stati finiti che potrebbe trovarsi in uno stato transitorio tra le richieste ( valutazione pigra ) o richiedere molto tempo per l'inizializzazione. La gestione dello stato nelle pagine ASP.NET con autenticazione può rendere difficile o impossibile il Web scraping .
Applicazione
Lo stato dell'applicazione è mantenuto da una raccolta di variabili condivise definite dall'utente. Questi vengono impostati e inizializzati quando l' Application_OnStartevento si attiva al caricamento della prima istanza dell'applicazione e sono disponibili fino all'uscita dell'ultima istanza. È possibile accedere alle variabili dello stato dell'applicazione utilizzando la Applicationsraccolta, che fornisce un wrapper per lo stato dell'applicazione. Le variabili di stato dell'applicazione sono identificate per nome. L'applicazione è la gestione dello stato.
Stato della sessione
Lo stato della sessione lato server è mantenuto da una raccolta di variabili di sessione definite dall'utente che sono persistenti durante una sessione utente. Queste variabili, a cui si accede utilizzando la Sessionraccolta, sono univoche per ogni istanza di sessione. Le variabili possono essere impostate per essere automaticamente distrutte dopo un tempo definito di inattività anche se la sessione non termina. La sessione utente lato client viene gestita da un cookie o codificando l'ID sessione nell'URL stesso.
ASP.NET supporta tre modalità di persistenza per le variabili di sessione lato server:
- Modalità in corso
- Le variabili di sessione vengono mantenute all'interno del processo ASP.NET . Questo è il modo più veloce; tuttavia, in questa modalità le variabili vengono eliminate quando il processo ASP.NET viene riciclato o arrestato.
- Modalità server di stato
- ASP.NET esegue un servizio Windows separato che mantiene le variabili di stato. Poiché la gestione dello stato avviene al di fuori del processo ASP.NET e poiché il motore ASP.NET accede ai dati tramite .NET Remoting, ASPState è più lento di In-Process. Questa modalità consente di bilanciare il carico e ridimensionare un'applicazione ASP.NET su più server. Poiché il servizio di gestione dello stato viene eseguito indipendentemente da ASP.NET, le variabili di sessione possono essere mantenute durante gli arresti dei processi ASP.NET. Tuttavia, poiché il server dello stato della sessione viene eseguito come un'unica istanza, è ancora un punto di errore per lo stato della sessione. Il servizio dello stato della sessione non può essere con bilanciamento del carico e sono presenti restrizioni sui tipi che possono essere archiviati in una variabile di sessione.
- Modalità SQL Server
- Le variabili di stato vengono archiviate in un database , consentendo la persistenza delle variabili di sessione durante gli arresti dei processi ASP.NET. Il vantaggio principale di questa modalità è che consente all'applicazione di bilanciare il carico su un cluster di server, condividendo le sessioni tra i server. Questo è il metodo più lento di gestione dello stato della sessione in ASP.NET.
Lo stato della sessione ASP.NET consente di archiviare e recuperare i valori per un utente mentre l'utente esplora le pagine ASP.NET in un'applicazione Web. HTTP è un protocollo senza stato. Ciò significa che un server Web tratta ogni richiesta HTTP per una pagina come una richiesta indipendente. Il server non conserva alcuna conoscenza dei valori delle variabili utilizzati durante le richieste precedenti. Lo stato della sessione ASP.NET identifica le richieste dallo stesso browser durante un intervallo di tempo limitato come una sessione e fornisce un modo per rendere persistenti i valori delle variabili per la durata di tale sessione. Per impostazione predefinita, lo stato della sessione ASP.NET è abilitato per tutte le applicazioni ASP.NET.
Le alternative allo stato della sessione includono quanto segue:
- Stato dell'applicazione, che archivia le variabili a cui possono accedere tutti gli utenti di un'applicazione ASP.NET.
- Proprietà del profilo, che mantiene i valori utente in un archivio dati senza farli scadere.
- Caching ASP.NET, che archivia i valori nella memoria disponibile per tutte le applicazioni ASP.NET.
- Stato di visualizzazione, che mantiene i valori in una pagina.
- Biscotti.
- La stringa di query e i campi in un modulo HTML disponibili da una richiesta HTTP.
Visualizza stato
Lo stato di visualizzazione si riferisce al meccanismo di gestione dello stato a livello di pagina, utilizzato dalle pagine HTML emesse dalle applicazioni ASP.NET per mantenere lo stato dei controlli e dei widget del modulo Web . Lo stato dei controlli viene codificato e inviato al server ad ogni invio del modulo in un campo nascosto noto come __VIEWSTATE. Il server restituisce la variabile in modo che, quando la pagina viene nuovamente renderizzata, i controlli restituiscano il loro ultimo stato. Lato server, l'applicazione può modificare lo stato di visualizzazione, se l'elaborazione richiede un cambiamento di stato di qualsiasi controllo. Gli stati dei singoli controlli vengono decodificati nel server e sono disponibili per l'uso nelle pagine ASP.NET che utilizzano la ViewStateraccolta.
L'uso principale di ciò è preservare le informazioni del modulo tra i postback. Lo stato di visualizzazione è attivato per impostazione predefinita e normalmente serializza i dati in ogni controllo della pagina indipendentemente dal fatto che venga effettivamente utilizzato durante un postback. Questo comportamento può (e dovrebbe) essere modificato, tuttavia, poiché lo stato di visualizzazione può essere disabilitato per controllo, per pagina o per l'intero server.
Gli sviluppatori devono prestare attenzione all'archiviazione di informazioni riservate o private nello stato di visualizzazione di una pagina o di un controllo, poiché la stringa Base64 contenente i dati dello stato di visualizzazione può essere facilmente de-serializzata. Per impostazione predefinita, lo stato di visualizzazione non crittografa il __VIEWSTATEvalore. La crittografia può essere abilitata su una base a livello di server (e specifica del server), consentendo di mantenere un certo livello di sicurezza.
Cache lato server
ASP.NET offre un oggetto "Cache" condiviso nell'applicazione e che può essere utilizzato anche per archiviare vari oggetti. L'oggetto "Cache" conserva i dati solo per un periodo di tempo specificato.
Altro
Altri mezzi di gestione dello stato supportati da ASP.NET sono i cookie , la memorizzazione nella cache e la stringa di query .
Motore di modelli
Quando è stato rilasciato per la prima volta, ASP.NET non disponeva di un motore di modelli . Poiché .NET Framework è orientato agli oggetti e consente l' ereditarietà , molti sviluppatori definirebbero una nuova classe di base che eredita da " System.Web.UI.Page", scrivono lì metodi che eseguono il rendering dell'HTML e quindi fanno in modo che le pagine nella loro applicazione ereditino da questa nuova classe. Sebbene ciò consenta di riutilizzare elementi comuni in un sito, aggiunge complessità e mescola il codice sorgente con il markup . Inoltre, questo metodo può essere testato visivamente solo eseguendo l'applicazione, non durante la sua progettazione. Altri sviluppatori hanno utilizzato include file e altri trucchi per evitare di dover implementare la stessa navigazione e altri elementi in ogni pagina.
ASP.NET 2.0 ha introdotto il concetto di pagine master , che consente lo sviluppo di pagine basate su modelli . Un'applicazione Web può avere una o più pagine master che, a partire da ASP.NET 2.0, possono essere nidificate. I modelli principali hanno controlli segnaposto , chiamati ContentPlaceHolders per indicare dove va il contenuto dinamico, nonché HTML e JavaScript condivisi tra le pagine figlio.
Le pagine figlio usano quei controlli ContentPlaceHolder, che devono essere mappati al segnaposto della pagina master che sta popolando la pagina di contenuto. Il resto della pagina è definito dalle parti condivise della pagina master, proprio come una stampa unione in un elaboratore di testi . Tutti i markup e i controlli server nella pagina del contenuto devono essere inseriti nel controllo ContentPlaceHolder.
Quando viene effettuata una richiesta per una pagina di contenuto, ASP.NET unisce l'output della pagina di contenuto con l'output della pagina master e invia l'output all'utente.
La pagina principale rimane completamente accessibile alla pagina dei contenuti. Ciò significa che la pagina di contenuto può ancora manipolare le intestazioni, modificare il titolo, configurare la memorizzazione nella cache, ecc. Se la pagina principale espone proprietà o metodi pubblici (ad esempio, per impostare avvisi di copyright) anche la pagina di contenuto può utilizzarli.
Altri file
Altre estensioni di file associate a diverse versioni di ASP.NET includono:
| Estensione | Introdotto nella versione | Descrizione |
|---|---|---|
| asax | 1.0 | Questo è il file dell'applicazione globale. È possibile utilizzare questo file per definire le variabili globali (variabile a cui è possibile accedere da qualsiasi pagina Web nell'applicazione Web). Viene utilizzato principalmente per definire l'evento generale dell'applicazione relativo all'oggetto applicazione e sessione. Global.asax , utilizzato per la logica a livello di applicazione |
| ascx | 1.0 | Controllo utente, utilizzato per la logica dei file di controllo utente |
| ashx | 1.0 | I gestori HTTP personalizzati non dispongono di un'interfaccia utente. |
| asmx | 1.0 | Pagine dei servizi web. Dalla versione 2.0 una pagina Code behind di un file asmx viene inserita nella cartella app_code. |
| aspx | 1.0 | Una pagina Web Form ASP.NET che può contenere controlli Web, presentazione e logica aziendale. http://msdn.microsoft.com/en-us/library/2wawkw1c.aspx |
| axd | 1.0 | Se abilitato in web.config, la richiesta di trace.axd restituisce la traccia a livello di applicazione . Utilizzato anche per il gestore speciale webresource.axd, che consente agli sviluppatori di controlli/componenti di impacchettare un componente/controllo completo di immagini, script, css, ecc. per la distribuzione in un file (un 'assembly') |
| browser | 2.0 | File delle funzionalità del browser archiviati in formato XML ; introdotto nella versione 2.0. ASP.NET 2 include molti di questi per impostazione predefinita, per supportare i browser Web comuni. Questi specificano quali browser hanno quali capacità, in modo che ASP.NET 2 possa personalizzare e ottimizzare automaticamente il suo output di conseguenza. File .browser speciali sono disponibili per il download gratuito per gestire, ad esempio, il W3C Validator, in modo che mostri correttamente le pagine conformi agli standard come conformi agli standard. Sostituisce la sezione BrowserCaps più difficile da usare che si trovava in machine.config e che poteva essere sovrascritta in web.config in ASP.NET 1.x. |
| config | 1.0 | web.config è l'unico file in un'applicazione Web specifica a utilizzare questa estensione per impostazione predefinita (machine.config influisce in modo simile sull'intero server Web e su tutte le applicazioni su di esso), tuttavia ASP.NET fornisce funzionalità per creare e utilizzare altri file di configurazione. Questi sono memorizzati in formato XML . |
| cs/vb/fs | 1.0 | File di codice (cs indica C#, vb indica Visual Basic, fs indica F#). I file code behind (vedi sopra) hanno principalmente l'estensione " .aspx.cs" o " .aspx.vb" per le due lingue più comuni. Nelle cartelle Web possono esistere anche altri file di codice (spesso contenenti classi "librerie" comuni) con estensione cs/vb. In ASP.NET 2 questi dovrebbero essere collocati all'interno della cartella App_Code dove vengono compilati dinamicamente e disponibili per l'intera applicazione.
|
| cshtml | 4.1 | Viste (misto C# e HTML con sintassi Razor ) |
| dbml | 3.5 | File di classi di dati LINQ to SQL |
| edmx | 3.5 | ADO.NET Entity Framework modello |
| maestro | 2.0 | File della pagina principale. Il nome file predefinito è Master1.master |
| resx | 1.0 | File di risorse per l' internazionalizzazione e la localizzazione . I file di risorse possono essere globali (es. messaggi) o locali , il che significa specifici per un file aspx o ascx. |
| Mappa del sito | 2.0 | File di configurazione della mappa del sito. Il nome file predefinito è web.sitemap |
| pelle | 2.0 | File della pelle del tema. |
| svc | 3.0 | File del servizio Windows Communication Foundation |
| vbhtml | 4.1 | Viste (VB e HTML misti utilizzando la sintassi Razor ) |
Struttura della directory
In generale, la struttura della directory ASP.NET può essere determinata dalle preferenze dello sviluppatore. A parte alcuni nomi di directory riservati, il sito può estendersi su un numero qualsiasi di directory. La struttura si riflette in genere direttamente negli URL. Sebbene ASP.NET fornisca mezzi per intercettare la richiesta in qualsiasi momento durante l'elaborazione, lo sviluppatore non è obbligato a incanalare le richieste tramite un'applicazione centrale o un front controller.
I nomi di directory speciali (da ASP.NET 2.0 in poi) sono:
- Codice_app
- Questa è la directory del "codice grezzo". Il server ASP.NET compila automaticamente i file (e le sottodirectory) di questa cartella in un assembly accessibile nel codice di ogni pagina del sito. App_Code viene in genere utilizzato per il codice di astrazione di accesso ai dati, il codice del modello e il codice aziendale. Anche tutti i gestori e moduli http specifici del sito e l'implementazione del servizio Web vanno in questa directory. In alternativa all'utilizzo di App_Code, lo sviluppatore può scegliere di fornire un assembly separato con codice precompilato.
- App_Dati
- La directory App_Data ASP.NET è la directory predefinita per qualsiasi database utilizzato dal sito Web ASP.NET. Questi database potrebbero includere file di Access (mdb) o file di SQL Server (mdf). App_Data è l'unica directory con accesso in scrittura abilitato per l'applicazione Web ASP.NET.:
- App_GlobalResources
- Contiene file resx con risorse localizzate disponibili per ogni pagina del sito. È qui che lo sviluppatore ASP.NET in genere archivia i messaggi localizzati, ecc. utilizzati su più di una pagina.
- App_LocalResources
- Ad esempio, un file chiamato CheckOut.aspx.fr-FR.resx contiene risorse localizzate per la versione francese della pagina CheckOut.aspx. Quando le impostazioni cultura dell'interfaccia utente sono impostate sul francese, ASP.NET trova e usa automaticamente questo file per la localizzazione.
- App_Offline.htm
- Un file (non una directory) che disabilita l'applicazione restituendo il contenuto del file per qualsiasi richiesta dell'applicazione.
- App_Temi
- Aggiunge una cartella che contiene i file relativi ai temi, che è una nuova funzionalità ASP.NET che aiuta a garantire un aspetto coerente in un sito Web e semplifica la modifica dell'aspetto del sito Web quando necessario.
- App_WebReferences
- contiene i file di rilevamento e i file WSDL per i riferimenti ai servizi Web da utilizzare nel sito.
- Bidone
- Contiene codice compilato ( file .dll ) per controlli, componenti o altro codice a cui si desidera fare riferimento nell'applicazione. Qualsiasi classe rappresentata dal codice nella cartella Bin viene automaticamente referenziata nell'applicazione.
Prestazione
ASP.NET mira a ottenere vantaggi in termini di prestazioni rispetto ad altre tecnologie basate su script (incluso ASP classico) compilando il codice lato server la prima volta che viene utilizzato per uno o più file DLL sul server Web . Questi file dll o assembly contengono Microsoft Intermediate Language (MSIL) per l'esecuzione all'interno di Common Language Runtime ; ciò fornisce un aumento delle prestazioni rispetto ai linguaggi di script puri ed è simile all'approccio utilizzato da Python e non dissimile da JavaServer Pages . Questa compilazione avviene automaticamente la prima volta che viene richiesta una pagina (il che significa che lo sviluppatore non deve eseguire un passaggio di compilazione separato per le pagine).
Questa funzionalità offre la facilità di sviluppo offerta dai linguaggi di scripting con i vantaggi in termini di prestazioni di un binario compilato. Tuttavia, la compilazione potrebbe causare un notevole ma breve ritardo all'utente quando la pagina appena modificata viene richiesta per la prima volta dal server Web, ma non di nuovo a meno che la pagina richiesta non si aggiorni ulteriormente.
ASPX e altri file di risorse vengono inseriti in un host virtuale su un server Internet Information Services (o altri server ASP.NET compatibili; vedere Altre implementazioni, di seguito). La prima volta che un client richiede una pagina, .NET Framework analizza e compila i file in un assembly .NET e invia la risposta; le richieste successive vengono servite dai file DLL. Per impostazione predefinita, ASP.NET compila l'intero sito in batch di 1000 file alla prima richiesta. Se il ritardo nella compilazione causa problemi, la dimensione del batch o la strategia di compilazione potrebbero essere ottimizzate.
Gli sviluppatori possono anche scegliere di precompilare i propri file "codebehind" prima della distribuzione, utilizzando Microsoft Visual Studio, eliminando la necessità della compilazione just-in-time in un ambiente di produzione. Ciò elimina anche la necessità di avere il codice sorgente sul server Web. Supporta anche il testo precompilato.
ASP.NET rispetto all'ASP classico
ASP.NET WebForms semplifica la transizione degli sviluppatori dallo sviluppo di applicazioni Windows allo sviluppo Web offrendo la possibilità di creare pagine composte da controlli simili a un'interfaccia utente di Windows . Un controllo Web, come un pulsante o un'etichetta , funziona in modo molto simile ai suoi omologhi Windows: il codice può assegnare le sue proprietà e rispondere ai suoi eventi. I controlli sanno come renderizzare se stessi: mentre i controlli di Windows si disegnano sullo schermo, i controlli web producono segmenti di HTML e JavaScript che formano parti della pagina risultante inviata al browser dell'utente finale.
ASP.NET WebForms incoraggia il programmatore a sviluppare applicazioni utilizzando un modello GUI basato su eventi , piuttosto che in ambienti di scripting Web convenzionali come ASP e PHP . Il framework combina tecnologie esistenti come JavaScript con componenti interni come " ViewState " per portare lo stato persistente (inter-richiesta) all'ambiente Web intrinsecamente senza stato .
Altre differenze rispetto all'ASP classico sono:
- Il codice compilato significa che le applicazioni vengono eseguite più velocemente con più errori in fase di progettazione intrappolati nella fase di sviluppo.
- Gestione degli errori di runtime notevolmente migliorata, utilizzando la gestione delle eccezioni mediante blocchi try-catch.
- Metafore simili alle applicazioni Microsoft Windows come controlli ed eventi.
- Un ampio set di controlli e librerie di classi, oltre a controlli definiti dall'utente, consente la rapida creazione di applicazioni. Il layout di questi controlli su una pagina è più semplice perché la maggior parte di essi può essere eseguita visivamente nella maggior parte degli editor.
- ASP.NET utilizza le capacità multilingue di .NET Common Language Runtime , consentendo la codifica delle pagine Web in VB.NET, C#, F#, Delphi.NET, ecc.
- Possibilità di memorizzare nella cache l'intera pagina o solo parti di essa per migliorare le prestazioni.
- Capacità di utilizzare il modello di sviluppo code-behind per separare la logica aziendale dalla presentazione.
- Capacità di utilizzare un vero design orientato agli oggetti per la programmazione di pagine e controlli
- Se un'applicazione ASP.NET perde memoria , il runtime ASP.NET scarica l'AppDomain che ospita l'applicazione errata e ricarica l'applicazione in un nuovo AppDomain.
- Lo stato della sessione in ASP.NET può essere salvato in un database Microsoft SQL Server o in un processo separato in esecuzione sulla stessa macchina del server Web o su una macchina diversa. In questo modo i valori di sessione non vengono persi quando il server Web viene reimpostato o il processo di lavoro ASP.NET viene riciclato.
- Le versioni di ASP.NET precedenti alla 2.0 sono state criticate per la loro mancanza di conformità agli standard. L'HTML e il JavaScript generati inviati al browser client non sarebbero sempre convalidati rispetto agli standard W3C / ECMA . Inoltre, la funzione di rilevamento del browser del framework a volte identificava erroneamente browser Web diversi da Internet Explorer di Microsoft come "downlevel" e restituiva HTML/JavaScript a questi client con alcune delle funzionalità rimosse o talvolta danneggiate o danneggiate. Nella versione 2.0, tuttavia, tutti i controlli generano un output HTML 4.0, XHTML 1.0 (predefinito) o XHTML 1.1 valido, a seconda della configurazione del sito. Il rilevamento di browser Web conformi agli standard è più solido e il supporto per i fogli di stile a cascata è più esteso.
- Controlli del server Web: questi sono i controlli introdotti da ASP.NET WebForms per fornire l'interfaccia utente per il modulo Web. Questi controlli sono controlli gestiti dallo stato e sono controlli WYSIWYG .
Riferimenti
citazioni
Fonti
- MacDonald, Matteo; Szpuszta, Mario (2005). Pro ASP.NET 2.0 in C# 2005 (1a ed.). Apress. ISBN 978-1-59059-496-4.
link esterno
- Documentazione ufficiale
- Moduli Web su www.asp.net
- Introduzione ad ASP.NET e Web Forms (un documento dell'inizio del 2001)