Cenni preliminari su .NET Framework Remoting
.NET Remoting consente di generare facilmente applicazioni distribuite, indipendentemente dal fatto che i componenti dell'applicazione siano tutti residenti sullo stesso computer o siano dislocati a livello internazionale. E` possibile generare applicazioni client in cui si utilizzino oggetti di altri processi nello stesso computer o in qualsiasi altro computer disponibile sulla rete. .NET Remoting puo` essere utilizzato anche per comunicare con altri domini di applicazione nello stesso processo. Per ulteriori informazioni sulla programmazione dei domini di applicazione, vedere Programming with Application Domains.
.NET Remoting prevede un approccio astratto alla comunicazione interprocesso che separa l'oggetto remotizzabile da uno specifico dominio di applicazione client o server e da uno specifico meccanismo di comunicazione. Di conseguenza, e` flessibile e facilmente personalizzabile. E` possibile sostituire i protocolli di comunicazione o i formati di serializzazione senza dover ricompilare il client o il server. Il sistema .NET Remoting, inoltre, non presuppone alcun modello di applicazione in particolare. Per la comunicazione e` possibile utilizzare un'applicazione Web, un'applicazione console, un servizio per Windows e un numero quasi illimitato di altre opzioni. Anche i server .NET Remoting possono essere rappresentati da qualsiasi tipo di dominio di applicazione. Tutte le applicazioni possono ospitare oggetti remoti e fornire servizi a tutti i client del computer o della rete.
Nota
Per una maggiore protezione, e` consigliabile esporre gli endpoint di .NET Remoting su canali protetti e di non esporli mai non protetti su Internet.
Per generare con .NET Remoting un'applicazione in cui due componenti possano comunicare direttamente oltre il limite di un dominio di applicazione, e` sufficiente generare i seguenti elementi:
Un oggetto remotizzabile.
Un dominio di applicazione host per attendere richieste per l'oggetto.
Un dominio di applicazione client che effettua richieste per l'oggetto.
.NET Remoting puo` essere inteso in questo senso anche in un'applicazione complessa multiclient o multiserver. L'applicazione host e l'applicazione client, inoltre, devono essere configurate con l'infrastruttura di .NET Remoting ed e` necessario comprendere i problemi di durata e di attivazione che quest'ultima pone.
In questa sezione
- Generazione di un'applicazione .NET Framework Remoting di base
Viene illustrato lo scenario .NET Remoting di base mediante la generazione di un tipo remotizzabile, di un'applicazione listener e del relativo file di configurazione e di un'applicazione client e del relativo file di configurazione.
- Architettura di .NET Framework Remoting
Viene descritta l'architettura del sistema .NET Remoting.
- Trasformazione in oggetti remotizzabili
Vengono descritti i limiti dell'ambiente .NET Remoting e come implementare tipi attivabili attraverso questi limiti.
- Attivazione e durata degli oggetti
Vengono descritti i diversi tipi di attivazione remota e le modalita` di gestione della durata degli oggetti remoti.
- Canali
Vengono descritti i canali definiti dal sistema e vengono fornite le informazioni necessarie per scegliere il canale ottimale per un determinato scenario.
- Configurazione di applicazioni remote
Vengono descritti i principali requisiti di configurazione dell'infrastruttura di .NET Remoting, i tipi di configurazione utilizzabili per soddisfare tali requisiti e le esigenze specifiche di vari domini di applicazione client e server.
- Informazioni sulla versione in .NET Remoting
Viene descritto il funzionamento del controllo delle versioni in uno scenario remoto.
- Protezione in .NET Remoting
Vengono descritti i requisiti di protezione relativi all'utilizzo di .NET Remoting e i criteri di base per generare applicazioni .NET Remoting protette.
- Programmazione asincrona in .NET Remoting
Viene descritto come eseguire programmazione asincrona in uno scenario .NET Remoting.
- Procedura: chiamare i metodi di un oggetto remoto in modo asincrono
Viene illustrato come eseguire una chiamata asincrona a un metodo di un oggetto remoto.
- Problemi relativi alla chiamata di metodi di oggetti remoti in modo asincrono
Descrive i problemi relativi a una chiamata asincrona a un metodo di un oggetto remoto.
- Utilizzo di CallContext e del sistema .NET Remoting in modo diretto
Viene descritto come passare dati aggiuntivi con chiamate di metodi remoti mediante CallContext e come pubblicare in modo dinamico oggetti utilizzabili in modalita` remota.
Riferimenti
- Remoting Settings Schema
Vengono fornite informazioni di riferimento sugli elementi utilizzabili per configurare .NET Remoting mediante un file di configurazione.
- System.Runtime.Remoting
Vengono fornite informazioni di riferimento sui tipi utilizzabili per eseguire .NET Remoting.
- System.Runtime.Remoting.Activation
Contiene classi e oggetti che supportano l'attivazione da server e da client di oggetti remoti.
- System.Runtime.Remoting.Channels
Contiene classi che supportano e consentono la gestione di canali e sink di canale, utilizzati come mezzo di trasporto quando un metodo su un oggetto remoto viene chiamato da un client.
- System.Runtime.Remoting.Channels.Http
Contiene classi per canali che utilizzano il protocollo HTTP per il trasporto di messaggi e oggetti da e verso posizioni remote.
- System.Runtime.Remoting.Channels.Ipc
Contiene classi che definiscono un canale di comunicazione per .NET Remoting che utilizza il sistema di comunicazione interprocesso (IPC, Interprocess Communication) del sistema operativo Windows.
- System.Runtime.Remoting.Channels.Tcp
Contiene classi che definiscono i canali che utilizzano il protocollo TCP per il trasporto di messaggi e oggetti da e verso posizioni remote.
- System.Runtime.Remoting.Contexts
Contiene oggetti che definiscono i contesti in cui risiedono tutti gli oggetti remoti.
- System.Runtime.Remoting.Lifetime
Contiene classi che consentono la gestione della durata degli oggetti remoti.
- System.Runtime.Remoting.Messaging
Contiene classi utilizzabili per creare e trasmettere messaggi.
- System.Runtime.Remoting.Metadata
Contiene classi e attributi utilizzabili per personalizzare la generazione e l'elaborazione di SOAP per oggetti e campi.
- System.Runtime.Remoting.Metadata.W3cXsd2001
Contiene la definizione degli schemi XML, XSD (XML Schema Definition) definita dal World Wide Web Consortium (W3C) nel 2001.
- System.Runtime.Remoting.MetadataServices
Contiene le classi utilizzate dallo strumento da riga di comando Soapsuds Tool (Soapsuds.exe) e il codice utente per la conversione dei metadati da e verso lo schema XML per l'infrastruttura di .NET Remoting.
- System.Runtime.Remoting.Proxies
Contiene classi in grado di controllare e fornire funzionalita` per i proxy.
- System.Runtime.Remoting.Services
Contiene le classi dei servizi che includono le funzionalita` per .NET Framework.
Sezioni correlate
- Opzioni avanzate di .NET Remoting
Vengono descritti gli aspetti di base dell'intercettazione e dell'estensione, utilizzabili per personalizzare l'architettura di .NET Remoting.
- Esempi di codice di .NET Remoting
Vengono fornite numerose applicazioni di esempio complete in cui sono utilizzati diversi elementi dell'infrastruttura di .NET Remoting.