Che cos'è Web Forms

Web Forms ASP.NET fa parte del framework dell'applicazione Web ASP.NET ed è incluso in Visual Studio. È uno dei quattro modelli di programmazione che è possibile usare per creare applicazioni Web ASP.NET, le altre sono ASP.NET MVC, Pagine Web ASP.NET e ASP.NET applicazioni a pagina singola.

Web Forms sono pagine richieste dagli utenti tramite il browser. Queste pagine possono essere scritte usando una combinazione di codice HTML, script client, controlli server e codice server. Quando gli utenti richiedono una pagina, vengono compilati ed eseguiti nel server dal framework e quindi il framework genera il markup HTML che il browser può eseguire il rendering. Una pagina Web Forms ASP.NET presenta informazioni all'utente in qualsiasi browser o dispositivo client.

Con Visual Studio è possibile creare Web Forms ASP.NET. L'IDE (Integrated Development Environment) di Visual Studio consente di trascinare e rilasciare i controlli server per la configurazione della pagina Web Forms. È quindi possibile impostare facilmente proprietà, metodi ed eventi per i controlli nella pagina o per la pagina stessa. Queste proprietà, metodi ed eventi vengono usate per definire il comportamento, l'aspetto e l'aspetto della pagina Web e così via. Per scrivere codice server per gestire la logica per la pagina, è possibile usare un linguaggio .NET come Visual Basic o C#.

Nota

ASP.NET e la documentazione di Visual Studio si estende su diverse versioni. Gli argomenti che evidenziano le funzionalità delle versioni precedenti possono essere utili per le attività e gli scenari correnti usando le versioni più recenti.

Web Forms ASP.NET sono:

  • In base alla tecnologia Microsoft ASP.NET, in cui il codice eseguito nel server genera dinamicamente l'output della pagina Web nel browser o nel dispositivo client.
  • Compatibile con qualsiasi browser o dispositivo mobile. Una pagina Web ASP.NET esegue automaticamente il rendering del codice HTML conforme al browser corretto per funzionalità quali stili, layout e così via.
  • Compatibile con qualsiasi linguaggio supportato da .NET Common Language Runtime, ad esempio Microsoft Visual Basic e Microsoft Visual C#.
  • Basato su Microsoft .NET Framework. Ciò offre tutti i vantaggi del framework, tra cui un ambiente gestito, la sicurezza dei tipi e l'ereditarietà.
  • Flessibile perché è possibile aggiungere controlli creati dall'utente e di terze parti a tali controlli.

Web Forms ASP.NET offerta:

  • Separazione di codice HTML e altro codice dell'interfaccia utente dalla logica dell'applicazione.
  • Una suite completa di controlli server per le attività comuni, tra cui l'accesso ai dati.
  • Data binding potente, con un ottimo supporto per gli strumenti.
  • Supporto per lo script sul lato client che viene eseguito nel browser.
  • Supporto per un'ampia gamma di altre funzionalità, tra cui routing, sicurezza, prestazioni, internazionalizzazione, test, debug, gestione degli errori e gestione dello stato.

Web Forms ASP.NET consente di superare le sfide

La programmazione dell'applicazione Web presenta problemi che in genere non si verificano quando si programmano applicazioni basate su client tradizionali. Tra le sfide sono:

  • Implementazione di un'interfaccia utente Web avanzata : può essere difficile e noiosa per progettare e implementare un'interfaccia utente usando le funzionalità HTML di base, soprattutto se la pagina ha un layout complesso, una grande quantità di contenuto dinamico e oggetti interattivi utente completi.
  • Separazione del client e del server : in un'applicazione Web, il client (browser) e il server sono spesso programmi diversi in esecuzione su computer diversi (e anche su sistemi operativi diversi). Di conseguenza, le due metà dell'applicazione condividono molto poco informazioni; possono comunicare, ma in genere scambiare solo piccoli blocchi di informazioni semplici.
  • Esecuzione senza stato : quando un server Web riceve una richiesta per una pagina, trova la pagina, la elabora, la invia al browser e quindi elimina tutte le informazioni sulla pagina. Se l'utente richiede di nuovo la stessa pagina, il server ripete l'intera sequenza, elaborando nuovamente la pagina da zero. Mettere un altro modo, un server non ha memoria di pagine elaborate, la pagina è senza stato. Pertanto, se un'applicazione deve mantenere informazioni su una pagina, la sua natura senza stato può diventare un problema.
  • Funzionalità client sconosciute : in molti casi, le applicazioni Web sono accessibili a molti utenti usando browser diversi. I browser hanno funzionalità diverse, rendendo difficile creare un'applicazione che verrà eseguita altrettanto bene su tutti.
  • Complicazioni con l'accesso ai dati : la lettura e la scrittura in un'origine dati nelle applicazioni Web tradizionali possono essere complesse e a elevato utilizzo di risorse.
  • Complicazioni con scalabilità : in molti casi le applicazioni Web progettate con metodi esistenti non soddisfano gli obiettivi di scalabilità a causa della mancanza di compatibilità tra i vari componenti dell'applicazione. Questo è spesso un punto di errore comune per le applicazioni in un ciclo di crescita elevato.

Soddisfare queste sfide per le applicazioni Web può richiedere molto tempo e impegno. Web Forms ASP.NET e il framework di ASP.NET risolvere questi problemi nei modi seguenti:

  • Modello a oggetti intuitivo e coerente : il framework di pagine ASP.NET presenta un modello a oggetti che consente di pensare ai moduli come unità, non come parti client e server separate. In questo modello è possibile programmare la pagina in modo più intuitivo rispetto alle applicazioni Web tradizionali, inclusa la possibilità di impostare le proprietà per gli elementi della pagina e rispondere agli eventi. Inoltre, ASP.NET controlli server sono un'astrazione dal contenuto fisico di una pagina HTML e dall'interazione diretta tra browser e server. In generale, è possibile usare i controlli server nel modo in cui è possibile usare i controlli in un'applicazione client e non è necessario pensare a come creare il codice HTML per presentare ed elaborare i controlli e il relativo contenuto.
  • Modello di programmazione basato su eventi: Web Forms ASP.NET portare alle applicazioni Web il modello familiare di scrittura di gestori eventi per gli eventi che si verificano nel client o nel server. Il framework di pagina ASP.NET astrae questo modello in modo che il meccanismo sottostante di acquisizione di un evento nel client, trasmettendolo al server e chiamando il metodo appropriato sia tutto automatico e invisibile all'utente. Il risultato è una struttura di codice chiara e facilmente scritta che supporta lo sviluppo basato su eventi.
  • Gestione intuitiva dello stato : il framework di pagina ASP.NET gestisce automaticamente l'attività di gestione dello stato della pagina e dei relativi controlli e fornisce modi espliciti per mantenere lo stato delle informazioni specifiche dell'applicazione. Questa operazione viene eseguita senza un uso elevato delle risorse server e può essere implementata con o senza inviare cookie al browser.
  • Applicazioni indipendenti dal browser : il framework di pagine ASP.NET consente di creare tutta la logica dell'applicazione nel server, eliminando la necessità di codice in modo esplicito per le differenze nei browser. Tuttavia, consente comunque di sfruttare le funzionalità specifiche del browser scrivendo codice lato client per offrire prestazioni migliorate e un'esperienza client più avanzata.
  • Supporto di Common Language Runtime di .NET Framework : il framework di pagine di ASP.NET è basato su .NET Framework, quindi l'intero framework è disponibile per qualsiasi applicazione ASP.NET. Le applicazioni possono essere scritte in qualsiasi linguaggio compatibile con il runtime. Inoltre, l'accesso ai dati viene semplificato usando l'infrastruttura di accesso ai dati fornita da .NET Framework, inclusa la ADO.NET.
  • Prestazioni scalabili del server .NET Framework : il framework di pagina ASP.NET consente di ridimensionare l'applicazione Web da un computer con un singolo processore a una web farm multi-computer e senza modifiche complesse alla logica dell'applicazione.

Funzionalità di Web Forms ASP.NET

  • Controlli server: ASP.NET i controlli server Web sono oggetti in ASP.NET pagine Web eseguite quando la pagina viene richiesta e che esegue il rendering del markup nel browser. Molti controlli server Web sono simili agli elementi HTML familiari, ad esempio pulsanti e caselle di testo. Altri controlli includono un comportamento complesso, ad esempio controlli del calendario e controlli che è possibile usare per connettersi alle origini dati e visualizzare i dati.
  • Pagine master: ASP.NET pagine master consentono di creare un layout coerente per le pagine dell'applicazione. Una singola pagina master definisce l'aspetto e il comportamento standard da applicare a tutte le pagine (o a un gruppo di pagine) dell'applicazione. È quindi possibile creare singole pagine di contenuto per il contenuto da visualizzare. Quando gli utenti richiedono le pagine del contenuto, si unioneno con la pagina master per produrre output che combina il layout della pagina master con il contenuto dalla pagina del contenuto.
  • L'uso dei dati- ASP.NET offre molte opzioni per l'archiviazione, il recupero e la visualizzazione dei dati. In un'applicazione Web Forms ASP.NET si usano i controlli associati ai dati per automatizzare la presentazione o l'input di dati negli elementi dell'interfaccia utente della pagina Web, ad esempio tabelle e caselle di testo e elenchi a discesa.
  • Appartenenza: ASP.NET Identity archivia le credenziali degli utenti in un database creato dall'applicazione. Quando gli utenti accedono, l'applicazione convalida le credenziali leggendo il database. La cartella Account del progetto contiene i file che implementano le varie parti dell'appartenenza: registrazione, registrazione, modifica di una password e autorizzazione dell'accesso. Inoltre, Web Forms ASP.NET supporta OAuth e OpenID. Questi miglioramenti di autenticazione consentono agli utenti di accedere al sito usando credenziali esistenti, da account come Facebook, Twitter, Windows Live e Google. Per impostazione predefinita, il modello crea un database di appartenenza usando un nome di database predefinito in un'istanza di SQL Server Express LocalDB, il server di database di sviluppo fornito con Visual Studio Express 2013 per Web.
  • Script client e Framework client: è possibile migliorare le funzionalità basate sul server di ASP.NET includendo funzionalità client-script nelle pagine del modulo Web ASP.NET. È possibile usare lo script client per fornire un'interfaccia utente più avanzata e più reattiva agli utenti. È anche possibile usare lo script client per eseguire chiamate asincrone al server Web mentre una pagina è in esecuzione nel browser.
  • Routing- URL consente di configurare un'applicazione per accettare URL di richiesta che non vengono mappati ai file fisici. Un URL di richiesta è semplicemente l'URL immesso nel browser per trovare una pagina nel sito Web. Si usa il routing per definire GLI URL che sono semanticamente significativi per gli utenti e che possono essere utili per l'ottimizzazione del motore di ricerca (SEO).
  • Gestione stato: Web Forms ASP.NET include diverse opzioni che consentono di mantenere i dati in base a pagina e a livello di applicazione.
  • Sicurezza: una parte importante dello sviluppo di un'applicazione più sicura consiste nel comprendere le minacce. Microsoft ha sviluppato un modo per classificare le minacce: spoofing, manomissione, ripudio, divulgazione delle informazioni, denial of service, elevazione dei privilegi (STRIDE). In Web Forms ASP.NET è possibile aggiungere punti di estendibilità e opzioni di configurazione che consentono di personalizzare vari comportamenti di sicurezza in Web Forms ASP.NET.
  • Prestazioni: le prestazioni possono essere un fattore chiave in un sito Web o un progetto di successo. Web Forms ASP.NET consente di modificare le prestazioni relative all'elaborazione del controllo della pagina e del server, alla gestione dello stato, all'accesso ai dati, alla configurazione dell'applicazione e al caricamento e alle procedure di codifica efficienti.
  • Internationalizzazione- Web Forms ASP.NET consente di creare pagine Web che possono ottenere contenuto e altri dati in base all'impostazione della lingua preferita per il browser o in base alla scelta esplicita dell'utente. Contenuto e altri dati vengono definiti risorse e tali dati possono essere archiviati nei file di risorse o in altre origini. In una pagina Web Forms ASP.NET si configurano i controlli per ottenere i valori delle proprietà dalle risorse. In fase di esecuzione, le espressioni di risorsa vengono sostituite dalle risorse dal file di risorse localizzato appropriato.
  • Debug e gestione degli errori: ASP.NET include funzionalità che consentono di diagnosticare i problemi che potrebbero verificarsi nell'applicazione Web Forms. Il debug e la gestione degli errori sono ben supportati all'interno di Web Forms ASP.NET in modo che le applicazioni vengano compilate ed eseguite in modo efficace.
  • Distribuzione e hosting: Visual Studio, ASP.NET, Azure e IIS forniscono strumenti che consentono di eseguire la distribuzione e l'hosting dell'applicazione Web Forms.

Decidere quando creare un'applicazione Web Forms

È necessario valutare attentamente se implementare un'applicazione Web usando il modello di Web Forms ASP.NET o un altro modello, ad esempio il framework MVC ASP.NET. Il framework MVC non sostituisce il modello Web Form. Per le applicazioni Web è infatti possibile utilizzare uno dei due. Prima di decidere di usare il modello di Web Forms o il framework MVC per un sito Web specifico, valutare i vantaggi di ogni approccio.

Vantaggi di un'applicazione Web basata su Web Form

Il framework basato su Web Form offre i seguenti vantaggi:

  • Supporta un modello di eventi che mantiene lo stato su HTTP, con conseguenti vantaggi per lo sviluppo di applicazioni Web line-of-business. L'applicazione basata su Web Form fornisce decine di eventi supportati in centinaia di controlli server.
  • Utilizza un modello Page Controller che aggiunge funzionalità a singole pagine. Per altre informazioni, vedere Controller di pagina.
  • Usa moduli basati sullo stato di visualizzazione o sul server, che semplificano la gestione delle informazioni sullo stato.
  • È appropriato per i team di sviluppatori e designer Web di piccole dimensioni che desiderano usufruire della disponibilità di numerosi componenti per lo sviluppo rapido delle applicazioni.
  • In generale, è meno complesso per lo sviluppo di applicazioni, perché i componenti (la classe Page , i controlli e così via) sono strettamente integrati e in genere richiedono meno codice del modello MVC.

Vantaggi di un'applicazione Web basata su MVC

Il framework ASP.NET MVC offre i seguenti vantaggi:

  • Rende più facile gestire la complessità mediante la suddivisione di un'applicazione in un modello, una visualizzazione e un controller.
  • Non utilizza lo stato di visualizzazione o form basati su server. Il framework MVC risulta in tal modo lo strumento ideale per gli sviluppatori che desiderano disporre del controllo completo sul comportamento di un'applicazione.
  • Utilizza un modello Front Controller che elabora le richieste dell'applicazione Web attraverso un singolo controller, consentendo in tal modo di progettare un'applicazione dotata del supporto per un'infrastruttura di routing avanzata. Per altre informazioni, vedere Front Controller.
  • Offre un supporto più idoneo per lo sviluppo basato su test (TDD, Test-Driven Development).
  • Funziona bene per le applicazioni Web supportate da grandi team di sviluppatori e progettisti Web che necessitano di un elevato grado di controllo sul comportamento dell'applicazione.