Elenco delle attività di base della comunicazione remota

.NET Remoting è uno dei molti metodi per stabilire la comunicazione tra domini applicazione mediante .NET Framework. Prima di scegliere un modello di sviluppo per un'applicazione distribuita, è opportuno decidere quali funzionalità sono necessarie e considerare attentamente le risorse disponibili. Per informazioni in proposito, vedere Scelta delle opzioni di comunicazione in .NET . Negli elenchi di attività riportati di seguito sono descritti i passaggi fondamentali per generare un'applicazione .NET Remoting di base.

Attività host

I passaggi che seguono sono necessari per pubblicare un servizio da utilizzare al di fuori del dominio applicazione.

  1. Progettare il servizio.

    1. Scegliere un dominio applicazione host.
    2. Scegliere un modello di attivazione.
    3. Scegliere un canale e una porta.
    4. Decidere in quale modo il client otterrà i metadati del servizio.
  2. Implementare il dominio applicazione host. Gli host di comunicazione remota possono essere servizi per Windows, applicazioni console, applicazioni Windows Form, processi IIS o applicazioni ASP.NET. I requisiti variano per ciascun tipo di applicazione, per cui è consigliabile leggere la documentazione in cui viene descritto come generare il tipo di applicazione che si desidera utilizzare. Per ulteriori informazioni, vedere Generazione di applicazioni.

  3. Nell'host configurare il sistema di comunicazione remota per la modalità di attivazione e altre informazioni, come il nome e il punto finale dell'applicazione. Per configurare il sistema a livello di codice, non occorre utilizzare un file di configurazione. Se si utilizza un file di configurazione, caricarlo sul sistema chiamando RemotingConfiguration.Configure.

  4. Nell'host creare il canale appropriato e registrarlo con il sistema chiamando ChannelServices.RegisterChannel. Se si utilizza un file di configurazione, caricarlo sul sistema chiamando RemotingConfiguration.Configure.

  5. L'host non può essere eseguito senza la classe pubblicata, ma il modo in cui si genera l'ambiente host con l'implementazione del servizio dipende da come si desidera condividere l'interfaccia pubblica del servizio.

    Se si implementa un servizio Web XML, mediante un oggetto HttpChannel con la serializzazione SOAP predefinita, il client può ottenere le informazioni nei tre modi descritti di seguito.

    • Utilizzando lo strumento Soapsuds (Soapsuds.exe) per estrarre le informazioni dall'endpoint.

    • Scaricando un assembly contenente i metadati.

    • Scaricando il codice sorgente per un'interfaccia.

      Nota   L'utilizzo del codice sorgente funziona in due casi. Quando si ricorre all'attivazione da server, è possibile utilizzare il codice sorgente di un'implementazione, una classe astratta o un'interfaccia solo se questo codice viene compilato in un assembly con lo stesso nome dell'effettiva implementazione sul server. L'identità del tipo si basa sul nome del tipo e su quello dell'assembly. Quando si utilizza l'attivazione da client, è necessario generare una classe esternamente identica all'implementazione effettiva sul server. In particolare, la classe client deve trovarsi in un assembly con lo stesso nome, nonché presentare la stessa dichiarazione di classe e membri con le stesse firme di quelli sul server. L'implementazione della classe client stand-in non è importante: se i metadati corrispondono, verrà richiamato il server remoto. Mediante Soapsuds.exe viene generata una classe stand-in affinché il client salvi il lavoro.

    Se si implementa un altro tipo di servizio, ad esempio mediante l'oggetto TcpChannel, il client potrà ottenere le informazioni nei due modi descritti di seguito.

    • Scaricando un assembly contenente i metadati.

    • Scaricando il codice sorgente per un'interfaccia.

      Nota   L'utilizzo del codice sorgente funziona in due casi. Quando si ricorre all'attivazione da server, è possibile utilizzare il codice sorgente di un'implementazione, una classe astratta o un'interfaccia solo se questo codice viene compilato in un assembly con lo stesso nome dell'effettiva implementazione su server, incluse eventuali informazioni sul controllo delle versioni. L'identità del tipo si basa sulle informazioni relative al nome del tipo e a quello dell'assembly. Quando si utilizza l'attivazione da client, è necessario generare una classe esternamente identica all'implementazione effettiva sul server. In particolare, la classe client deve trovarsi in un assembly con lo stesso nome, nonché presentare la stessa dichiarazione di classe e membri con le stesse firme di quelli sul server. L'implementazione della classe client stand-in non è importante: se i metadati corrispondono, verrà richiamato il server remoto.

    In un caso o nell'altro, il modo in cui si crea il package del servizio nel dominio applicazione host dipende da come si desidera pubblicare i metadati necessari per consentire l'uso del servizio da parte di altri.

Attività client

I passaggi di base che seguono sono necessari per utilizzare qualsiasi servizio al di fuori del dominio applicazione.

  1. Progettare il client.
    1. Scegliere un dominio applicazione client.
    2. Determinare la modalità di attivazione e l'URL di attivazione client o quello dell'oggetto well-known del tipo remoto.
    3. Stabilire se occorre registrare un canale e una porta.
    4. Ottenere i metadati del tipo remoto.
  2. Implementare il dominio applicazione client. Gli host di comunicazione remota possono essere servizi per Windows, applicazioni console, applicazioni Windows Form, processi IIS o applicazioni ASP.NET. I requisiti variano per ciascun tipo di applicazione, per cui è consigliabile leggere la documentazione in cui viene descritto come generare il tipo di applicazione che si desidera utilizzare. Per ulteriori informazioni, vedere Generazione di applicazioni.
  3. Configurare il sistema remoto client con la modalità di attivazione e altre informazioni sul tipo, come il nome dell'applicazione e l'URI (Uniform Resource Identifier) dell'oggetto. Per configurare il sistema a livello di codice, non occorre utilizzare un file di configurazione. Se si utilizza un file di configurazione, caricarlo sul sistema chiamando RemotingConfiguration.Configure.
  4. Creare il canale appropriato e registrarlo con il sistema chiamando ChannelServices.RegisterChannel. Se si utilizza un file di configurazione, caricarlo sul sistema chiamando RemotingConfiguration.Configure.

Vedere anche

Generazione di un'applicazione .NET Remoting di base | Scelta di opzioni di comunicazione in .NET | Cenni preliminari su .NET Remoting | Esempi di comunicazione remota