| Indice
Introduzione
Argomenti trattati in questo libro
A chi si rivolge questo libro
Requisiti necessari per l'utilizzo di questo libro
Convenzioni
Supporto clienti
Come scaricare il codice di esempio del libro
Errori
Supporto tramite posta elettronica
p2p.wrox.com
Capitolo 1 - .NET in pratica
La visione e gli obiettivi di .NET
Le sfide del momento
.NET e le sfide del momento
Semplificare lo sviluppo delle applicazioni
Semplificare la distribuzione delle applicazioni
XML ovunque
Accesso ai dati universale
Servizi web: collaborazione su Internet
I blocchi costitutivi di .NET
Framework .NET
.NET Enterprise Servers
I vantaggi di .NET Enterprise Servers per aziende abilitate al Web
Servizi dei blocchi costitutivi di .NET
HailStorm
Visual Studio .NET
Le applicazioni .NET: una panoramica
Applicazioni Windows Forms
Comandi Windows Forms
Applicazioni Windows Service
Applicazioni web ASP .NET
Un ambiente di sviluppo .NET compilato
Potenti comandi server
Memorizzazione automatica nella cache
Servizi di gestione dello stato
Compatibilita' con le precedenti versioni di ASP
Servizi Web
Cosa sono i servizi web
ASP .NET e i servizi web
I servizi web in teoria e in realta'
XML e .NET
Le classi XML di Framework .NET
Le classi XML di Framework .NET e l'API SAX
Vantaggi dell'XML come lingua franca di .NET
Interoperabilita' tra .NET e COM+
Piattaforme concorrenti: .NET ne e' all'altezza?
Perche' scegliere .NET anziche' J2EE?
Riepilogo
Capitolo 2 - Una panoramica di Framework .NET
Framework .NET
CLR
Librerie delle classi
L'evoluzizone di .NET
Il paradiso delle DLL
L'integrazizone dei componenti sostituisce le interfacce
Deployment
Gestione delle risorse
Integrazione dei linguaggi
Libreria delle classi unificata ed estensibile
Gestione delle eccezioni
Windows DNA e' ancora valido in .NET?
Obiettivi di progettazione di Framework .NET
Architettura di Framework .NET
CTS
Sistemi di tipi definiti
Tipi primitivi
Sicurezza dei tipi
Metadati
Cosa contengono i metadati?
Esportazione ed emissione dei metadati
CLS
CLR
Obiettivi di progettazione del CLR
Informazioni generali su CLR
Caricatore delle classi
MSIL
Compilazione da MSIL a codice nativo
Verifica della sicurezza dei tipi mediante il CTS
Stack Walker
Gestione della memoria e garbage collection
Esecuzione della versione e della co-istanza
Codice non gestito
Il framework di classi .NET
Riepilogo
Capitolo 3 - gestione della memoria nel CLR
Dettagli del CLR
Archiviazione dei dati: per riferimento o per valore
Per riferimento e per valore in VB .NET e C#
Per riferimento e per valore in C#
Organizzazione dell'heap gestito
Gestito, non gestito e non sicuro
C#: un esempio non sicuro
C++: gestito e non gestito
Garbage collection
Algoritmo della garbage collection
Finalize
Finalize e pulizia dell'applicazione
Try e Finally
Riferimenti deboli
La classe System. GC
Esempio relativo a SuppressFinalize
Heap di memoria di grandi dimensioni
Riepilogo
Capitolo 4 - L'ambiente runtime
Cos'e' MSIL?
Cos'e' un file PE
CLR
Vantaggi del CLR
Che cos'e' un assembly?
Struttura di un assembly
Considerazioni sulla progettazione di un assembly
Tipi diversi di assembly
Assembly privati
Assembly condivisi
Assembly statici e dinamici
CTS
System.Object, l'elemento principale
Tipi a valore e a riferimento
Metadati
I metadati sono un'evoluzione di IDL?
Attributi
CLS
Integrazione dei linguaggi nella piattaforma .NET
API di reflection
Creazione di assembly dinamici
Versioni
Infrastruttura fornita da Framework .NET
Come avviene il controllo delle versioni degli assembly
Criteri di controllo predefiniti
Criteri di controllo personalizzati
Namespace
Using e namespace
Utilizzo degli alias
Riepilogo
Capitolo 5 - Esecuzione in .NET
Sviluppo di .NET dall'ambiente della console
IL
Programmare in IL
Finestra Disassembly di Visual Studio .NET
Compilazione JIT
Un esempio di compilazione precedente a JIT
Contatori delle prestazioni della compilazione JIT
Sicurezza dei tipi di memoria
PEVerify e garanzia della sicurezza dei tipi
Host runtime
Risalire alla progettazione degli host runtime con DumpBin
Specifiche dell'host runtime
Versione del CLR ed esecuzione affiancata
Client CLR e server CLR ottimizzati a confronto
Ottimizzazione della garbage collection
Domini delle applicazioni: assembly di condivisione e isolamento
Utilizzo dei domini delle applicazioni
Disassembler IL (ildasm.exe)
L'output della console del disassembler IL
Interfaccia utente del disassembler IL
Riepilogo
Capitolo 6 - Classi di sistema
Applicazioni del namespace System
Lo strumento WinCV
Attenzione
Gestione delle stringhe
System.String
StringBuilder
Classi di collection
Panoramica sulle interfacce presenti nel framework di collection
Elenco di classi di collection
Debugging e registrazione
Debug e Trace
Classe EventLog
Gestione dei file e controllo del file system
Informazioni generali sulle classi
File e directory
StreamReader e StreamWriter
FileStream
FileSystemWatcher
Accesso al registro di sistema
Connessione a Internet
Gestione delle eccezioni
Vantaggi delle gestione delle eccezioni in .NET
Istruzioni da seguire per scrivere un gestore delle eccezioni
Derivazione delle classi di eccezioni definite dagli utenti
Operazioni correlate alla data e all'ora
Manipolazione degli array
Espressioni regolari
Operazioni matematiche
Riepilogo
Capitolo 7 - Gestione tecnica delle appalicazioni
Programmazione orientata agli oggetti
Progettazione dei componenti e delle applicazioni a confronto
Ciclo di vita dei componenti e del software a confronto
Modeling
Sepazione dei compiti
Applicazioni a n-livelli
Livello di presentazione (interfaccia utente)
Livello aziendale
Livello dei servizi di dati
Progettazione delle classi
Classi e strutture a confronto
Gestione delle eccezioni
Generare o non generare
Esempi
Classi aziendali
Classe dei servizi di dati
Windows Forms e Framework .NET
Progettazione e utilizzo efficaci dei form
Emulazione di "CodeBehind"
Utilizzo delle classi dei Windows Forms
Panoramica sui comandi di base dei Windows Forms
Ereditarieta' dei form
Associazione di dati
Utilizzo dei componenti dei Windows Forms
WebForms, ASP.NET e Framework .NET
Progettazione e utilizzo efficaci dei form
CodeBehind
Utilizzo delle classi WebForms di ASP .NET
La classe Page
Classi dell'interfaccia utente
Utility di livello inferiore della pagina
Servizi web
Utilizzo dei componenti delle classi WebForms
Deployment
Riepilogo
Capitolo 8 - Componenti e comandi .NET
Componenti e comandi a confronto
Creazione di componenti in .NET
Creazione ed eliminazione
Namespace
Gerarchie di oggetti e livello di accesso
Abstract
Public
Protected
Internal
Private
Sealed
Esposizione dei dati dei componenti
Proprieta'
Indicizzatori
Campi pubblici
Moduli, assembly e namespace
Esecuzione in parallelo
Controllo delle Versioni dell'assembly
Strong name
Crittografia e chiavi
Componenti autonomi (metadati)
Attributi
Attributi personalizzati
COM e .NET
Marshaling dei dati
Utilizzo dei componenti di .NET nelle applicazioni COM
Interoperabilita' di COM
Il wrapper CCW
Esposizione degli assembli .NET in COM
Applicazione da COM a .NET di esempio
Utilizzo dei tipi gestiti in COM
Marshaling personalizzato
Interoperabilita' dei tipi gestiti
Utilizzo dei componenti COM nelle applicazioni .NET
Il wrapper RCW
Esposizione delle librerie COM in .NET
Applicazione di interoperabilita' da .NET a COM di esempio
Creazione di comandi .NET
Scrittura di comandi Windows Forms personalizzati
Comandi Windows Forms composti
Scrittura di comandi di WebForms personalizzati
Comandi composti WebForms
Riepilogo
Capitolo 9 - Lavorare con i dati in .NET
System.Data
Architettura di System.Data
Provider dati
La classe Connection
La classe Command
La classe DataAdapter
La classe DataReader
Utilizzo del provider dati di SQL Server .NET
Codifica indipendente dal provider
La classe DataSet
Vantaggi e svantaggi di ADO .NET
Vantaggi
Svantaggi
Esempi di ADO .NET
Esempio di dati di connessioni server
Esempi di dati off line
ADO e ADO .NET a confronto
Scelta di ADO o ADO .NET
DataSet di ADO .NET e ADODB.RecordSet a confronto
System.Xml
System.Xml e System.Data
La classe XmlDocument
La classe XmlDataDocument
Breve introduzione a XPath
Riepilogo
Capitolo 10 - Progettazione e creazione di servizi web
Introduzione ai servizi web
Blocchi costitutivi di un servizio web
Formati di connessione di servizi web
WSDL
Individuazione di servizi web
UDDI
Creazione di un servizio web
Creazione di un server web senza ricorrere a Visual Studio .NET
Un nuovo servizio web: l'esempio delle spese di spedizione
Esecuzione e prova del servizio web creato
Creazione di un servizio web con Visual Studio .NET
Creazione del servizio web ShippingService in Visual Basic .NET
Creazione di un servizio web in Visual Studio .NET a partire da un modulo di classe esistente
Fruizione di un servizio web
Fruizione di un servizio web da client creati mediante Visual Studio .NET
Fruizione di un servizio web da client creati con editor di testo come il Blocco note
Fruizione di un servizio web utilizzando HTTP-GET
Concetti avanzati
Considerazioni sulla progettazione
Utilizzo di descrizioni per documentare il servizio web
Protezione
Gestione dello stato
Transazioni nei servizi web
Chiamata asincrona di servizi web
Estensioni SOAP
Hailstorm
Riepilogo
Capitolo 11 - .NET Remoting: la nuova infrastruttura per sistemi distribuiti
Introduzione a .NET Remoting
Quando utilizzare Remoting?
Introduzione all'architettura di Remoting
Canali
Che cosa e' un canale?
Domini di applicazione
Un semplice esempio
Contesti di applicazione
L'architettura di Remoting
Breve riepilogo
Il namespace System.Runtime.Remoting
Attivazione di Remoting
Attivazione sul server
Attivazione su client
Durata dell'attivazione
Configurazione di una durata lease server activated
Configurazione di una durata lease client activated
Configurazione di remoting
Configure (stringfilename)
Esempio di applicazione distribuita
L'applicazione
Esempio di applicazione aziendale
Progettazione
Esempio 1 - Calcolo del prestito
LoanCalculator: FigureLoan
LoanCalc::loanForm
Esempio 2 - Preferenze
Preferences::Preferences
CarData::InitializeLifetimeService
Missione compiuta
Riepilogo
Capitolo 12 - Strategie di progettazione con Framework .NET
Pianificazione dell'applicazione
Utilizzo di tecnologie clustering (disponibilita', scalabilita')
Revisioni costanti della protezione (garanzia di protezione, disponibilita')
Creazione di un team di supporto della produzione (disponibilita')
Ripristino dell'applicazione (disponibilita')
Backup pianificati (disponibilita')
Hardware (disponibilita')
Connessione in rete (disponibilita', garanzia di protezione)
Sorveglianza costante (garanzia di protezione)
Implementazione di regole di sicurezza (garanzia di protezione)
Minore visibilita' (garanzia di protezione)
Autenticazione avanzata (garanzia di protezione)
Accesso al sistema (garanzia di protezione)
Convalida (garanzia di protezione)
Frequentazione del sito Microsoft per documenti di protezione e aggiornamento
(garanzia di protezione)
Ottimizzazione del software (scalabilita', prestazioni)
Application Center 2000 (gestibilita')
Applicazioni a monitoraggio automatico (gestibilita')
Monitoraggio dell'applicazione e dell'infrastruttura (disponibilita', garanzia di protezione, gestibilita', affidabilita')
Windows 2000 (disponibilita', affidabilita')
Ambiente (disponibilita')
Sincronizzazione di tutti gli orologi (disponibilita')
Personale (disponibilita', affidabilita')
Rispetto del budget (disponibilita', affidabilita')
Metodologia di progettazione software (affidabilita')
Garanzia di qualita' (affidabilita')
Implementazione delle modifiche (affidabilita')
Il codice
Revisione del codice
Responsabilita'
Principianti/esperti
Lavoro di gruppo
Frequenza delle revisioni
Preparazione
Durante la revizione
Coerenza
Dopo la revisione
Controllo delle versioni
Visual SourceSafe e .NET
Strategie di Visual SourceSafe
Standard di codifica
Utilizzo di Regions
Enterprise Templates
Riutilizzo del codice VS. NET
Variabili
Commenti
Rientri
Test del codice
Elevata frequenza dei test
Test della funzionalita' in assenza di dati
Test con dati reali dell'utente
Test con i dati piu' strani
Test con persone diverse
Test con piu' dati rispetto a quanto stabilito
Creazione di script di test per automatizzare tutti i casi d'uso
Test di sollecitazione e analisi del costo totale
Test di sollecitazione su versioni di debug di codice e su codice di produzione
Inclusione di profili di database come parte di test di sollecitazione
Inclusione dei risultati di Event Viewer
Inclusione di altri log di applicazione
Utilizzo di Performance Logs e Alert Utility per il monitoraggio dell'attivita' in tempo reale
Isolamento della rete
Riepilogo
Capitolo 13 - Migrazione a .NET
Valutazione del progetto
Definizione delle esigenze del progetto
Giustificazione della migrazione
Vantaggi di Framework .NET
Analisi delle risorse: possibilita' delle migrazione
Implicazioni della migrazione
Riduzione, riutilizzo, riciclo: adattamento al nuovo ambiente
Riduzione
Riutilizzo
Riciclo
Servizi web
Dettagli di Framework .NET
Namespace
Ereditarieta' o interfacce
Scrittura di codice in un ambiente garbage-collected
Regole per la progettazione della migrazione
Identificazione
Descrizione
Documentazione
Controllo
Implementazione di una migrazione a .NET
Obiettivi e problemi
Path di migrazione
Approccio progressivo a .NET
La migrazione completa
Progettazione di Framework .NET e indicazioni di stile
Strumenti di migrazione
Capitolo 14 - Migrazione di un'applicazione VS 6 a VB .NET
Introduzione a UFIxIT Sodtware
Contesto di migrazione
Scelta del linguaggio
Installazione delle applicazioni dimostrative
BugScope Classic
Cenni generali sull'architettura
Requisiti funzionali
Schema di database
UserData
Application Data
Release Data
Issue Data
Stored procedure
Classi di DLL di supporto
Application
Issue
Release
User
SystemRoot
Il codice
Creazione di una Issue
Accesso
Recupero della struttura prodotto
Recupero dell'elenco di Issue
Compilazione di comandi
BugScope .NET
Cenni generali sull'architettura
Requisiti funzionali
Schema di database
User Data
Application Data
Release Data
Issue Data
Classi lato-server
Business Tier
Data Access Tier
Classi comuni
La classe Credentials
Il servizio web
L'applicazione client
Il codice
Classi di base
Flusso di esecuzione
Accesso
Compilazione della struttura prodotto
Registrazione di una nuova Issue
Visualizzazione di Issue Activity
Registrazione di una nuova Issue Activity
Creazione di uno User
Estensione dell'applicazione dimostrativa
Funzionamento asincromo
Protezione
Integrita' referenziale
Norme per la gestione di form
Funzionamento off line e concorrenza
Origini di Issue esterne
ASP .NET
Riepilogo
Capitolo 15 - Creazione di un'applicazione web che utilizza le funzionalita' di un servizio web
Introduzione al caso in oggetto
Definizione del problema aziendale
Soluzione proposta
Obiettivi della progettazione dell'applicazione
Processi aziendali
Implementazione
Progettazione di database
Progettazione del database ShoppingLegend
Progettazione del database ContentProvider
Implementazione di un servizio web
Restituzione di un set di dati da un metodo di servizi web
Metodo ProductsGet
Metodo CategoriesGet
Implementazione della classe Proxy
Utility WSDL
Utilizzo dell'opzione Add Web Reference
Implementazione del componente .NET
ChecklLogIn
SaveUserDetails
Implementazione dell'applicazione web ShoppingLegend
Process in login
Processo di registrazione
Processo CategoriesListing
Processo ProductListing
Processo Product Details
Gestione delle eccezioni
Test dell'applicazione
Requisiti preliminari e distribuzione
Requisiti preliminari
Distribuzione
Riepilogo
Appendice A - I namespace della libreria di classi .NET
Il namespace Microsoft
Il namespace System
System .CodeDom
System.CodeDom.Compiler
System.Collections
System.Collections.Specialized
System.ComponentModel
System.ComponentModelDesign
System.ComponentModelDesign.Serialization
System.Configuration
System.Configuration.Assemblies
System.Configuration.Install
System.Data
System.Data.Common
System.Data.OleDb
System.Data.SqlClient
System.Data.SqlTypes
System.Diagnostics
System.Diagnostics.SymbolStore
System.DirectoryServices
System.Drawing
System.Drawing.Design
System.Drawing.Drawing2D
System.Drawing.Imaging
System.Drawing.Printing
System.-Drawing.Text
System.EnterpriseServices
System.EnterpriseServices.CompensatingResourceManager
System.Globalization
System.IO
System.IO.IsolatedStorage
System.Management
System.Management.Instrumentation
System.Messaging
System.Net
System.Net.Stockets
System.Reflection
System.Reflection.Emit
System.Resource
System.Runtime
System.Runtime.CompilerServices
System.Runtime.InteropServices
System.Runtime.Remoting
System.Runtime.Serialization
System.Security
System.Security.Cryptography
System.Security.Policy
System.Security.Principal
System.ServiceProcess
System.Text
System.Text.RegularExpressions
System.Threading
System.Timers
System.Web
System.Web.Caching
System.Web.Configuration
System.Web.Hosting
System.Web.Mail
System.Web.Security
System.Web.Services
System.Web.SessionState
System.Web.UI
System.Windows.Forms
System.Windows.Forms.Design
System.Xml
System.Xml.Schema
System.Xml.Serialization
System.Xml.XPath
System.Xml.Xsl
Riepilogo
Appendice B - Programmazione orientata agli oggetti
Principi della programmazione orientata agli oggetti
Astrazione
Inclusione e dati nascosti
Ereditarieta'
Polimorfismo
Vantaggi della programmazione orientata agli oggetti
Programmazione orientata agli oggetti in .NET
Classi
Membri di dati
Metodi
Costruttori
Proprieta'
Overloading di operatori
Interfacce
Ereditarieta'
Ereditarieta' da interfacce
Utilizzo di classi astratta e classi di base
Ulteriori informazioni
Indice analitico |