asp.net – web forms davide vernole.net mvp. di cosa parleremo introduzione ad asp.net asp.net,...
TRANSCRIPT
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
Livello 100Livello 100
Informazioni generali sul .NET Framework
Concetti base di programmazione
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
ASP.NETASP.NET
Web FormsWeb Forms XML Web ServicesXML Web Services
WindowsWindows COM + ServicesCOM + Services
Visu
al Stu
dio
.NE
TV
isual S
tud
io .N
ET
Common Language Runtime (CLR)Common Language Runtime (CLR)
.NET Framework classes.NET Framework classes
ADO.NET e XMLADO.NET e XML
WindowsWindowsFormsForms
Common language specification (CLS)Common language specification (CLS)
C#C# J#J# J#J#VB.NETVB.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
Web formWeb form
NomeNome
CognomeCognome
InviaInvia Code BehindCode BehindPublic Class WebForm1Public Class WebForm1 Inherits System.Web.UI.PageInherits System.Web.UI.Page
#Region " Web Form Designer Generated Code "#Region " Web Form Designer Generated Code "
'This call is required by the Web Form Designer.'This call is required by the Web Form Designer. <System.Diagnostics.DebuggerStepThrough()> Private Sub <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()InitializeComponent()
End SubEnd Sub Protected WithEvents rblSamples As Protected WithEvents rblSamples As System.Web.UI.WebControls.RadioButtonListSystem.Web.UI.WebControls.RadioButtonList Protected WithEvents btnGo As Protected WithEvents btnGo As System.Web.UI.WebControls.ButtonSystem.Web.UI.WebControls.Button
'NOTE: The following placeholder declaration is required by the 'NOTE: The following placeholder declaration is required by the Web Form Designer.Web Form Designer. 'Do not delete or move it.'Do not delete or move it. Private designerPlaceholderDeclaration As System.ObjectPrivate designerPlaceholderDeclaration As System.Object
Private Sub Page_Init(ByVal sender As System.Object, ByVal e Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.InitAs System.EventArgs) Handles MyBase.Init 'CODEGEN: This method call is required by the Web Form 'CODEGEN: This method call is required by the Web Form DesignerDesigner 'Do not modify it using the code editor.'Do not modify it using the code editor. InitializeComponent()InitializeComponent() End SubEnd Sub
#End Region#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LoadAs System.EventArgs) Handles MyBase.Load 'Put user code to initialize the page here'Put user code to initialize the page here End SubEnd Sub
Private Sub btnGo_Click(ByVal sender As System.Object, ByVal Private Sub btnGo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGo.Clicke As System.EventArgs) Handles btnGo.Click Response.Redirect("samples/" + Response.Redirect("samples/" + Me.rblSamples.SelectedValue.ToString() + ".aspx")Me.rblSamples.SelectedValue.ToString() + ".aspx") End SubEnd SubEnd ClassEnd Class
Componente visualeComponente visuale<%@ Page Language="vb" AutoEventWireup="false" Codebehind="Default.aspx.vb" <%@ Page Language="vb" AutoEventWireup="false" Codebehind="Default.aspx.vb" Inherits="MVP_VBWeb.WebForm1"%>Inherits="MVP_VBWeb.WebForm1"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HTML><HEAD><HEAD><title>WebForm1</title><title>WebForm1</title><meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1"><meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1"><meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1"><meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1"><meta name="vs_defaultClientScript" content="JavaScript"><meta name="vs_defaultClientScript" content="JavaScript"><meta name="vs_targetSchema" <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">content="http://schemas.microsoft.com/intellisense/ie5"></HEAD></HEAD><body MS_POSITIONING="GridLayout"><body MS_POSITIONING="GridLayout"><form id="Form1" method="post" runat="server"><form id="Form1" method="post" runat="server"><h3>Esempi</h3><h3>Esempi</h3><asp:RadioButtonList id="rblSamples" runat="server" RepeatDirection="Horizontal" <asp:RadioButtonList id="rblSamples" runat="server" RepeatDirection="Horizontal" RepeatColumns="3">RepeatColumns="3"><asp:ListItem Value="DataGridSortOrder" <asp:ListItem Value="DataGridSortOrder" Selected="True">DataGridSortOrder</asp:ListItem>Selected="True">DataGridSortOrder</asp:ListItem></asp:RadioButtonList> </asp:RadioButtonList> <br><br><asp:Button ID="btnGo" Text="Vai all'esempio" Runat="server"></asp:Button><asp:Button ID="btnGo" Text="Vai all'esempio" Runat="server"></asp:Button></form></form></body></body></HTML></HTML>
MiaPagina.aspxMiaPagina.aspx
MiaPagina.aspx.vbMiaPagina.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
MiaPagina.aspx.vbMiaPagina.aspx.vb<%@ Page Language="vb" AutoEventWireup="false" Codebehind="Default.aspx.vb" <%@ Page Language="vb" AutoEventWireup="false" Codebehind="Default.aspx.vb" Inherits="MVP_VBWeb.WebForm1"%>Inherits="MVP_VBWeb.WebForm1"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HTML><HEAD><HEAD><title>WebForm1</title><title>WebForm1</title><meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1"><meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1"><meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1"><meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1"><meta name="vs_defaultClientScript" content="JavaScript"><meta name="vs_defaultClientScript" content="JavaScript"><meta name="vs_targetSchema" <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">content="http://schemas.microsoft.com/intellisense/ie5"></HEAD></HEAD><body MS_POSITIONING="GridLayout"><body MS_POSITIONING="GridLayout"><form id="Form1" method="post" runat="server"><form id="Form1" method="post" runat="server"><h3>Esempi</h3><h3>Esempi</h3><asp:RadioButtonList id="rblSamples" runat="server" RepeatDirection="Horizontal" <asp:RadioButtonList id="rblSamples" runat="server" RepeatDirection="Horizontal" RepeatColumns="3">RepeatColumns="3"><asp:ListItem Value="DataGridSortOrder" <asp:ListItem Value="DataGridSortOrder" Selected="True">DataGridSortOrder</asp:ListItem>Selected="True">DataGridSortOrder</asp:ListItem></asp:RadioButtonList> </asp:RadioButtonList> <br><br><asp:Button ID="btnGo" Text="Vai all'esempio" Runat="server"></asp:Button><asp:Button ID="btnGo" Text="Vai all'esempio" Runat="server"></asp:Button></form></form></body></body></HTML></HTML>
Web formWeb form
NomeNome
CognomeCognome
InviaInvia
Hai inviato:Hai inviato:Nome = DavideNome = DavideCognome = VernoleCognome = Vernole
Web formWeb form
NomeNome
CognomeCognome
InviaInvia
DavideDavide
VernoleVernole
BrowserBrowser
ServerServer
Post back su evento clickPost back su evento click Esecuzione delEsecuzione delMetodo Metodo
collegato collegato all’eventoall’evento
Predisposizione Predisposizione della pagina da della pagina da inviare al clientinviare al client
Invio della nuova Invio della nuova renderizzazione renderizzazione
al browseral browser
Web forms
Ciclo di esecuzione Inizializzazione della pagina (Page_Init) Inizializzazione del codice (Page_Load) Validazione Gestione eventi Rilascio risorse (Page_Unload)
DemoCreare una Web Form
Web forms
ASP.NET Web Server controls HTML Server controls Web Server Controls Validation Controls User Controls
DemoAggiungere 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.
DemoSingle-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 sviluppatorihttp://www.microsoft.com/italy/msdn/community/default.asp
MSDN Webcasts in italiano
Stay tuned
http://www.microsoft.com/italy/msdn/webcast/default.asp