Cenni preliminari sui componenti serviti

Un componente servito è una classe modificata in un linguaggio compatibile con CLS che deriva in modo diretto o indiretto dalla classe System.EnterpriseServices.ServicedComponent. Le classi configurate in questo modo possono essere contenute in un'applicazione COM+ e possono utilizzare i servizi COM+ tramite lo spazio dei nomi EnterpriseServices. Per l'elenco dei servizi supportati, vedere la sezione Riepilogo dei servizi COM+ disponibili.

I servizi COM+, quali transazioni automatiche e componenti in coda, vengono configurati in modo dichiarativo. In fase di progettazione vengono applicati gli attributi relativi ai servizi e vengono create le istanze delle classi che utilizzano tali servizi. Alcuni servizi vengono configurati chiamando i metodi sulle classi o sulle interfacce relative ai servizi. Alcuni servizi possono passare da un oggetto all'altro. Un oggetto configurato in modo da richiedere una transazione, ad esempio, può estendere tale transazione a un altro oggetto, se quest'ultimo supporta o richiede transazioni.

Le informazioni sulla configurazione utilizzate per l'implementazione di una classe sono memorizzate nel catalogo COM+. In fase di esecuzione, COM+ crea un livello di servizi di contesto in base agli attributi applicati al codice. Nella figura seguente viene illustrata una transazione automatica passata tra due oggetti gestiti contenuti in COM+.

Applicazione COM+ contenente componenti serviti

I servizi possono inoltre passare tra oggetti COM+ e oggetti .NET Framework. In ogni ambiente viene controllata l'implementazione e l'esecuzione del relativo codice nativo. Il contesto dell'oggetto viene sempre fornito da COM+.

Per creare un componente servito

  1. Definire una classe che deriva direttamente o indirettamente dalla classe ServicedComponent. Con il codice seguente, ad esempio, si garantisce che la classe Account sia contenuta in un'applicazione COM+.

    Imports System.EnterpriseServices
    Public Class Account 
    Inherits ServicedComponent
    Shared Sub Main()
    End Sub
    End Class
    [C#]
    using System.EnterpriseServices;
    public class Account : ServicedComponent
    {
       static void Main()
       {}
    }
    
  2. Il codice seguente applica gli attributi di servizio all'assembly, alla classe o al metodo:

    Imports System.EnterpriseServices
    <Transaction(TransactionOption.Required)> Public Class Account 
    Inherits ServicedComponent
       <AutoComplete()> Shared Sub Main()
       End Sub
    End Class
    [C#]
    using System.EnterpriseServices;
    [Transaction(TransactionOption.Required)]
    public class Account : ServicedComponent
    {
       [AutoComplete]
       static void Main() 
    {}
    }
    

    Nota   In .NET Framework versione 1.1, se l'attributo ApplicationAccessControlAttribute non è presente nell'assembly, la configurazione di protezione COM+ verrà attivata per impostazione predefinita. Tale comportamento differisce da quello di .NET Framework versione 1.0.

  3. È possibile compilare l'esempio nel modo illustrato di seguito.

    Makefile.bat

    vbc /t:exe /r:System.EnterpriseServices.dll Demo.vb
    [C#]
    csc /t:exe /r:System.EnterpriseServices.dll Demo.cs
    
  4. Distribuire l'applicazione del componente servito mediante la registrazione dinamica o manuale del relativo assembly. Per ulteriori informazioni, vedere Registrazione dinamica e Registrazione manuale.

Dopo la registrazione di un componente servito, i client possono creare istanze del componente nello stesso modo in cui creano istanze di altri componenti. Per un esempio completo, vedere Esempio di componente servito.

Nota   Sulle piattaforme Windows 2000, COM+ carica sempre la versione più recente di Common Language Runtime per il componente che si sta creando. Su un computer in cui siano stati installati sia .NET Framework versione 1.0 che .NET Framework versione 1.1, verrà pertanto caricato sempre .NET Framework versione 1.1. È tuttavia possibile creare un file di COM+ dllhost.exe.configuration con cui "legare" tutte le applicazioni a una versione specifica di .NET Framework. Sulle piattaforme Windows XP e Windows Server 2003, è possibile specificare in quale directory risiedano i file di configurazione di COM+ tramite l'impostazione Directory principale applicazione.

Vedere anche

Scrittura di componenti serviti | Applicazione di attributi per la configurazione dei servizi | Registrazione dei componenti serviti | Esempio di componente servito | Riepilogo dei servizi COM+ disponibili | System.EnterpriseServices.ServicedComponent