Condividi tramite


Librerie di classi portabili

Il progetto Libreria di classi portabile consente di scrivere e compilare assembly gestiti compatibili con più piattaforme .NET Framework. È possibile creare classi che contengono il codice che si desidera condividere con diversi progetti, ad esempio la logica di business condivisa, quindi fare riferimento a tali classi dai tipi diversi di progetti.

Utilizzando il progetto Libreria di classi portabile, è possibile compilare assembly portabili che funzionano senza modifica con .NET Framework, Silverlight, Windows Phone 7 o le piattaforme Xbox 360. Senza il progetto Libreria di classi portabile, destinare una singola piattaforma e quindi rielaborare manualmente la libreria di classi per altre piattaforme. Il progetto Libreria di classi portabile supporta un subset di assembly da queste piattaforme e fornisce un modello di Visual Studio che rende possibile la compilazione di assembly in esecuzione senza modifica su queste piattaforme.

Prerequisiti

Per creare un progetto Libreria di classi portabile, è necessario installare questi componenti nell'ordine seguente:

  1. Visual Studio 2010 Service Pack 1 (SP1)

  2. Pagina relativa agli strumenti della libreria portabile

Assembly

In un progetto Libreria di classi portabile sono disponibili i seguenti assembly:

  • mscorlib.dll

  • System.dll

  • System.Core.dll

  • System.Xml.dll

  • System.ComponentModel.Composition.dll

  • System.Net.dll

  • System.Runtime.Serialization.dll

  • System.ServiceModel.dll

  • System.Xml.Serialization.dll

  • System.Windows.dll (da Silverlight)

Tuttavia, non tutti questi assembly sono supportati su tutte le piattaforme. In un progetto Libreria di classi portabile, specificare le piattaforme che si desidera destinare e, nel progetto, verrà fatto riferimento solo agli assembly supportati per quelle piattaforme. Se si prova a fare riferimento a un assembly non supportato per le piattaforme destinate, Visual Studio avverte dell'incompatibilità. Gli assembly principali (mscorlib.dll, System.dll, System.Core.dll e System.Xml.dll) sono supportati su tutte le piattaforme.

Nella tabella seguente vengono mostrati gli assembly supportati sulle piattaforme disponibili.

Funzionalità

Assembly

.NET Framework 4

Silverlight

Windows Phone 7

Xbox 360

Core

mscorlib.dll, System.dll, System.Core.dll, System.Xml.dll

Managed Extensibility Framework (MEF)

System.ComponentModel.Composition.dll

No

No

Network Class Library (NCL)

System.Net.dll

No

Serializzazione

System.Runtime.Serialization.dll

No

Windows Communication Foundation (WCF)

System.ServiceModel.dll

No

Serializzazione XML

System.Xml.Serialization.dll

No

Supporto per il modello di visualizzazione

System.Windows.dll (da Silverlight)

No

No

I progetti Libreria di classi portabile sono destinati a una combinazione di piattaforme. Nella tabella seguente sono illustrate le funzioni supportate per le combinazioni di piattaforma.

Piattaforme

Supporto

Silverlight e Windows Phone 7

Tutto ad eccezione di MEF

.NET Framework 4 e Silverlight

Tutto ad eccezione del supporto del modello di visualizzazione

.NET Framework 4 e Windows Phone 7

Tutto ad eccezione del supporto del modello di visualizzazione e MEF

.NET Framework 4, Silverlight e Windows Phone 7

Tutto ad eccezione del supporto del modello di visualizzazione e MEF

Xbox 360 e qualsiasi altra piattaforma

Solo la funzionalità di base

Individuazione dei membri supportati nella documentazione di riferimento

È possibile individuare quali membri sono supportati dal progetto Libreria di classi portabile negli argomenti di riferimento per la sezione relativa alla libreria di classi .NET Framework. Nella tabella dei membri per una classe, l'icona Libreria di classi portabile seguente viene visualizzata accanto a membri supportati.

Supportato da Portable Library

Nella sezione Informazioni sulla versione di un argomento di riferimento è possibile cercare una nota che indica che un tipo o un membro è supportato nel progetto Libreria di classi portabile.

Supporto del modello di visualizzazione

Quando si scelgono come destinazione Silverlight e Windows Phone 7, è possibile implementare il modello di visualizzazione nella soluzione. Le classi per implementare questo modello si trovano nell'assembly System.Windows.dll di Silverlight. L'assembly System.Windows.dll non è supportato quando si crea un progetto Libreria di classi portabile destinato a .NET Framework 4 o Xbox 360.

Le classi in questo assembly includono quanto segue:

Anche .NET Framework 4 include queste classi, che sono tuttavia implementate in assembly diversi da System.Windows.dll. Per utilizzare queste classi con un progetto Libreria di classi portabile, è necessario fare riferimento a System.Windows.dll e non agli assembly elencati nella documentazione di .NET Framework 4.

Creazione di un progetto Libreria di classi portabile

Per creare un progetto Libreria di classi portabile, creare un nuovo progetto in Visual Studio 2010 e selezionare il modello Libreria di classi portabile in Visual C# o Visual Basic. Se non si vede il modello, verificare di aver installato gli strumenti della libreria portabile.

Selezione progetto Portable Library

Selezione delle piattaforme di destinazione

Per impostazione predefinita, il progetto Libreria di classi portabile ha come destinazione le seguenti piattaforme:

  • .NET Framework 4

  • Silverlight 4

  • Silverlight per Windows Phone 7

Il progetto fa riferimento solo agli assembly supportati da tali piattaforme. Per selezionare le piattaforme di destinazione, in Esplora soluzioni, fare clic con il pulsante destro del mouse sul nome progetto Libreria di classi portabile e selezionare Proprietà.

La pagina delle proprietà del progetto specifica le piattaforme al momento destinate.

Proprietà di progetti

Per aggiungere o rimuovere le piattaforme di destinazione, fare clic su Modifica.

Modifica destinazione

Quando si modificano le piattaforme di destinazione, gli assembly a cui si fa riferimento nel progetto cambiano in modo da corrispondere al set di assembly supportato per la selezione. Se il progetto fa riferimento agli assembly non supportati da una delle piattaforme selezionate, è necessario rimuovere il riferimento all'assembly o modificare le piattaforme di destinazione. In Esplora soluzioni, gli assembly che non sono supportati sono contrassegnati da un punto esclamativo (!). Nell'immagine seguente viene mostrato un avviso per gli assembly che non sono supportati quando la piattaforma Xbox 360 viene aggiunta alle piattaforme di destinazione.

Avviso

Utilizzo di Libreria di classi portabile

Dopo avere compilato il progetto Libreria di classi portabile, semplicemente aggiungervi un riferimento dagli altri progetti che si basano sul progetto Libreria di classi portabile. È possibile fare riferimento al progetto o ad assembly specifici che contengono le classi a cui si desidera accedere.

Creazione di una dipendenza

Per eseguire un'applicazione Libreria di classi portabile, è necessario installare un aggiornamento per .NET Framework 4 nel computer. Questo aggiornamento viene installato automaticamente con Visual Studio 2010 SP1, pertanto è possibile eseguire l'applicazione Libreria di classi portabile senza un'ulteriore modifica sul computer utilizzato per sviluppare l'applicazione. Per eseguire l'applicazione su un computer diverso, è possibile installare manualmente l'aggiornamento.

Quando si distribuisce un'applicazione .NET Framework 4 che fa riferimento all'assembly Libreria di classi portabile, è necessario specificare una dipendenza nell'aggiornamento di .NET Framework 4. Specificando questa dipendenza, si assicura l'installazione dell'aggiornamento con l'applicazione.

  • Per creare una dipendenza con la distribuzione ClickOnce, in Esplora soluzioni fare clic sul nodo di progetto per il progetto che si desidera pubblicare. (Si tratta del progetto che fa riferimento al progetto Libreria di classi portabile.) Nel menu Progetto, fare clic su Proprietà e quindi fare clic sulla scheda Pubblica. Nella pagina Pubblica, fare clic su Prerequisiti. Selezionare l'aggiornamento di .NET Framework 4 come prerequisito.

  • Per creare una dipendenza con un progetto di installazione, in Esplora soluzioni fare clic sul progetto di installazione. Scegliere Proprietà dal menu Progetto e quindi fare clic su Prerequisiti. Selezionare l'aggiornamento di .NET Framework 4 come prerequisito.

Per ulteriori informazioni sulla distribuzione di applicazioni .NET Framework, vedere Guida alla distribuzione di .NET Framework per sviluppatori.

Distribuzione con Silverlight

Quando si distribuisce l'assembly Libreria di classi portabile con un'applicazione basata su Silverlight, è necessario assicurarsi che la versione di runtime minima richiesta per l'applicazione venga impostata sulla versione 4.0.60129.0 o successiva. Viene impostato il valore del parametro minRuntimeVersion includendo <param name="minRuntimeVersion" value="4.0.60129.0" /> nella pagina Web di cui è stato eseguito l'hosting dell'applicazione basata su Silverlight.

<div id="silverlightControlHost">
    <object data="data:application/x-silverlight-2," 
           type="application/x-silverlight-2" width="100%" height="100%">
    <param name="source" value="ClientBin/SilverlightApplication.xap"/>
    <param name="onError" value="onSilverlightError" />
    <param name="background" value="white" />
    <param name="minRuntimeVersion" value="4.0.60129.0" />
    <param name="autoUpgrade" value="true" />
    <a href="https://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" 
             style="text-decoration:none">
      <img src=https://go.microsoft.com/fwlink/?LinkId=161376
             alt="Get Microsoft Silverlight" style="border-style:none"/>
    </a>
  </object>
   <iframe id="_sl_historyFrame" 
              style="visibility:hidden;height:0px;width:0px;border:0px">
   </iframe>
</div>

Differenze delle API in Libreria di classi portabile

Per rendere compatibili gli assembly Libreria di classi portabile con tutte le piattaforme supportate, alcuni membri sono stati modificati leggermente in Libreria di classi portabile. Per ulteriori dettagli su quali membri sono stati modificati e sulla modalità di modifica, vedere Differenze tra API nella libreria di classi portabile.

Vedere anche

Altre risorse

Differenze tra API nella libreria di classi portabile

Cronologia delle modifiche

Data

Cronologia

Motivo

Maggio 2011

Aggiunta di informazioni sul supporto del modello di visualizzazione e sulla creazione di dipendenze.

Miglioramento delle informazioni.

Marzo 2011

Argomento aggiunto.

Miglioramento delle informazioni.