| Indice
Introduzione
ASP .NET: GUIDA ESSENZIALE
Evoluzione o rivoluzione?
Cominciare con ASP .NET
Installazione di .NET
Configurazione degli esempi
Esecuzione degli esempi
Visual Studio .NET 2003
Creazione di applicazioni ASP .NET in Visual Studio .NET 2003
Differenze tra ASP .NET e ASP
Perche' una nuova versione?
Benefici di ASP .NET
Scrivere pagine ASP .NET
Creare il sito web
Pagina d'esempio
Riepilogo
IL FRAMEWORK .NET
Che cos'e' .NET
Componenti di .NET
Visione di .NET
Problemi relativi a Windows DNA
Perche' .NET e' necessario
Common Language Runtime
Servizi CLR
Funzionalita' comuni
Utilizzo degli oggetti
Namespace
Un sistema di tipi comune
Assembly: controllo delle versioni e protezione del codice
CLR e COM
Intermediate Language
Domini delle applicazioni
Il framework .NET in dettaglio
Tecnologie di sviluppo delle applicazioni
Librerie delle classi
Librerie delle classi di base
Obiettivi di progettazione in ASP .NET
Rimozione della dipendenza dai motori di script
Prestazioni
Un'evoluzione di ASP
Semplicita' di distribuzione
Potente supporto degli strumenti
Configurazione piu' semplice e piu' flessibile
Un progetto aperto
Il linguaggio non e' (molto) importante
Meno codice, piu' chiaro e gestibile
Un modello di autenticazione potente
Gli errori sono una realta' comune
Riepilogo
I LINGUAGGI .NET
I linguaggi forniti
Il futuro di VBScript
Visual Studio o Blocco note?
Visual Basic .NET
Funzionalita' orientate agli oggetti
Modifiche del linguaggio
C#
Classi
Metodi
Proprieta'
Costruttori
Distruttori
Ereditarieta'
Interfacce
Riferimenti
Gestione delle eccezioni
Documentazione XML
Codice non protetto
Sovraccarico degli operatori
JScript .NET
C++
Visual J# .NET
Altri linguaggi supportati
I compilatori dei linguaggi .NET
I vantaggi di un CLR (Common Language Runtime)
API comuni
Tipi comuni
Ereditarieta' tra i linguaggi
Debugging e creazione di profili tra i linguaggi
Problemi relativi alle prestazioni
Linguaggi
Codice Late-Bound
Esempi comuni
Dichiarazione delle variabili
Funzioni e procedure
Differenze nella sintassi
Cicli
Conversione dei tipi
Riepilogo
SCRIVERE PAGINE ASP .NET
Codifica dei problemi
Codifica con il vecchio metodo
Codifica in pagine ASP .NET
Identificazione di postback
La classe Page
Oggetto HttpRequest
Oggetto HttpResponse
Passaggi per l'elaborazione di una pagina
Istruzioni di pagina
Code-Behind
Code-behind con gli strumenti di sviluppo
Utilizzo di code-behind
Ereditarieta' di un file di classe di code-behind in una pagina ASP .NET
Ereditarieta' di un file di classe di code-behind in una pagina ASP .NET
Memorizzazione di pagine cache
Esempio di memorizzazione di dati inviati nella cache
Memorizzazione nella cache mediante un browser
Smart Navigation
Controlli utente
Approcci alla creazione di controlli utente
Proprieta' dei controlli utente
Eventi dei controlli utente
Code-behind con i controlli utente
Memorizzazione parziale di una pagina nella cache con controlli utente
Riepilogo
CONTROLLI SERVER E CONVALIDA
Introduzione
Descrizione dei controlli server
Il nuovo modello Page di ASP .NET
Cenni sull'applicazione di esempio
Campo di utilizzo dei controlli server
Controlli disponibili in ASP .NET
Controlli server HTML
Classi di base HtmlControl
Classi HtmlGenericcontrol
Classi di controlli HTML specifiche
Esempi di controlli server HTML
Controlli di convalida di input ASP .NET
Funzioni dei controlli di convalida di input
La Classe BaseValidator
Membri specifici dei controlli di convalida
Utilizzo dei controlli di convalida
Riepilogo
CONTROLLI WEB FORM IN ASP .NET
Controlli web form ASP .NET di base
Importanza di un secondo insieme di controlli
La classe di base WebControl
Classi specifiche di controlli web form
Utilizzo dei controlli web form
Esempi di controlli web form in ASP
Controlli elenco ASP .NET
Classe di base ListControl
Classi specifiche dei controlli elenco
Utilizzo dei controlli elenco ASP
Altri controlli "rich" ASP .NET
Utilizzo dei controlli rich
Utilizzo di un foglio di stile XSL
Riepilogo
CONTROLLI E ASSOCIAZIONE DI DATI
Ottenere i file di esempio
Associazione di dati. I concetti
Tutto e' affidato al server
Visualizzazione dei dati: ASP e ASP .NET a confronto
Sintassi dell'associazione di dati
Associazione di dati a valore singolo
Origini dati per l'associazione a valore singolo
Associazione di dati di valori ripetuti
Semplici esempi di associazione di dati di valori ripetuti
Associazione di dati di valori ripetuti a un oggetto ArrayList
Aggiunta di stili e template
Utilizzo delle proprieta' di stile
Aggiunta dello stile a un controllo DataGrid
Utilizzo del template con controlli associati ai dati
Gestione degli eventi dell'associazione dati
Ordinamento e filtro delle righe in un controllo DataGrid
Paging automatico in un controllo DataGrid
Modifica dei dati con controlli associati ai dati
Modifica dei dati con un controllo DataGrid
Selezione e modifica dei dati con un controllo DataList
Riepilogo
INTRODUZIONE ALLA GESTIONE DEI DATI IN .NET
Depositi di dati e accesso ai dati
Transizione verso un ambiente distribuito
XML: un formato del futuro per i dati?
Un'altra tecnologia per l'accesso ai dati?
.NET significa dati disconnessi
.NET significa dati XML
.NET significa codice gestibile
.NET significa un nuovo modello di programmazione
Introduzione alla gestione dei dati in .NET
Il namespace System per la gestione dei dati
Importazione dei namespace necessari
Le classi fondamentali di ADO .NET
Confronto tra le tecniche di ADO e di ADO .NET
Le classi Connection
Classi Command
Classi DataAdapter
Classe DataSet
La classe DataTable
La classe DataView
Classi DataReader
Quando e' meglio utilizzare un DataReader e quando un DataSet
Provider di dati relazionali per .NET
Procedure comuni di accesso ai dati in .NET
Come installare e impostare gli esempi sul vostro sistema
ASP .NET con IIS 6.0 e Windows 2003
Utilizzo di un oggetto DataReader
Un esempio di utilizzo di DataSet con tabelle multiple
Un controllo utente che restituisce un oggetto DataSet
Introduzione a XML in ambiente .NET
La classe XPathNavigator
La classe XmlTextWriter
Classi XmlReader
La classe XmlValidatingReader
La classe XslTransform
Procedimenti comuni su XML in ambiente .NET
Accesso a documenti XML tramite DOM
Accesso a documenti XML tramite XPathNavigator
Ricerca in un documento XML
Un esempio per l'oggetto XML TextWriter
Un esempio di utilizzo dell'oggetto XML TextReader
Un esempio di utilizzo dell'oggetto XSL Transform
Scelta della metodologia di memorizzazione dei dati
Accesso e manipolazione sono gli aspetti chiave
Un nuovo approccio alle query
Il futuro e' nei protocolli di trasporto
.NET e' ottima soluzione
Riepilogo
LAVORARE CON DATI RELAZIONALI
File di esempio
Accesso a dati complessi
Accesso a dati complessi con l'oggetto DataReader
Accesso a dati complessi con un oggetto DataSet
Accesso e visualizzazione di dati nidificati
Lavorare con l'oggetto DataTable
Codice per creare e riempire un nuovo oggetto DataTable
Aggiunta di record di dati nella tabella
Aggiunta di una tabella ad un DataSet
Gestione dei vincoli e dei valori di default
Specifica di chiavi primarie e secondarie
Aggiunta, modifica, rimozione e cancellazione di record
Lavorare con eventi dell'oggetto DataTable
Mapping di colonne e tabelle
Ordinamento e filtraggio dei dati
Ordinamento e filtraggio con un oggetto DataTable
Ordinamento e filtraggio in un oggetto DataView
Riepilogo
AGGIORNAMENTO DELLA SORGENTE DEI DATI RELAZIONALI
Come ottenere i file di esempio
Aggiornamento di dati con un oggetto Command
Utilizzo di un oggetto Command con un controllo SQL
Utilizzo di una stored procedure con un oggetto Command
Aggiornamento delle fonti di dati tramite transazioni
Transazioni di database
Transazioni basate sulla connessione
Aggiornamento di dati tramite un oggetto DataSet
Dettagli interni dell'oggetto DataAdapter
Utilizzo del metodo DataAdapter.Update
Aggiornamento di un DataSet utilizzando stored procedure
Eventi legati al metodo Update dell'oggetto DataAdapter
Gestione degli aggiornamenti di dati concorrenti
Come evitare errori legati alla concorrenza
Un esempio di errore di concorrenza
Aggiornamento delle sole colonne modificate
Intercettazione di errori con l'evento RowUpdated
Individuare gli errori dopo aver completato un aggiornamento
Riepilogo
GESTIONE DI DATI XML IN .NET
Come ottenere i file di esempio
XML e l'oggetto DataSet
Metodi dell'oggetto DataSet basati su XML
Scrittura di dati da un DataSet a un file XML
Trasferimento in un DataSet dei dati contenuti in un file XML
Come ottenere una stringa XML a partire da un DataSet
XML nidificato e dati correlati in un DataSet
Come lavorare con l'oggetto XmlDataDocument
Sincronizzazione tra XMLDataDocument e DataSet
Lettura di dati XML direttamente da SQL Server
Convalida di documenti XML
L'oggetto XmlValidatingReader
Creazione e modifica di documenti XML
Utilizzo di trasformazioni XSL e XSLT
Un esempio di trasformazione XSL
Caricare i fogli di stile e gli schermi con XmlResolver
Riepilogo
APPLICAZIONI WEB E GLOBAL.ASAX
Root del sito e applicazioni IIS
Creazione delle directory virtuali e delle applicazioni IIS
Contrassegno di una cartella come applicazione
Windows Server 2003
Applicazioni web ASP .NET
Registrazione dei componenti
Codice dell'applicazione: global.asax
Gestione dello stato dell'applicazione
Session: gestione dello stato utente
Applicazione: gestione dello stato di Application
Cache: gestione dello stato temporaneo
Eventi dell'applicazione
Sintassi dell'evento e prototipi
Eventi supportati
Esempi di eventi
Argomenti avanzati
Variabili statiche
Uso di una classe di base personalizzata per global.asax
Eventi asincroni dell'applicazione
Riepilogo
CONFIGURAZIONE
Configurazione di ASP
Configurazione di ASP .NET
Rilevazione delle modifiche dei file di configurazione
Formato del file di configurazione
Impostazioni di configurazione comuni
Impostazioni generali di configurazione
Configurazione di pagina
Tracing
Tracing delle istruzioni nelle pagine ASP tradizionali
Tracing nell'ambiente ASP .NET
Come visualizzare l'output del tracing
Impostazioni della configurazione del tracing
Errori personalizzati
Modalita' d'errore
Come mostrare sempre le pagine d'errore ASP .NET
Pagine d'errore personalizzate
Come configurare IIS e ASP .NET per supportare le stesse pagine d'errore
Autenticazione e autorizzazione
Autenticazione
Autenticazione con Passport
Autorizzazione (< authorization >)
Web services
Internazionalizzazione e codifica dei caratteri
Opzioni di compilazione
Come controllare l'identita' di esecuzione
Estensione di ASP .NET con gli handler HTTP
Estensione di ASP .NET con i moduli HTTP
Configurazione del processo di lavoro di ASP .NET
Chiave del sistema
Argomenti avanzati
Come specificare l'elemento location
Impostazione del percorso
Come bloccare le impostazioni di configurazione
Gestore di configurazione personalizzato
Riepilogo
APPLICAZIONI ASP .NET E SICUREZZA
Panoramica delle caratteristiche di protezione di WINDOWS 2000 e IIS
Criteri di protezione
Autenticazione in Windows
Autenticazione in IIS
Autorizzazione in Windows
Autorizzazione in IIS
Panoramica della protezione in ASP .NET
Processo di protezione di ASP .NET
Rappresentazione di ASP.NET
Windows Server 2003 e IIS 6.0
Opzioni di protezione in ASP .NET
Protezione e personalizzazione tramite programma
Panoramica sui ruoli e sull'identita'
Come ottenere l'identita' e il ruolo dell'utente
Esempi di protezione ASP .NET
Come ottenere i file di esempio
Impostazione degli esempi nel server
Esempio di autenticazione Windows
Esempi di autenticazione basata su form
Esempio di personalizzazione
L'account di processo di ASP .NET e livelli di trust
Specificare l'account di processo
Specificare il livello di trust
Riepilogo
USO DELLE COLLEZIONI E DELLE LISTE
Uso delle collezioni e delle liste
Collezioni di interfacce
Interfacce fondamentali System.Collections
IEnumerable e IEnumerator
ICollection e IList
Ordinamento della lista: IComparer e IComparable
ICollection
Uso degli oggetti Dictionary
System.Collections.Specialized
Classe StringCollection
Classe StringDictionary
Collezioni fortemente tipizzate
Definire il tipo personalizzato
Creare la classe Collection
Uso della classe collection
Classi DictionaryBase e CollectionBase
Enumeratori disponibili
Riepilogo
UTILIZZO DI ALTRE CLASSI DI BASE
Utilizzo delle directory e dei file
Panoramica sulle classi
DirectoryInfo e Directory
File e FileInfo
Attivita' delle directory e dei file comuni
Espressioni regolari
Criteri di ricerca
Classi delle espressioni regolari
Riepilogo
COMPONENTI .NET
Scrittura di oggetti business
Creazione dell'oggetto
Compilazione delle classi
Verifica della classe
Ereditarieta' tra ai linguaggi
Esempio di ereditarieta' tra i linguaggi
Transazioni in .NET
Componenti serviti
Distribuzione dei componenti
Cosa sono gli assembly?
Assembly e controllo delle versioni
Manifesto dell'assembly
Esecuzione affiancata
Riepilogo
COSTRUZIONE DI CONTROLLI SERVER ASP .NET
Scrittura di un semplice controllo
Creazione di un controllo in C#
Sviluppo di controlli in Visual Basic
Composizione della pagina in piu' fasi
Controlli compositi
Scrittura di un controllo TextBox
L'interfaccia IPostBackDataHandler
Un controllo che genera eventi
Utilizzo di ViewState
Tipi e viewstate
Ancora sulle proprieta' oggetto e sul modello di interfaccia utente
DataBind/OnDataBinding
Miscellanea
Accesso a oggetti intrinseci ASP .NET
Scrittura di controlli adattivi
Attributi di un controllo
Costruttori di controlli personalizzati
Controlli utente
Riepilogo
ESPOSIZIONE DEI SERVIZI WEB
Panoramica sui servizi web
Problemi piu' comuni
Specifiche
Costruzione di servizi web ASP .NET
Un semplice servizio web
Codifica dei servizi web ASP .NET
Codice in linea
Codice sottostante
Istruzione WebService
Codice di applicazione
Protocolli
HTTP-GET
HTTP-POST
SOAP
Tipi di dati
Tipi personalizzati
Attributi WebMethod e WebService
WebMethod
L'attributo WebService
Progettazione di servizi web ASP .NET
Sintetici o chiacchieroni?
Informare sullo stato e' utile?
Cache o risposta statica?
Asincrono e sincrono?
Servizi web ASP .NET avanzati
Controllo e forma dell'XML
Modifica della pagina di Help del servizio web
Header SOAP
Riepilogo
UTILIZZO DEI SERVIZI WEB
Ricerca e descrizione di servizi web
Universal Description Discovery and Integration
Web Service Description Language
Creazione di proxy per servizi web
Proxy Fibonacci
Visual Studio .NET
Utilizzo di wsdl.exe
Utilizzo della classe proxy
Controllo del timeout
Impostazione della proprieta' URL
Accesso al servizio web tramite un server proxy
Mantenimento dello stato
Da un sito web a un servizio web: screen scraping
Creazione del documento WSDL
Creazione del proxy di screen scraping
Decisioni riguardanti la progettazione
Eccezioni SOAP
Utilizzo degli header SOAP
Sicurezza e servizi web
Autenticazione e autorizzazione in ambiente ASP .NET
Crittografia HTTPS e certificati client
Argomenti avanzati
Autenticazione e autorizzazione personalizzate
Estensioni SOAP
Riepilogo
CONTROLLI PER DISPOSITIVI MOBILI
Panoramica sul wireless web
WAP
WML
Interoperabilita' dei dispositivi
Un semplice esempio
Consultazione del codice generato
Form di controlli per i dispositivi mobili
Guida di riferimento dei controlli per i dispositivi mobili
< mobile:Label >
< mobile:Link >
< mobile:Image >
< mobile:Command >
< mobile:TextBox >
< mobile:List >
< mobile:SelectionList >
< mobile:ObjectList >
< mobile:PhoneCall >
< mobile:Calendar
< mobile:TextView >
< mobile:TextView >
< mobile:AdRotator >
< mobile:Panel >
Controlli di convalida
Argomenti avanzati
Stili
Utilizzo delle capacita' dei dispositivi
Template
Impaginazione
Riepilogo e possibilita' future
Il futuro del "Mobile Internet"
Il futuro dei controlli per i dispositivi mobili
DEBUGGING, TRACING E GESTIONE DEGLI ERRORI
Tracing
Tracing a livello di pagina
Scrittura delle informazioni di tracing
Tracing a livello di applicazione
Gestione degli errori
Gestione strutturata delle eccezioni
Gestione degli errori in ASP .NET
Notifica agli amministratori della presenza di errori
Debugging
Strumento di debugging dell'SDK
Debugging in Visual Studio .NET
Creazione di profili e prestazioni
Strumentazione
Campionamento
Campionamento personalizzato
Analisi
Riepilogo
MIGRAZIONE E INTEROPERABILITA'
Migrazione, integrazione o riscrittura?
Migrazione
Integrazione
Riscrittura
Non eseguire alcuna operazione
ASP .NET
Operazioni preliminari
Oggetti intrinseci
Modifiche apportate alle pagine
Modifiche apportate al linguaggio
Interoperabilita'
Superamento del limite del codice
Utilizzo di oggetti COM dall'interno di .NET
Utilizzo di componenti .NET dall'interno di COM
Chiamate API
Riepilogo
CASE STUDY: IBUYADVENTURE. NET
Prestazione dell'applicazione
IBuyAdventure .NET (IBE .NET)
Audience che si desidera raggiungere
Scalabilita' - Web Solution Platform
Progettazione per la scalabilita' aziendale
Oggetti business e codici assembly
Oggetto business ProductDB
Codici assembly
Il database IBuyAdventure .NET
Tabella Account
Tabella Orders
Tabella Products
Tabella ShoppingCarts
Interfaccia utente dell'applicazione
Controlli utente di IBuyAdventure .NET
Un solo elemento < form > sul lato-server
Utilizzo di C# per i controlli utente e il codice
Controlli utente speciali: Specials.ascx
Controlli utente dedicati alle categorie: Categories.ascx
Dettagli dei prodotti
Scheda acquisti
Visualizzazione della scheda acquisti e modifica di un ordine
Elaborazione dell'estrazione e protezione
Elaborazione dell'estrazione
Riepilogo
NAMESPACE DI USO PIU' COMUNE
Namespace fondamentali
Namespace .NET relativi ai linguaggi
Namespace relativi alla gestione dei dati
Namespace relativi al debugging e al monitoraggio
Namespace relativi ai servizi applicativi
Namespace relativi a elementi grafici e stampa
Namespace fondamentali relativi alle reti
Namespace relativi ad applicazioni Windows Forms
Namespace fondamentali relativi ad applicazioni web
Namespace relativi ad applicazioni Web Forms
Namespace relativi ad applicazioni di servizi web
I SUGGERIMENTI DI SCOTT GUTHRIE
Gestione del viewstate
Gestione di SessionState
Usate la cache dell'output
Corretto utilizzo dei controlli server
Preferite DataReader e DataSet
Utilizzate le classi TDS SQL per l'accesso ai dati
Utilizzate l'associazione di dati, quando possibile
Utilizzate Option Explicit o Strict in Visual Basic
Utilizzo del binding anticipato ai componenti
Evitare l'utilizzo della modalita' di compatibilita' ASP
Ricordate i nuovi oggetti Request e Response
RIASSUNTO DEI CAMBIAMENTI IN ASP .NET 1.1
Nuovi Namespace
Cambiamenti nel namespace System
Cambiamenti nel namespace System.Data
Cambiamenti nel namespace System.IO
Cambiamenti nel namespace System .Net
Cambiamenti nel namespace System.Web
Cambiamenti delle classi Web Services
RIFERIMENTI UTILI
Siti web ASP.NET e liste discussione
Venditori terze parti di componenti ASP
Siti che ospitano ASP .NET |