ASP.NET – Web Forms Davide Vernole .NET MVP Di cosa parleremo Introduzione ad ASP.NET ASP.NET, dietro le quinte Componenti principali di una applicazione ASP.NET Web Forms Prerequisiti Informazioni generali sul .NET Framework Concetti base di programmazione Livello 100 Demo Creazione di un progetto web con Visual Studio 2003 Creare una web form Aggiungere controlli ad una web form Single-page Web form Agenda ASP.NET Page Framework Componenti principali di un’applicazione ASP.NET Web Forms ASP.NET Page Framework C# VB.NET J# J# Common language specification (CLS) Web Forms Windows Forms XML Web Services ADO.NET e XML .NET Framework classes Common Language Runtime (CLR) Windows COM + Services Visual Studio .NET ASP.NET ASP.NET Page Framework Dietro le quinte (1/2) Piattaforma web per applicazioni di classe enterprise Si appoggia sul .NET Framework Supporto agli XML Web Services Permette l’utilizzo di linguaggi diversi Facilita il mantenimento dello stato ASP.NET Page Framework Dietro le quinte (2/2) Gestione degli eventi a livello di applicazione Compilazione Configurazione Deployment Sicurezza Autenticazione e autorizzazioni Ottimizzazioni Agenda ASP.NET Page Framework Componenti principali di una applicazione ASP.NET Web Forms Componenti principali di una applicazione ASP.NET Principali file di progetto Web.Config Global.asax AssemblyInfo.cs (vb) Metadata file su file system Reference Componenti Assemblies .NET Componenti COM Progetti Web Services Componenti principali di una applicazione ASP.NET Web.Config Configurazioni specifiche dell’applicazione Utilizzato dal CLR Protetto dall’accesso via internet Estensibile Global.asax Application file Gestione eventi di applicazione Gestione eventi di sessione Demo Creazione di un progetto Web con Visual Studio 2003 Agenda ASP.NET Page Framework Componenti principali di una applicazione ASP.NET Web Forms Web forms Cos’è una web form Pagina basate sulla tecnologia ASP.NET Any browser e any device Programmabile in diversi linguaggi Estensibile Flessibile Possibili utilizzi Creare pagine web programmabili Presentare informazioni all’utente sfruttando implementazioni lato server Web forms Componenti di una web form Componente visuale (web form) HTML statico ASP.NET server controls Logica (code behind) Codice creato per interagire con la parte visuale Risiede in un file separato Codice realizzabile in linguaggi diversi Inserito in fase di compilazione nella dll del progetto Web forms Componente visuale MiaPagina.aspx <%@ Page Language="vb" AutoEventWireup="false" Codebehind="Default.aspx.vb" Inherits="MVP_VBWeb.WebForm1"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <title>WebForm1</title> <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <h3>Esempi</h3> <asp:RadioButtonList id="rblSamples" runat="server" RepeatDirection="Horizontal" RepeatColumns="3"> <asp:ListItem Value="DataGridSortOrder" Selected="True">DataGridSortOrder</asp:ListItem> </asp:RadioButtonList> <br> <asp:Button ID="btnGo" Text="Vai all'esempio" Runat="server"></asp:Button> </form> </body> </HTML> Web form Nome Cognome Invia Code Behind Public Class WebForm1 Inherits System.Web.UI.Page #Region " Web Form Designer Generated Code " 'This call is required by the Web Form Designer. <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() End Sub Protected WithEvents rblSamples As System.Web.UI.WebControls.RadioButtonList Protected WithEvents btnGo As System.Web.UI.WebControls.Button 'NOTE: The following placeholder declaration is required by the Web Form Designer. 'Do not delete or move it. Private designerPlaceholderDeclaration As System.Object Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init 'CODEGEN: This method call is required by the Web Form Designer 'Do not modify it using the code editor. InitializeComponent() End Sub #End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Put user code to initialize the page here End Sub Private Sub btnGo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGo.Click Response.Redirect("samples/" + Me.rblSamples.SelectedValue.ToString() + ".aspx") End Sub End Class MiaPagina.aspx.vb Web forms La direttiva @Page <%@ Page Language="vb" AutoEventWireup="false" Codebehind=“MiaPagina.aspx.vb" Inherits=“MiaPagina.MiaWebForm" %> Web forms Caratteristiche Modello ad oggetti intuitivo e consistente Modello di programmazione ad eventi Gestione dello stato intuitiva Applicazioni indipendenti dal browser Supporto per il CLR Scalabilità Web forms Round Trip Server Web form Nome MiaPagina.aspx.vb Post back su evento click Davide Cognome Vernole Invia <%@ Page Language="vb" AutoEventWireup="false" Codebehind="Default.aspx.vb" Inherits="MVP_VBWeb.WebForm1"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <title>WebForm1</title> <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <h3>Esempi</h3> <asp:RadioButtonList id="rblSamples" runat="server" RepeatDirection="Horizontal" RepeatColumns="3"> <asp:ListItem Value="DataGridSortOrder" Selected="True">DataGridSortOrder</asp:ListItem> </asp:RadioButtonList> <br> <asp:Button ID="btnGo" Text="Vai all'esempio" Runat="server"></asp:Button> </form> </body> </HTML> Browser Web form Invio della nuova renderizzazione al browser Nome Cognome Invia Hai inviato: Nome = Davide Cognome = Vernole Predisposizione della pagina da inviare al client Esecuzione del Metodo collegato all’evento Web forms Ciclo di esecuzione Inizializzazione della pagina (Page_Init) Inizializzazione del codice (Page_Load) Validazione Gestione eventi Rilascio risorse (Page_Unload) Demo Creare una Web Form Web forms ASP.NET Web Server controls HTML Server controls Web Server Controls Validation Controls User Controls Demo Aggiungere controlli ad una Web Form Web forms Single–file Cos’è Differenze con la strutturazione a due file Code-behind Single-file HTML statico e controlli nel file .aspx e il codice in un file separato .aspx.vb o .aspx.cs Il codice è all’interno di un blocco <script> nello stesso file dei componenti visuali .aspx Il codice della pagina è compilato in una classe separata dalla quale il file .aspx deriva Il file .aspx deriva dalla classe Page Tutte i file di classi di un progetto (senza i file .aspx) sono compilati in un’unico file .dll che viene pubblicato sul serve senza nessun codice sorgente. Quando una richiesta per una pagina è ricevuta dal server, un’istanza alla dll di progetto viene creata ed eseguita. Quando la pagina è rilasciata, il codice sorgente è anch’esso rilasciato con lapagina in quanto fisicamente contenuto nel file .aspx. Comunque il codice non viene visualizzato quando si consulta la pagina a run time. Demo Single-Page Web Form Riepilogo Introduzione all’ASP.NET framework Componenti principali di una applicazione ASP.NET Web forms Community news.microsoft.com microsoft.public.it.dotet.asp microsoft.public.it.dotnet.* Comunità degli sviluppatori http://www.microsoft.com/italy/msdn/community/default.asp MSDN Webcasts in italiano Stay tuned http://www.microsoft.com/italy/msdn/webcast/default.asp