BENVENUTI. Cenni di licensing. Individuale: 1 sviluppatore, 1 licenza (eccetto per MSDN Library) Indivisibile nei suoi componenti Installazioni illimitate ma accesso singolo Prodotti per Test & sviluppo, non utilizzabili in produzione . Eccezioni: Office in MSDN Universal Downgrade
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation
Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement.Téléchargez la présentation en cliquant sur ce lien.Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.
Individuale: 1 sviluppatore, 1 licenza (eccetto per MSDN Library) • Indivisibilenei suoi componenti • Installazioni illimitate ma accesso singolo • Prodotti per Test & sviluppo, non utilizzabili in produzione. • Eccezioni: • Office in MSDN Universal • Downgrade • Si, ma senza utilizzo contemporaneo. • MSDN è la soluzione! • Perpetua (anche all’interno dei contratti di licensing)
Special Edition • Windows Server™ 2003 Standard Edition * • SQL Server™ 2000 Developer Edition* • Add-on Visual Studio Tools per Office • MS Learning E-books and Certification Exam Vouchers • Tre corsi multimediali di programmazione Microsoft .NET Framework (su ASP.NET, VB.NET e C++) • Diminuito il prezzo della versione full da 1.347€ a 992€ • Nuova opzione di aggiornamento: versione Upgrade per i possessori • dei tool standard della famiglia VS.NET 2002 e 2003.
Diverse versioni: Library, Operating System, Professional, Enterprise, Universal • Documentazione Tecnica • Beta e Service Pack • Ultime versioni dei prodotti • Diritto di accesso al sito MSDN Subscribers Download • Interventi di supporto tecnico telefonico gratuiti: • MSDN Operating Systems 2 incidents • MSDN Professional 2 incidents • MSDN Enterprise3 incidents • MSDN Universal 4 incidents Ricordarsi di attivare la licenza via Web dal sito MSDN!
KIT MSDN Universal…e diventi MCP! 5.143 € 3.182 € • Corso MOC 2310 • Voucher esame 1.550€ • Libro MOC Programming Microsoft ASP.NET MSDN Universal3.353€ 3.182€ Omaggio -10% Omaggio • KIT MSDN Professional 1.511 € 1.332 € MSDN Professional1.481€ 1.332€ Introducing Microsoft ASP.NET 2.0 -10% Omaggio
Faccio parte di www.DevLeap.com • Gruppo di consulenti che • Erogano corsi e conferenze • Scrivono libri • Alcuni saranno in omaggio oggi • Scrivono software • Fanno consulenza progettuale e implementativa • Sito pubblico • Articoli tecnici • Cap 1 ASP.NET Full Contact disponibile al download • Blog per seguire la tecnologia
ASP.NET è una tecnologia nuova per fare cose vecchie • ASP.NET è parte del framework .NET • Ambiente object oriented • Nuovi linguaggi…oggi usiamo C#...non preoccupatevi • Nuovo modo di scrivere le cose • ADO.NET per l’accesso ai dati • ASP.NET in quanto tale • Cambia il modo di scrivere pagine web • Cambia il modo di pensare le pagine web • Oggi trattiamo ASP.NET • Non dimenticatevi che il framework .NET esiste ! • Il buon programmatore ASP.NET conosce il framework
Richiesta HTTP Risposta HTTP Server Client IIS/Apache default.htm
Browser ActiveX Controls VBScript DHTML JavaScript Java Applets CSS 2.0 XML Internet Explorer 5.x 6.x Internet Explorer 4.x Netscape Navigator 4.x Netscape Navigator 3.x Microsoft WebTV
http://www.dcc.com/equipment/catalog_type.asp? ProductType=rock+shoes Richiesta HTTP JScript Risposta HTTP Esecuzione VB / C# Server Client IIS Active Server Pages engine ADO.NET default.aspx Recupero risultati
<FORM action=“NomeRisorsa”> <INPUT TYPE=“Text” NAME=“txtNome”> <INPUT TYPE=“Text” NAME=“txtCognome”> <INPUT TYPE=“Submit”> • </FORM> • Le informazioni vengono inviate a “NomeRisorsa” sotto forma di stringhe • txtNome=xxxx&txtCognome=yyyy • Nel QueryString
Contiene le info del QueryString <% first=Request.QueryString("txtfname")%> <% first=Request.QueryString(“txtfname”) last =Request.QueryString(“txtlname”) Response.Write(“Welcome” & first & last)%> Demo 05
<FORM action=“NomeRisorsa” METHOD=“POST”> <INPUT TYPE=“Text” NAME=“txtNome”> <INPUT TYPE=“Text” NAME=“txtCognome”> <INPUT TYPE=“Submit”> • </FORM> • Le informazioni vengono inviate a “NomeRisorsa” sotto forma di stringhe • txtNome=xxxx&txtCognome=yyyy • Nel form (non si vedono nel Querystring)
Contiene le info del Form <% first=Request.Form("txtNome")%> <% first=Request.Form(“txtNome”) last =Request.Form(“txtCognome”) Response.Write(“Ciao” & first & last)%> Demo 06
Ogni richiesta è a se stante • Non esistono informazioni di stato in Http • Per ogni richiesta dobbiamo preoccuparci di inviare il contenuto • Ad esempio riempire i campi di un form con le informazioni digitate dall’utente
Oggetti programmabili • Attributo runat=“server” • Mantengono lo stato delle info • Generano HTML per il client • Espongono • Proprietà • Metodi • Scatenano eventi
<input type=“text” value=“default” runat=“server” id=“txtName” > • Mappano i tag HTML 1:1 • Lavorano bene con gli Editor attuali • Ma il modello ad oggetti non è strongly-typed • Ad esempio • txtName.Value = “Roberto” • txtName.SetAttribute("bgcolor", "red")
<input • type=“Submit” • value=“Premi”runat=“server” • onServerClick=“EseguiOperazioni”> • onClick verrebbe inviato al client • In generale ogni attributo non utilizzato server-side o sconosciuto viene inviato al client
Definizione evento • Gestione evento • Notare • Occhio ai Convert • .NET è tipizzato • Il Web è “stringato” • Occhio alla Response • Esecuzione non sequenziale • Vedere il Source • Usare ad esempio <div runat=server>
ViewState • View Source • Modifica attributo al click • Azzera: Cambia colore pulsante • Disable su Controllo • Non tiene il bgcolor • Disable su Pagina • Non tiene il bgcolor • Comunque txtConta ha sepre il valore • Perchè ?
HTML Control • Sintassi HTML • Mappati 1:1 con controlli HTML • Namespace System.Web.UI.HtmlControls • Web Controls • Sintassi diversa • Tutti gli HTML Control • Più controlli avanzati • Maggiori funzionalità
<asp:TextBox runat=“server” id=“txtName” Text=“default”></asp:TextBox> • Modello ad oggetti consistente e strongly-typed • txtName.Text = “Roberto” • txtName.BackColor = Color.Red • Rendering differente per browser • Esempio: Label • Funzionalità differenti per browser • Esempio: Validation Control
<asp:TextBox ... • Strongly-typed • BackColor=“red” • <asp:ListBox ... • Mantenere lo stato significa anche riposizionare la combo-box • Si possono aggiungere elementi • Reflector (listbox.rendercontents)
List Control • Iterativi su una base di dati • DropDownList, ListBox, RadioButtonList, CheckBoxList • Repeater, DataList, DataGrid • Validation Control • Ci arriviamo fra poco… • Controlli complessi (Rich Control) • Calendar, AdRotator, Xml • Mobile Control: per device e telefonini • Internet Explorer Control
Anche la pagina è un oggetto • La classe deriva da System.Web.UI.Page • Si possono costruire variabili membro • HTML diventa parte del metodo Render • Il codice di rendering diventa parte del metodo Render • WebForm e Controlli Server-side sono costruiti sulla classe Page
Code-behindfile Parsing Generazione ASPX File ASPX Engine Page Class ClassFilesuDisco Request Request CreazioneIstanza Response Response Istanza, Esecuzione e Rendering
A livello di pagina • @Page controlla la compilazione • Molti attributi • @Assembly per referenziare un assembly esterno • Come /r nei compilatori VBC.exe e CSC.exe • @Import per importare un namespace • Imports di VB.NET • using di C#;
ElencoCorsi.aspx <%@Page Language=“VB” Explicit=“True” %> <%@Assembly name=“GestioneCorsi” %> <%@Import namespace=“Corsi” %> ---codice--- Codice VB (uno solo per pagina) Dichiarazione variabili obbligatoria (abilitare sempre) Referenzia l’AssemblyGestioneCorsi.dll Queste direttive corrispondono a Vbc.exe /optionexplicit+ /r:GestioneCorsi.dll ElencoCorsi_aspx
Page Events • Page_Init • Page_Load • Page_Unload • La routine di evento riceve gli argomenti .NET
Evento Load • Riempire una ListBox • Occhio al POST • Aggiunge sempre elementi • Perchè la listbox mantiene il suo stato
Evento Load • Riempire una ListBox solo in Get • I controlli mantengono lo stato
ASP.NET gestisce client-side validazioni e server-side • Client-side Validation • Dependent on browser version • FeedBack immediato • Riduce i round-trip • Server-side Validation • Riesegue le validazioni • Controllo su fonte dati UserInserimento MsgErrore Valido? No Client Si Server Valido? No Si Web ApplicationProcessing
Controllo Obbligatorietà Campo • Gestione errore client-side • Non necessita di post • Risparmia round-trip • Gestione errore server-side • Il controllo viene rieffettuato • Evita problemi • Con browser che non supportano Javascript • Con i malintenzionati • Non ferma l’esecuzione Server-side...giustamente • Demo 17 Page.IsValid
Con i Server Control (<asp:) automatico in base alle capacità del browser • ClientTarget="DownLevel“ • ClientTarget=“UpLevel“ • I controlli diventano span • sytle=“color:red ; visibility:hidden” • Usa Javascript sul client
Uno solo per pagina • @Page CodeBehind=“Codice.vb/cs” Inherits=“Classe” • Nel file Codice.vb/cs • Definire Classe protected • Derivare da System.Web.UI.Page • Poi il codice da usare con la pagina • Eventi • Funzioni Demo 18
Connexion au compte
Connectez-vous pour publier votre contenu sur SlideServe.