Visual Basic.NET: le componenti Web Form e la realizzazione di un applicazione Web Prof. Mauro Giacomini A.A

Documenti analoghi
Sistemi Informativi e Telemedicina Anno Accademico Prof. Mauro Giacomini

Master in Web Design e Programmatore Web

Introduzione a ASP.NET

Modulo o Form in Html

PAGINE ASP.NET. Una pagina ASP.NET inizia con la direttiva Page per la dichiarazione che identifica il linguaggio di implementazione scelto

ASP.NET. (Seminario introduttivo)

Gli XML Web Service. Prof. Mauro Giacomini. Complementi di Informatica Medica 2008/2009 1

Introduzione a ASP.NET

Sistemi informativi e Telemedicina Anno Accademico Prof. Mauro Giacomini

4. I moduli in Access 2000/2003

ASP.NET: archiettura. Architettura del framework.net

D B M G Il linguaggio HTML

CODE MODEL - Modalità di scrittura del codice

@2011 Politecnico di Torino 1

CAPITOLO 10 - TECNOLOGIA ASP.NET - WEB FORM

Applicazioni pratiche con ASP.Net 2.0 Lezione n. 1

Prof. Pagani corrado PROGRAMMAZIONE WEB ASP.NET

Javascript. - Corso Web Design - Media Dream Academy. Stefano Gaborin

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

28/02/2014 Copyright V. Moriggia

La tecnologia ASP.NET e i database

Corso Analista Programmatore Microsoft Corso Online Analista Programmatore Microsoft

MANUALE UTENTE. Portale Web Scambio sul posto GSE IMPRESE DI VENDITA. stato documento draft approvato consegnato

Le L z e ione n e d i d V isu s a u l B asi s c Prof.ssa Paola Goi 1

Raccolta e memorizzazione dei dati immessi nei moduli dai visitatori

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

MANUALE MODULO WIDGET EVENT TRACKING LICENZA SaaS

Raccolta di tutorial Python #1: basi e Tkinter dal sito francescomilanese.com SOMMARIO

Il tag form indica l'inizio della costruzione di un modulo. Necessita del tag di chiusura

TITULUS WEB SERVICES

VBA Principali Comandi

Documento di Analisi. Mockup

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

Approfondimenti. Il controllo di SQL Injection nelle pagine ASP e ASP.NET. U.A. 5 - Database in rete con le pagine ASP e ASP.

Siti interattivi e dinamici. in poche pagine

Elaborazione dati contabili Office Automation Consulenza aziendale

MS Access: Tutorial Tabelle, Relazioni

ACCESSO ALLA POSTA ELETTRONICA TRAMITE OUTLOOK WEB ACCESS

Windows. La prima realizzazione di un ambiente grafico si deve alla Apple (1984) per il suo Macintosh. La gestione dei file conserva la logica del DOS

C3 IL DBMS MICROSOFT ACCESS

WINDOWS TERMINAL SERVER PER L ACCESSO REMOTO AL SISTEMA DI PROTOCOLLO INFORMATICO

La Back Office Console consente di costruire lo scheletro degli schema.

CORSO ACCESS PARTE IV

Indice. Introduzione PARTE PRIMA PRELUDIO: SERVIZIO CON SORRISO 1

Programmazione web lato client con JavaScript. Marco Camurri 1

3.3.6 Gli operatori Le funzioni di accesso al tipo Le strutture di controllo Le funzioni

Opzioni contenitore Prodotti

Tecnologie di Sviluppo per il Web

OBIETTIVI MINIMI Anno scolastico TIC-TIT. 1. Foglio elettronico: funzioni fondamentali (Excel)

MS Access Un DBMS relazionale per Windows?

Tecnologie di Sviluppo per il Web

Manuale Utente CMMG Corso Medici Medicina Generale

FASI DA ESEGUIRE ON-LINE

Guida per l amministratore

Indice. Introduzione PARTE PRIMA FONDAMENTI 1

Creazione delle custom property e classi documentali di Emanuele Mattei (emanuele.mattei[at] .it)

Sistemi Mobili e Wireless Android - Risorse

Si accede alla piattaforma digitando nel browser l indirizzo: dopo di chè si apre la seguente pagina,

Il Manuale di KXSLDbg. Keith Isdale Traduzione del documento: Samuele Kaplun Traduzione del documento: Simone Solinas

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

2011 Politecnico di Torino 1

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

Il linguaggio PHP. Elementi base

Valori Alfanumerici. Informatica di Base -- R.Gaeta 1

FASI DA ESEGUIRE ON-LINE

Regione Puglia. Area politiche per lo Sviluppo Economico, il Lavoro e l Innovazione. Servizio Competitività dei Sistemi Produttivi

Struttura di un applicazione Instant Developer

10 Creare. collegamenti ipertestuali

Sommario INTRODUZIONE... 11

VISUAL BASIC FOR APPLICATION

Scuola Secondaria di I grado Anagrafe Nazionale degli Studenti Avvio a.s. 2017/2018

Programmazione con il linguaggio LibreOffice Basic

SECONDA FASE: Compilazione della candidatura telematica

Piattaforma GeFO SISMA Illustrazione del Modulo «Anagrafe degli Esecutori»

19. LA PROGRAMMAZIONE LATO SERVER

Algoritmo per l ordinamento di un array

PORTALE FORNITORI ISTRUZIONI DI COMPILAZIONE FORNITORE

Plugin Gestione Circolari Sviluppato da Scimone Ignazio

Linguaggi di Programmazione

Argomenti Corso SAP Online ABAP Completo

Regione Puglia. Area politiche per lo Sviluppo Economico, il Lavoro e l Innovazione. Servizio Politiche per il Lavoro

testo Saveris Web Access Software Istruzioni per l'uso

Programmazione client-side: JavaScript

Tecnologie e Programmazione Web

IIS (Internet Information Services)

GUIDA STUDENTE ALL USO DELLA PIATTAFORMA EXCHANGE E-LEARNING - Lotus Quickr

EdilConnect. Cremona, 30 maggio 2017

FASI DA ESEGUIRE ON-LINE

Plus srl :: :: :: Via Morgagni, 4/A Verona :: Tel :: Fax

Infor LN [GUIDA INFOR LN] [GUIDA INFOR LN] Baltur S.p.A. Rev /2013. Guida all utilizzo del Gestionale Infor LN per le Agenzie Baltur

SQL Server Architettura Client-Server. SQL Server Introduzione all uso di SQL Server Dutto Riccardo.

Spiegazioni esercizio Gestione Tabella con PHP e MySQL

MULTIENTE QRBILA QUERY & REPORTING BILANCIO

ESTRATTO CONTO INTEGRATO CASELLARIO CENTRALE DELLE POSIZIONI PREVIDENZIALI ATTIVE ISTRUZIONI PER L USO DEI SERVIZI CIPAG

Manuale EacqCE_Daemon. Versione manuale Copyright 2011 MMS Srl. Manuale EacqCE_Daemon Pagina 1

AWN. Manuale utente Web Mail. Rev AWN ArchiWorld Network. Pag. 1 / 49. v Manuale utente della Web Mail

INTRODUZIONE AD ASP.NET

A. Veneziani - Classi IV A e IV B - Classe stack dotata di interfaccia grafica

INTRODUZIONE INTERFACCIA UTENTE SCENARIO D INTEGRAZIONE CON L ANAGRAFE REGIONALE FILTRI DI RICERCA MINIMI RICHIESTI...

Web applications con. breve introduzione. 23/10/12 Davide Zedda ITC Levi

Transcript:

Visual Basic.NET: le componenti Web Form e la realizzazione di un applicazione Web Prof. Mauro Giacomini A.A. 2008-2009

Le WebForm Consentono la realizzazione di interi progetti web-oriented in puro HTML che sono eseguibili su tutti i browser La programmazione delle WebForm avviene con un qualsiasi linguaggio supportato dal CLR Progettazione dell interfaccia visuale a oggetti Separazione del codice (gestione eventi) dalla presentazione (invece in nelle versioni precedenti convivevano nello stesso documento) Gestione dello stato della pagina (ovvero registrazione delle scelte svolte da ogni utente che accede alla pagina Web) Integrate con il modello ad eventi di Windows sia per il lato server sia per il lato client

Creazione di una WebForm Sulla WebForm si lavora con una solita form popolata dagli oggetti tipici delle interfacce VB con il solito drag and drop (o meglio con una pianificazione a tabella della pagina) Estensione.aspx propria della tecnologia ASP.NET Distinzione dei componenti Lato server Lato client Separazione della parte in HTML (interfaccia utente estensione.aspx) dalla logica applicativa (scritta in VB.NET estensione.vb o in C#, estensione.cs )

WebForm Designer Foglio bianco che raccoglie le compnenti dal toolbox di tipo: Tipo WebForm Tipo Data Tipo Components HTML Altre possibili componenti se installate ad hoc Usuale impostazione delle proprietà degli oggetti

Componenti lato server Producono i diversi tipi di output visualizzabile sia sui diversi dispositivi sia sui browser Due insiemi di componenti lato server Controlli HTML Controlli Web Generano le pagine HTML dell applicazione Preservano lo stato della sessione Espongono gli eventi necessari alla gestione lato client

Componenti HTML Namespace: System.Web.UI.HtmlControls Attivati dalla direttiva runat= server Es. istanza di HtmlInputText chiamata text1 <input type = text runat = server id = text1 value = ciao >

Gerar chia della classe HtmlC ontrol s

Tag vs component i

Componenti Web Namespace: System.Web.UI.WebControls Sostanzialmente identici ai controlli della form di VB delle precedenti versioni Sfruttano la tecnologia della piattaforma di ASP.NET Componenti complessi es: Calendario Crystal Report Viewer Autoadattamento allo schermo con il browser Data-bound capability, sono tutti associabili a una sorgente di dati (inizializzata e connessa) Direttiva runat = server

Gerarchia componenti Web

Elenco componenti (1) Label (testo non modificabile dal client che legge la pagina) TextBox Testo modificabile (direttamente dal client) e data-bound Modalità single-line, multi-line, password CheckBox (gestione sì/no) RadioButton (gestione sì/no) mutuamente esclusiva DropDownList (lista di scelta apribile per selezione singola) ListBox (elenco di voci selezionabili anche a gruppi) CheckBoxList RadioButtonList

Elenco controlli (2) Button Invia al server dati immessi dal client Definizione di eventi Link buttom (simile al button, ma con hyperlink) Image button HyperLink Imagedisplay Panel (raggruppa componenti)

Elenco controlli (3) Table (contiene strutture tabellari in associazione con TableRow e TableCell) Calendar (visualizzazione di calendario perpetuo) Repeater (controllo list-bound connesso a una sorgente di dati che è visualizzata con controlli personalizzati con un template HTML) DataList (simile al precedente con diverso metodo di personalizzare il layout) DataGrid (connessione ai dati e presentazione in tabella con possibilità di modifiche direttamente sul DB) AdRotator (visualizza a banner informazioni in XML)

Varie Commenti - sintassi <%-- codice da commentare --%> Generazione applicazione Web scegliere progetto ASP.NET Web Application due facce: design e HTML

Proprietà del progetto (1) Raccolte in una vista ad albero Due macrocategorie: Common e Configuration Common properties General (nome, modulo di start, root namespace) Build (proprietà di compilazione) Imports (classi utilizzate già presenti quelle indispensabili) Strong name (meccanismi di protezione del codice per aggiornamenti successivi) Designer default (caratteristiche dell ambiente di sviluppo tra cui il linguaggio di scripting nel nostro caso VB)

Proprietà del progetto (2) Configuration properties: dedicate alla ottimizzazione del debug, compilazione e rilascio del progetto Optimization: uguale a quella delle versioni precedenti Build e Deployment: indicano la directory dove rilascare l eseguibile finale, inserimento di warning all interno del codice, mantenimento delle informazioni di debug

Proprietà del documento HTML General browser di default, linguaggi lato server e lato client Colors colori di: sfondo, link, link visitati, Margin and Keywords parole chiavi per i motori di ricerca

Global.asax Naturale estensione del Global.asa delle applicazioni ASP Definire alcuni parametri globali e attivare alcuni eventi come la creazione di una nuova sessione o chiusura dell intera applicazione Struttura tipo: Public Class Global Inherits System.Web.HTTPApplication Sub Application_BeginRequest (ByVal sender as object, Byval e as EventArgs) End Sub End Class

Possibili contenuti di Global.asax

Web.config In formato XML elemento principale con tag <configuration> due sottogruppi: dichiarazioni ed impostazioni nelle dichiarazioni è possibile ad esempio inserire le impostazioni per le stringhe di connessione ai DB indicazione dei compliatori e degli assemblatori indicazione dei namespace

Web.config: Esempio <configuration> <system.web> <compilation defaultlanguage= VB debug= true > <compilers> <compiler language= VB;VBScript extension=.cls type = Microsoft.VB.VBCodeProvider,System /> </compliers> <assembiles> <add assembly = ADODB /> </assemblies> <namespaces> <add namespeces = System.Web /> <add namespeces = System.Web.UI /> </namespaces> </compilation> </system.web> </configuration>

Modello degli eventi Separazione fra dove si verifica l evento (client) e dove viene gestito (server) Le informazioni relative all evento sono catturate sul client e inviate al server con il protocollo HTTP La gestione delle Web form interpreta il messaggio e invoca la procedura connessa Questi meccanismi sono trasparenti nella programmazione della programmazione ma con l accorgimento di rispettare alcuni vincoli per evitare la perdita di efficienza del programma

Vincoli sugli eventi Numero di controlli limitati non supportati eventi frequenti es onmouseover versioni speciali di eventi quali onchange Gestione differita degli eventi controlli server attivati solo da un clic su un pulsante catturati dal controllo sul client e inviati tutti assieme gestione di tutti gli eventi di modifica senza ordine prima e dopo la procedure di gestione del tasto premuto per obbligare l invio di un evento di modifica prima degli altri porre AutoPostBack a True Distribuzione degli eventi controlli complessi (DataList e DataGrid) intercettano gli eventi dei controlli contenuti e generano un evento generico ItemCommand con parametri

Procedure d evento <asp:button id= btn onclick= Convalida runat= server /> Associa all evento Click la procedura Convalida Due parametri associati all evento Oggetto che ha generato l evento Oggetto con informazioni specifiche sull evento (EventArgs) ad esempio ImageButton genera ImageClickEventArgs con coordinate Sub Convalida (src As Object, e As EventArgs)

Eventi delle Web Form Page_Init (inizializzazione delle variabili, si crea un istanza lato server dell oggetto Page) Page_Load (ogni volta che viene caricata dal runtime di ASP.NET a causa di una richiesta del browser, si può cambiare il contenuto dei controlli) Page_Unload (ultimo evento di una pagina caricamento di altra pagina, attività di registrazione in un file di log, chiusura di file e database, distruzione dell oggetto Page)

Esempi Sub Page_Load (src as Object, e as EventArgs) txtname.text = Pippo End Sub Sempre Pippo nella Text ad ogni refresh Sub Page_Load (src as Object, e as EventArgs) if not Page.IsPostBack Then txtname.text = Pippo end if End Sub Solo la prima volta Pippo nella Text

Validazione dell input Lato server Più sicura (si può fare sempre) Più lenta (necessita di mandare tutti i dati al server) Lato client Più veloce Incerta (l utente può aver disabilitato gli script) Controlli di ASP.NET automaticamente scelgono, se possibile lato client altrimenti lato server

Sintassi <asp:controllo_validazione id= controllo_validazione runat= server ControlToValidate = id_controllo ErrorMessage = messaggio d errore Display = modalità di visualizzazione > </asp:controllo_validazione>

Modalità di Visualizzazione Static: compare quando si verifica l errore, ma permane anche se l errore è corretto fino al successivo submit Dynamic: compare in presenza di errori e scompare se si risolve il problema anche senza un submit None: non visualizza il messaggio, solo lo registra nel ValidationSummary Si possono applicare più controlli di validazione a uno stesso oggetto, basta indicare tutte le volte che necessario il nome dell oggetto da controllare nella proprietà ControlToValidate.

RequiredFieldValidator Controllo di immissione obbligatoria Esempio <asp:textbox id= txtnome runat= server /> <asp:requiredfieldvalidator id= ConvalidatxtNome runat= server ControlToValidate= txtnome ErrorMessage= Inserisci il tuo nome Display= dynamic > </asp:requiredfieldvalidator>

RangeValidator Controllo del range del valore inserito (se vuoto, valido) Da esplicitare il tipo di variabile Tipi possibili: Integer, Double, Currency, Date, String Esempio <asp:textbox id= txteta runat= server /> <asp:rangevalidator id= ConvalidatxtEta runat= server ControlToValidate= txteta Type= Integer MinimumValue = 18 MaximumValue = 50 ErrorMessage= E richiesta un età fra i 18 e i 50 anni Display= dynamic > </asp:rangevalidator>

CompareValidator Confronto con valore predefinito (ValueToCompare) o valore di un altro controllo (ControlToCompare), con tipo Da indicare l operatore (Operator), possibili operatori: Equal, NotEqual, GreaterThan, GreaterThanEqual, LessThan, LessThanEqual, DataTypeCheck Esempio <asp:textbox id= txteta runat= server /> <asp:comparevalidator id= ConvalidatxtEta runat= server ControlToValidate= txteta Type= Integer ValueToCompare = 0 Operator = GreaterThanEqual ErrorMessage= Inserire un valore positivo Display= dynamic > </asp:comparevalidator>

RegularExpressionValidator Controllo su uno schema predefinito del dato di ingresso (carta di credito, email, codicefiscale, ecc ) Proprietà specifica: ValidationExpression Caratteri da utilizzare (vedi pagina successiva) Esempio <asp:textbox id= txtemail runat= server /> <asp:regularexpressionvalidator id= ConvalidatxtEmail runat= server ControlToValidate= txtemail ValidationExpression= [\w.]+@[\w]+.(it com org net) ErrorMessage= Inserire un indirizzo di email corretto Display= dynamic > </asp:comparevalidator>

Caratteri per espressioni regolari (1) Consente di specificare valori alternativi * Specifica 0 o più occorrenze dell elemento che lo precede es ba* significa b, ba, baa, baaa, baaaa, + Specifica 1 o più occorrenze dell elemento che lo precede es ba+ significa ba, baa, baaa, baaaa,? Specifica 0 o 1 occorrenze dell elemento che lo precede es ba? significa b o ba [ ] Consentono di specificare valori alternativi [aeiou] indica una qualsiasi vocale

Caratteri per espressioni regolari (2) \w Indica un qualsiasi carattere alfanumerico compreso _ \s Indica un qualsiasi carattere di spaziatura \d Indica un qualsiasi carattere numerico {} Consente di indicare un numero preciso di occorrenze o di delimitarne il numero massimo o minimo. Es. a{3} indica aaa; a{3,} indica le stringhe di almeno tre a; a{,3} indica da 0 a tre caratteri a; a{3,5} indica aaa, aaaa, aaaaa. () Consente di individuare sottostringhe Es: \w.+(exe com bat) indica tutti i possibili eseguibili DOS

CustomValidator Consente di definire i vincoli da verificare perché un input utente sia valido specificando se la convalida vada fatta sul client (ClientValidationFunction) o sul server (OnServerValidate). Sul server la validazione inizia con l evento ServerValidate a cui è passato il parametro ServerValidateEventArgs la cui proprietà Value contiene il valore inserito nel controllo indicato. Il risultato del processo di validazione viene restituito nella proprietà IsValid dello stesso parametro.

CustomValidatorEsempio <html> <head> <script language= VB runat= server > Sub Convalida (src As Object, e As ServerValidateEventArgs) If Page.IsValid Then Msg.Text = Ok! End If End Sub Sub NumeroPari (src as Object, e as ServerValidateEventArgs) Dim num as Integer num = Integer.Parse(e.Value) e.isvalid = ((num mod 2)=0) End Sub </script> </head>

Corpo <body> <form> <asp:textbox id= txtnumero runat= server /> <asp:customvalidator id= ConvalidatxtNumero ControlToValidate = txtnumero onservervalidate = NumeroPari Display= Static ErrorMessage= Inserisci un numero pari runat = server /> <br> <asp:label id= Msg runat= server /> <br> <asp:button Text= Convalida onclick= Convalida runat= server /> </form> </body> </html>

Validation Summary (1) Se il controllo di validazione intercetta un errore, questo viene visualizzato al momento di esecuzione del controllo con modalità indicata dalla proprietà Display. Si possono visualizzare tutti questi eventuali messaggi in un unico punto della pagina con il controllo ValidationSummary La proprietà IsValid dell oggetto Page è True quando tutti i controlli di validazione sono stati soddisfatti

Validation Summary (2) Se si mette un ValidationSummary sulla Web Form, quando la proprietà IsValid dell oggetto Page è False, vengono automaticamente interrogati tutti i controlli di validazione e gli eventuali messaggi di errore sono raccolti e visualizzati nel controllo ValidationSummary. Con il ValidationSummary i messaggi non sono visualizzati direttamente, a meno che non siano specificati tra i tag di apertura e chiusa.

ValidationSummary: Proprietà DisplayMode: Indica come si visualizzano i messaggi di errore nella lista. Valori: BulletList, List, SingleParagraph HeaderText: Intestazione della lista dei messaggi di errore. ShowSummary: Indica se visualizzare o meno la lista dei messaggi sulla pagina, valore predefinito True. ShowMessageBox: Indica se la lista dei messaggi deve essere visualizzata in una messagebox, valore predefinito False. EnableClientScript: Se posta a False la validazione client side è inibita, togliendo effetto alle impostazioni di ShowMessageBox.