1 / 203

BENVENUTI

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

collier
Download Presentation

BENVENUTI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BENVENUTI

  2. Cenni di licensing

  3. 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)

  4. Per tutti gli strumenti di sviluppo la Software Assurance è MSDN

  5. 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.

  6. 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!

  7. 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

  8. Hai una licenza Visual Studio .NET? E’ il momento di passare a MSDN: paghi solo la Software Assurance!

  9. Per tutte le informazioni sui nostri eventi e webcast visitate registratevi direttamente alla Newsletter MSDN Flash. www.microsoft.com/italy/msdn/

  10. MCSD MCAD MCSE+I MCSA MCT

  11. 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

  12. 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

  13. Richiesta HTTP Risposta HTTP Server Client IIS/Apache default.htm

  14. 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

  15. 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

  16. Time • For i = 1 to X • Response • Next

  17. <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

  18. Contiene le info del QueryString <% first=Request.QueryString("txtfname")%> <% first=Request.QueryString(“txtfname”) last =Request.QueryString(“txtlname”) Response.Write(“Welcome” & first & last)%> Demo 05

  19. <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)

  20. Contiene le info del Form <% first=Request.Form("txtNome")%> <% first=Request.Form(“txtNome”) last =Request.Form(“txtCognome”) Response.Write(“Ciao” & first & last)%> Demo 06

  21. 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

  22. Ripresentare le informazioni digitate • <INPUT • TYPE=“TEXT” • NAME=“txtNome” VALUE=<%=Request.QueryString(“txtNome”)%> • > Demo 07

  23. <FORM action=“NomeRisorsa” METHOD=“POST” runat”server”> <INPUT TYPE=“Text” ID=“txtNome” runat=“server”> <INPUT TYPE=“Text” ID=“txtCognome” runat=“server”> <INPUT TYPE=“Submit”> • </FORM> • I controlli mantengono lo stato

  24. Recupero valori digitati in automatico • Poi aggiungiamo il codice per contare

  25. Oggetti programmabili • Attributo runat=“server” • Mantengono lo stato delle info • Generano HTML per il client • Espongono • Proprietà • Metodi • Scatenano eventi

  26. <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")

  27. <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

  28. 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>

  29. I controlli server mantengono le proprietà impostate fra round-trip • Tramite un campo hidden • __VIEWSTATE • Pro • Meno plumbing • Meno roundtrip verso i dati • Contro • __VIEWSTATE occupa banda • E’ disabilitabile

  30. 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è ?

  31. 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à

  32. <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

  33. <asp:TextBox ... • Strongly-typed • BackColor=“red” • <asp:ListBox ... • Mantenere lo stato significa anche riposizionare la combo-box • Si possono aggiungere elementi • Reflector (listbox.rendercontents)

  34. Per chi arriva da ASP 3.0, PHP o altri ambienti di scripting server-side • Più vicino a VB 6.0 • Label per i testi “fissi” • TextBox e compagni per l’input

  35. 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

  36. 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

  37. Code-behindfile Parsing Generazione ASPX File ASPX Engine Page Class ClassFilesuDisco Request Request CreazioneIstanza Response Response Istanza, Esecuzione e Rendering

  38. 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#; 

  39. 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

  40. Page Events • Page_Init • Page_Load • Page_Unload • La routine di evento riceve gli argomenti .NET

  41. Evento Load • Riempire una ListBox • Occhio al POST • Aggiunge sempre elementi • Perchè la listbox mantiene il suo stato

  42. If Request.ServerVariables(“HTTP_METHOD”) diventa • If Page.IsPostBack • Proprietà della classe Page • True se POST • False se GET

  43. Evento Load • Riempire una ListBox solo in Get • I controlli mantengono lo stato

  44. 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

  45. 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

  46. 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

  47. 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

More Related