.NET Standard.NET Standard

.NET Standard è una specifica formale delle API .NET che devono essere disponibili in tutte le implementazioni di .NET.The .NET Standard is a formal specification of .NET APIs that are intended to be available on all .NET implementations. La motivazione alla base di .NET Standard è l'esigenza di creare maggiore uniformità nell'ecosistema .NET.The motivation behind the .NET Standard is establishing greater uniformity in the .NET ecosystem. Lo standard ECMA 335 continua ad assicurare uniformità riguardo al comportamento delle implementazioni di .NET, ma non esiste una specifica simile per le librerie di classi base .NET per le implementazioni delle librerie .NET.ECMA 335 continues to establish uniformity for .NET implementation behavior, but there's no similar spec for the .NET Base Class Libraries (BCL) for .NET library implementations.

.NET Standard abilita gli scenari chiave seguenti:The .NET Standard enables the following key scenarios:

  • Definisce un set uniforme di API BCL per tutte le implementazioni di .NET da implementare, indipendentemente dal carico di lavoro.Defines uniform set of BCL APIs for all .NET implementations to implement, independent of workload.
  • Consente agli sviluppatori di creare librerie portabili utilizzabili in più implementazioni di .NET usando questo stesso set di API.Enables developers to produce portable libraries that are usable across .NET implementations, using this same set of APIs.
  • Riduce o addirittura elimina la compilazione condizionale del codice sorgente condiviso a causa di API .NET (solo per API del sistema operativo).Reduces or even eliminates conditional compilation of shared source due to .NET APIs, only for OS APIs.

Le diverse implementazioni di .NET specificano come destinazione determinate versioni di .NET Standard.The various .NET implementations target specific versions of .NET Standard. Ogni versione dell'implementazione di .NET annuncia la versione .NET Standard più recente supportata, implicando che sono supportate anche le versioni precedenti.Each .NET implementation version advertises the highest .NET Standard version it supports, a statement that means it also supports previous versions. NET Framework 4.6, ad esempio, implementa .NET Standard 1.3: questo significa che espone tutte le API definite nelle versioni di .NET Standard da 1.0 a 1.3.For example, the .NET Framework 4.6 implements .NET Standard 1.3, which means that it exposes all APIs defined in .NET Standard versions 1.0 through 1.3. Analogamente, .NET Framework 4.6.1 implementa .NET Standard 1.4, mentre .NET Core 1.0 implementa .NET Standard 1.6.Similarly, the .NET Framework 4.6.1 implements .NET Standard 1.4, while .NET Core 1.0 implements .NET Standard 1.6.

Supporto per le implementazioni di .NET.NET implementation support

Nella tabella seguente sono riportate le versioni minime della piattaforma che supportano ogni versione di .NET Standard.The following table lists the minimum platform versions that support each .NET Standard version.

.NET Standard.NET Standard 1.01.0 1.11.1 1.21.2 1.31.3 1.41.4 1.51.5 1.61.6 2.02.0
.NET Core.NET Core 1.01.0 1.01.0 1.01.0 1.01.0 1.01.0 1.01.0 1.01.0 2.02.0
.NET Framework 1.NET Framework 1 4.54.5 4.54.5 4.5.14.5.1 4.64.6 4.6.14.6.1 4.6.1 24.6.1 2 4.6.1 24.6.1 2 4.6.1 24.6.1 2
MonoMono 4.64.6 4.64.6 4.64.6 4.64.6 4.64.6 4.64.6 4.64.6 5.45.4
Xamarin.iOSXamarin.iOS 10.010.0 10.010.0 10.010.0 10.010.0 10.010.0 10.010.0 10.010.0 10.1410.14
Xamarin.MacXamarin.Mac 3.03.0 3.03.0 3.03.0 3.03.0 3.03.0 3.03.0 3.03.0 3.83.8
Xamarin.AndroidXamarin.Android 7.07.0 7.07.0 7.07.0 7.07.0 7.07.0 7.07.0 7.07.0 8.08.0
Piattaforma UWP (Universal Windows Platform)Universal Windows Platform 10.010.0 10.010.0 10.010.0 10.010.0 10.010.0 10.0.1629910.0.16299 10.0.1629910.0.16299 10.0.1629910.0.16299
UnityUnity 2018.12018.1 2018.12018.1 2018.12018.1 2018.12018.1 2018.12018.1 2018.12018.1 2018.12018.1 2018.12018.1

1 Le versioni elencate per .NET Framework si applicano agli strumenti .NET Core 2.0 SDK e versioni successive. Le versioni precedenti usavano un altro mapping per .NET Standard 1.5 e versioni successive. È possibile scaricare gli strumenti di .NET Core per Visual Studio 2015 se non è possibile eseguire l'aggiornamento a Visual Studio 2017.1 The versions listed for .NET Framework apply to .NET Core 2.0 SDK and later versions of the tooling. Older versions used a different mapping for .NET Standard 1.5 and higher. You can download tooling for .NET Core tools for Visual Studio 2015 if you cannot upgrade to Visual Studio 2017.

2. le versioni elencate di seguito rappresentano le regole che NuGet usa per determinare se una determinata libreria .NET Standard è applicabile. Anche se NuGet considera che .NET Framework 4.6.1 supporta .NET Standard da 1.5 a 2.0, si verificano vari problemi quando si usano librerie .NET Standard compilate per queste versioni da progetti .NET Framework 4.6.1. Per i progetti .NET Framework che devono necessariamente usare queste librerie è consigliabile aggiornare il progetto impostando come destinazione .NET Framework 4.7.2 o versione successiva.2 The versions listed here represent the rules that NuGet uses to determine whether a given .NET Standard library is applicable. While NuGet considers .NET Framework 4.6.1 as supporting .NET Standard 1.5 through 2.0, there are several issues with consuming .NET Standard libraries that were built for those versions from .NET Framework 4.6.1 projects. For .NET Framework projects that need to use such libraries, we recommend that you upgrade the project to target .NET Framework 4.7.2 or higher.

  • Le colonne rappresentano le versioni di .NET Standard.The columns represent .NET Standard versions. Ogni cella di intestazione è un collegamento a un documento che mostra quali API sono state aggiunte nella specifica versione di .NET Standard.Each header cell is a link to a document that shows which APIs got added in that version of .NET Standard.
  • Le righe rappresentano le diverse implementazioni di .NET.The rows represent the different .NET implementations.
  • Il numero di versione in ogni cella indica la versione minima dell'implementazione necessaria per usare tale specifica versione di .NET Standard come destinazione.The version number in each cell indicates the minimum version of the implementation you'll need in order to target that .NET Standard version.
  • Per una tabella interattiva, vedere .NET Standard versions (Versioni di .NET Standard).For an interactive table, see .NET Standard versions.

Per trovare la versione più recente di .NET Standard che è possibile definire come destinazione, eseguire le operazioni seguenti:To find the highest version of .NET Standard that you can target, do the following steps:

  1. Individuare la riga che indica l'implementazione di .NET usata per l'esecuzione.Find the row that indicates the .NET implementation you want to run on.
  2. All'interno della riga, individuare la colonna che indica la versione in uso a partire da destra verso sinistra.Find the column in that row that indicates your version starting from right to left.
  3. L'intestazione colonna indica la versione di .NET Standard supportata dall'attuale destinazione.The column header indicates the .NET Standard version that your target supports. È anche possibile impostare il supporto di qualsiasi versione di .NET Standard inferiore.You may also target any lower .NET Standard version. Anche le versioni di .NET Standard superiori supporteranno l'implementazione.Higher .NET Standard versions will also support your implementation.
  4. Ripetere questo processo per ogni piattaforma da definire come destinazione.Repeat this process for each platform you want to target. Se si hanno più piattaforme di destinazione, usare la versione inferiore tra quelle disponibili.If you have more than one target platform, you should pick the smaller version among them. Ad esempio, se si vuole procedere all'esecuzione in .NET Framework 4.5 e .NET Core 1.0, la versione .NET Standard superiore che è possibile usare è .NET Standard 1.1.For example, if you want to run on .NET Framework 4.5 and .NET Core 1.0, the highest .NET Standard version you can use is .NET Standard 1.1.

Quale versione di .NET Standard definire come destinazioneWhich .NET Standard version to target

Quando si sceglie una versione di .NET Standard, è necessario prendere in considerazione il seguente compromesso:When choosing a .NET Standard version, you should consider this trade-off:

  • Quanto più alto è il numero di versione, maggiore sarà il numero delle API disponibili.The higher the version, the more APIs are available to you.
  • Quanto più basso è il numero di versione, maggiore sarà il numero delle piattaforme che la implementano.The lower the version, the more platforms implement it.

In generale, è consigliabile avere come destinazione la versione di .NET Standard più bassa possibile.In general, we recommend you to target the lowest version of .NET Standard possible. Pertanto, dopo avere individuato la versione di .NET Standard più alta che è possibile avere come destinazione, seguire questi passaggi:So, after you find the highest .NET Standard version you can target, follow these steps:

  1. Definire come destinazione la versione immediatamente precedente di .NET Standard e compilare il progetto.Target the next lower version of .NET Standard and build your project.
  2. Se il progetto viene compilato correttamente, ripetere il passaggio 1.If your project builds successfully, repeat step 1. In caso contrario, definire come destinazione la versione immediatamente successiva che sarà la versione da usare.Otherwise, retarget to the next higher version and that's the version you should use.

Tuttavia, la definizione di versioni precedenti di .NET Standard come destinazione introduce un numero di dipendenze di supporto.However, targeting lower .NET Standard versions introduces a number of support dependencies. Se il progetto è destinato a .NET Standard 1.x, è consigliabile definire anche .NET Standard 2.0 come destinazione.If your project targets .NET Standard 1.x, we recommend that you also target .NET Standard 2.0. Questo semplifica il grafico delle dipendenze per gli utenti della libreria che usano come ambiente di esecuzione framework compatibili con .NET Standard 2.0 e riduce il numero dei pacchetti da scaricare.This simplifies the dependency graph for users of your library that run on .NET Standard 2.0 compatible frameworks, and it reduces the number of packages they need to download.

Regole per il controllo delle versioni di .NET standard.NET Standard versioning rules

Esistono due regole principali per il controllo delle versioni:There are two primary versioning rules:

  • Additive: le versioni di .NET Standard sono cerchi concentrici da un punto di vista logico, ovvero le versioni successive includono tutte le API delle versioni precedenti.Additive: .NET Standard versions are logically concentric circles: higher versions incorporate all APIs from previous versions. Non vengono apportate modifiche importanti tra una versione e l'altra.There are no breaking changes between versions.
  • Non modificabili: una volta fornite, le versioni di .NET Standard sono bloccate.Immutable: Once shipped, .NET Standard versions are frozen. Le nuove API vengono prima rese disponibili in implementazioni di .NET specifiche, ad esempio .NET Core.New APIs first become available in specific .NET implementations, such as .NET Core. Se la commissione di esame di .NET Standard ritiene che le nuove API debbano essere disponibili per tutte le implementazioni di .NET, vengono aggiunte in una nuova versione di .NET Standard.If the .NET Standard review board believes the new APIs should be available for all .NET implementations, they're added in a new .NET Standard version.

SpecificaSpecification

La specifica di .NET Standard è un set standardizzato di API.The .NET Standard specification is a standardized set of APIs. La specifica viene gestita dagli implementatori di .NET, in particolare Microsoft (sono inclusi .NET Framework, .NET Core e Mono) e Unity.The specification is maintained by .NET implementors, specifically Microsoft (includes .NET Framework, .NET Core, and Mono) and Unity. Un processo pubblico di commenti e suggerimenti è parte integrante della creazione di nuove versioni di .NET Standard tramite GitHub.A public feedback process is used as part of establishing new .NET Standard versions through GitHub.

Elementi ufficialiOfficial artifacts

La specifica ufficiale è un insieme di file con estensione cs che definiscono le API che sono parte dello standard.The official specification is a set of .cs files that define the APIs that are part of the standard. La directory ref nel repository dotnet/standard definisce le API di .NET Standard.The ref directory in the dotnet/standard repository defines the .NET Standard APIs.

Il metapacchetto NETStandard.Library (origine) descrive il set di librerie che definiscono (in parte) una o più versioni di .NET Standard.The NETStandard.Library metapackage (source) describes the set of libraries that define (in part) one or more .NET Standard versions.

Un componente specifico, ad esempio System.Runtime, descrive quanto segue:A given component, like System.Runtime, describes:

  • Parte di .NET Standard (solo il relativo ambito).Part of .NET Standard (just its scope).
  • Diverse versioni di .NET Standard per tale ambito.Multiple versions of .NET Standard, for that scope.

Vengono forniti elementi derivati per facilitare le operazioni di lettura e abilitare alcuni scenari di sviluppo (ad esempio l'uso di un compilatore).Derivative artifacts are provided to enable more convenient reading and to enable certain developer scenarios (for example, using a compiler).

Rappresentazione dei pacchettiPackage representation

Il principale veicolo di distribuzione degli assembly di riferimento di .NET Standard sono i pacchetti NuGet.The primary distribution vehicle for the .NET Standard reference assemblies is NuGet packages. Le implementazioni vengono distribuite con modalità diverse, appropriate per ogni implementazione di .NET.Implementations are delivered in a variety of ways, appropriate for each .NET implementation.

I pacchetti NuGet hanno come destinazione uno o più framework.NuGet packages target one or more frameworks. I pacchetti di .NET Standard hanno come destinazione il framework ".NET Standard".The .NET Standard packages target the ".NET Standard" framework. È possibile definire come destinazione il framework .NET Standard usando il netstandard TFM (Target Framework Moniker) compatto (ad esempio netstandard1.4).You can target the .NET Standard framework using the netstandard compact TFM (for example, netstandard1.4). Le librerie da eseguire su più runtime devono avere come destinazione questo framework.Libraries that are intended to run on multiple runtimes should target this framework. Per il set più ampio di API, indicare netstandard2.0 come destinazione poiché il numero di API è più che raddoppiato tra .NET Standard 1.6 e 2.0.For the broadest set of APIs, target netstandard2.0 since the number of available APIs more than doubled between .NET Standard 1.6 and 2.0.

Il metapacchetto NETStandard.Library fa riferimento al set completo di pacchetti NuGet che definiscono .NET Standard.The NETStandard.Library metapackage references the complete set of NuGet packages that define .NET Standard. Il modo più comune di definire netstandard come destinazione è fare riferimento a questo metapacchetto.The most common way to target netstandard is by referencing this metapackage. Questo metapacchetto descrive e fornisce l'accesso alle circa 40 librerie .NET e alle API associate che definiscono .NET Standard.It describes and provides access to the ~40 .NET libraries and associated APIs that define .NET Standard. Per accedere ad API aggiuntive, è possibile fare riferimento ad altri pacchetti che hanno come destinazione netstandard.You can reference additional packages that target netstandard to get access to additional APIs.

Controllo delle versioniVersioning

La specifica non è singola, ma costituisce un set di API a crescita incrementale e con definizione lineare delle versioni.The specification is not singular, but an incrementally growing and linearly versioned set of APIs. La prima versione dello standard definisce un set di dati di riferimento delle API.The first version of the standard establishes a baseline set of APIs. Le versioni successive aggiungono nuove API ed ereditano quelle definite dalle versioni precedenti.Subsequent versions add APIs and inherit APIs defined by previous versions. Non esiste alcuna norma stabilita per la rimozione di API dallo standard.There is no established provision for removing APIs from the standard.

.NET Standard non è specifico di alcuna implementazione di .NET e non corrisponde allo schema di numerazione delle versioni di nessuno di questi runtime..NET Standard is not specific to any one .NET implementation, nor does it match the versioning scheme of any of those runtimes.

Le API aggiunte a una delle implementazioni (ad esempio, .NET Framework, .NET Core e Mono) possono essere prese in considerazione per l'aggiunta alla specifica, in particolare se sono state progettate per essere API fondamentali.APIs added to any of the implementations (such as, .NET Framework, .NET Core and Mono) can be considered as candidates to add to the specification, particularly if they are thought to be fundamental in nature. Le nuove versioni di .NET Standard vengono create sulla base delle versioni delle implementazioni di .NET, consentendo di definire come destinazione nuove API da una libreria di classi portabile .NET Standard.New versions of .NET Standard are created based on .NET implementation releases, enabling you to target new APIs from a .NET Standard PCL. I meccanismi di versionamento sono descritti in modo più dettagliato nell'articolo .NET Core Versioning (Versionamento di .NET Core).The versioning mechanics are described in more detail in .NET Core Versioning.

Il controllo delle versioni di .NET Standard è importante per l'uso..NET Standard versioning is important for usage. Data una versione di .NET Standard, è possibile usare librerie che hanno come destinazione la stessa versione o versioni precedenti.Given a .NET Standard version, you can use libraries that target that same or lower version. L'approccio seguente descrive il flusso di lavoro per l'uso di librerie di classi portabili di .NET Standard, in particolare per la definizione di .NET Standard come destinazione.The following approach describes the workflow for using .NET Standard PCLs, specific to .NET Standard targeting.

  • Selezionare una versione di .NET Standard da usare per la libreria di classi portabile.Select a .NET Standard version to use for your PCL.
  • Usare librerie che dipendono dalla stessa versione di .NET Standard o da versioni precedenti.Use libraries that depend on the same .NET Standard version or lower.
  • Se viene individuata una libreria che dipende da una versione successiva di .NET Standard, è necessario adottare la stessa versione oppure decidere di non usare tale libreria.If you find a library that depends on a higher .NET Standard version, you either need to adopt that same version or decide not to use that library.

Definizione di .NET Standard come destinazioneTargeting .NET Standard

È possibile creare librerie .NET Standard usando una combinazione del framework netstandard e del metapacchetto NETStandard.Library.You can build .NET Standard Libraries using a combination of the netstandard framework and the NETStandard.Library metapackage. Sono disponibili esempi della definizione di .NET Standard come destinazione con strumenti .NET Core.You can see examples of targeting the .NET Standard with .NET Core tools.

Modalità di compatibilità di .NET Framework.NET Framework compatibility mode

A partire da .NET Standard 2.0 è stata introdotta la modalità di compatibilità di .NET Framework.Starting with .NET Standard 2.0, the .NET Framework compatibility mode was introduced. Questa modalità consente ai progetti .NET Standard di fare riferimento a librerie .NET Framework come se fossero compilate per .NET Standard.This compatibility mode allows .NET Standard projects to reference .NET Framework libraries as if they were compiled for .NET Standard. I riferimenti alle librerie .NET Framework non funzionano per tutti i progetti, ad esempio se la libreria usa API Windows Presentation Foundation (WPF).Referencing .NET Framework libraries doesn't work for all projects, such as libraries that use Windows Presentation Foundation (WPF) APIs.

Per altre informazioni, vedere Modalità di compatibilità di .NET Framework.For more information, see .NET Framework compatibility mode.

Librerie .NET Standard e Visual Studio.NET Standard libraries and Visual Studio

Per compilare librerie .NET Standard in Visual Studio, verificare di avere Visual Studio 2017 versione 15.3 o successiva installato in Windows oppure Visual Studio per Mac versione 7.1 o successiva installato in macOS.In order to build .NET Standard libraries in Visual Studio, make sure you have Visual Studio 2017 version 15.3 or later installed on Windows, or Visual Studio for Mac version 7.1 or later installed on macOS.

Se si devono usare le librerie .NET Standard 2.0 solo nei propri progetti, è anche possibile usare Visual Studio 2015.If you only need to consume .NET Standard 2.0 libraries in your projects, you can also do that in Visual Studio 2015. Tuttavia, deve essere installato il client NuGet versione 3.6 o successiva.However, you need NuGet client 3.6 or higher installed. È possibile scaricare il client NuGet per Visual Studio 2015 dalla pagina di download di NuGet.You can download the NuGet client for Visual Studio 2015 from the NuGet downloads page.

Confronto con le librerie di classi portabiliComparison to Portable Class Libraries

.NET Standard sostituisce le librerie di classi portabili..NET Standard is the replacement for Portable Class Libraries (PCL). .NET Standard migliora l'esperienza di creazione delle librerie portabili curando una BCL standard e assicurando di conseguenza una maggiore uniformità tra le implementazioni di .NET.The .NET Standard improves on the experience of creating portable libraries by curating a standard BCL and establishing greater uniformity across .NET implementations as a result. Una libreria che ha come destinazione .NET Standard è una libreria di classi portabile o una "libreria di classi portabile basata su .NET Standard".A library that targets .NET Standard is a PCL or a ".NET Standard-based PCL". Le librerie di classi portabili esistenti sono "librerie di classi portabili basate sul profilo".Existing PCLs are "profile-based PCLs".

.NET Standard e i profili delle librerie di classi portabili sono stati creati per scopi simili, ma presentano differenze significative..NET Standard and PCL profiles were created for similar purposes but also differ in key ways.

Analogie:Similarities:

  • Definiscono le API che possono essere usate per la condivisione di codice binario.Define APIs that can be used for binary code sharing.

Differenze:Differences:

  • .NET Standard è un set curato di API, mentre i profili delle librerie di classi portabili sono definiti da intersezioni delle piattaforme esistenti..NET Standard is a curated set of APIs, while PCL profiles are defined by intersections of existing platforms.
  • La definizione delle versioni di .NET Standard è lineare, mentre quella dei profili delle librerie di classi portabili non lo è..NET Standard linearly versions, while PCL profiles do not.
  • I profili delle librerie di classi portabili rappresentano piattaforme Microsoft, mentre .NET Standard è indipendente dalla piattaforma.PCL profiles represents Microsoft platforms while the .NET Standard is platform-agnostic.

Compatibilità della libreria di classi portabilePCL compatibility

.NET Standard è compatibile con un sottoinsieme di profili delle librerie di classi portabili..NET Standard is compatible with a subset of PCL profiles. Le versioni 1.0, 1.1 e 1.2 di .NET Standard si sovrappongono a un set di profili delle librerie di classi portabili..NET Standard 1.0, 1.1 and 1.2 each overlap with a set of PCL profiles. Questa sovrapposizione è stata creata per due motivi:This overlap was created for two reasons:

  • Consentire alle librerie di classi portabili basate su .NET Standard di fare riferimento a librerie di classi portabili basate sul profilo.Enable .NET Standard-based PCLs to reference profile-based PCLs.
  • Consentire alle librerie di classi portabili basate sul profilo di essere incluse in un pacchetto come librerie di classi portabili basate su .NET Standard.Enable profile-based PCLs to be packaged as .NET Standard-based PCLs.

La compatibilità delle librerie di classi portabili basate sul profilo è fornita dal pacchetto NuGet Microsoft.NETCore.Portable.Compatibility.Profile-based PCL compatibility is provided by the Microsoft.NETCore.Portable.Compatibility NuGet package. Questa dipendenza è obbligatoria quando si fa riferimento a pacchetti NuGet contenenti librerie di classi portabili basate sul profilo.This dependency is required when referencing NuGet packages that contain profile-based PCLs.

Le librerie di classi portabili basate sul profilo inserite in un pacchetto come netstandard sono più semplici da usare rispetto alle librerie di classi portabili basate sul profilo in pacchetti generici.Profile-based PCLs packaged as netstandard are easier to consume than typically packaged profile-based PCLs. netstandard è un pacchetto compatibile con gli utenti esistenti.netstandard packaging is compatible with existing users.

Di seguito è riportato il set di profili delle librerie di classi portabili compatibili con .NET Standard:You can see the set of PCL profiles that are compatible with the .NET Standard:

Profilo PCLPCL Profile .NET Standard.NET Standard Piattaforme PCLPCL Platforms
Profile7Profile7 1.11.1 .NET Framework 4.5, Windows 8.NET Framework 4.5, Windows 8
Profile31Profile31 1.01.0 Windows 8.1, Silverlight per Windows Phone 8.1Windows 8.1, Windows Phone Silverlight 8.1
Profile32Profile32 1.21.2 Windows 8.1, Windows Phone 8.1Windows 8.1, Windows Phone 8.1
Profile44Profile44 1.21.2 .NET Framework 4.5.1, Windows 8.1.NET Framework 4.5.1, Windows 8.1
Profile49Profile49 1.01.0 .NET Framework 4.5, Silverlight per Windows Phone 8.NET Framework 4.5, Windows Phone Silverlight 8
Profile78Profile78 1.01.0 .NET Framework 4.5, Windows 8, Silverlight per Windows Phone 8.NET Framework 4.5, Windows 8, Windows Phone Silverlight 8
Profile84Profile84 1.01.0 Windows Phone 8.1, Silverlight per Windows Phone 8.1Windows Phone 8.1, Windows Phone Silverlight 8.1
Profile111Profile111 1.11.1 .NET framework 4.5, Windows 8, Windows Phone 8.1.NET Framework 4.5, Windows 8, Windows Phone 8.1
Profile151Profile151 1.21.2 .NET Framework 4.5.1, Windows 8.1, Windows Phone 8.1.NET Framework 4.5.1, Windows 8.1, Windows Phone 8.1
Profile157Profile157 1.01.0 Windows 8.1, Windows Phone 8.1, Silverlight per Windows Phone 8.1Windows 8.1, Windows Phone 8.1, Windows Phone Silverlight 8.1
Profile259Profile259 1.01.0 .NET Framework 4.5, Windows 8, Windows Phone 8.1, Silverlight per Windows Phone 8.NET Framework 4.5, Windows 8, Windows Phone 8.1, Windows Phone Silverlight 8

Vedere ancheSee also