Che cos'è una libreria di classi portabile?


109

Su MSDN ho notato una sezione su a Portable Class Library, in Informazioni sulla versione.

Vedi System.Objectper un esempio. http://msdn.microsoft.com/en-us/library/system.object.aspx

Ho fatto una breve ricerca su Google e non sono riuscito a trovare nulla su Portable Class Library. Qualcuno qui sa cosa sia o dove potrei trovare maggiori informazioni a riguardo?


1
Avviso: abbiamo aggiunto un ulteriore supporto per la libreria di classi portabile in Visual Studio 11 Beta, disponibile la prossima settimana.
David Kean

Risposte:


84

AGGIORNAMENTO 9 ottobre 2017: Confronto articolo / contrasto .NET Core / Std / PCL AGGIORNAMENTO 23 novembre 2016: Articolo di Rick Strahl

AGGIORNAMENTO 29 ottobre 2016: .NETStandard 1-> 2 FAQ AGGIORNAMENTO 19 ottobre 2016: Questa è la migliore intervista / video che abbia mai visto riguardante .NET Standard 2.0

AGGIORNAMENTO 27 settembre 2016: il post dell'annuncio di .NET Standard 2.0 contiene più buone informazioni

AGGIORNAMENTO 6 giugno 2016: questo articolo spiega bene come il meccanismo della libreria .NETStandard sostituisce gran parte di PCL

AGGIORNAMENTO 10 luglio 2013: eccellente post sul blog di riepilogo sullo stato del sindacato PCL di @shanselman con molti esempi concreti, screenshot e collegamenti. Mette qui in ombra qualsiasi altra risposta.

AGGIORNAMENTO 20 maggio 2013:

AGGIORNAMENTO 19 aprile 2013: Eccellente riepilogo denso di come tutto si lega da Intellisense fino al tempo di esecuzione in un post sul blog di Simon Cooper


Video: episodio di Channel 9 Visual Studio Toolbox show 14 giugno 2012

Video: episodio di Channel 9 Going Deep Show del 27 settembre 2011


AGGIORNAMENTO 11 settembre 2012: buon post sul blog di alto livello con immagini, diagrammi ed esempi motivanti che mostrano come MVVM Light e RX lo usano

AGGIORNAMENTO 11 aprile 2012: Ottimo pezzo end-to-end di Scott Hanselman che arriva al punto nel discorso degli sviluppatori molto rapidamente, inclusi screenshot qui (contiene anche informazioni molto perspicaci su come pensarlo e collegamenti a campioni). Include anche una sezione delle risorse alla fine che praticamente duplica l'intero post: D

AGGIORNAMENTO 9 luglio 2012: questa serie di blog di Mircea Trofin del team di sviluppo (una parte fino ad ora) è la copertura più completa mai vista, inclusi screenshot e matrici dettagliate che mostrano le funzionalità disponibili tra le tue selezioni se ti piacciono queste cose.


Vedere il post sul blog dell'annuncio di Portable Library Tools , che inizia: -

Il CTP Portable Library Tools aggiunge un nuovo modello di progetto "Portable Class Library" a Visual Studio che può essere utilizzato per creare librerie di classi in C # e VB che vengono eseguite sulle varie piattaforme .NET senza ricompilare.

Viene utilizzato per creare una libreria di classi che si rivolge a più piattaforme (in particolare le varianti Silverlight come WP7 e SL4, ma che includono XNA su Xbox) contemporaneamente.

Vedere anche questo articolo di riepilogo di InfoQ

Vedere anche questo avviso di rilascio .

Per dettagli bassi e sporchi, vedere Linee guida per il multi-targeting per strumenti per codice gestito


2
mi ha battuto di 27 secondi; p
Marc Gravell

2
@ Marc Gravell: Non succede spesso, uffa! - ma hai battuto @Darin se questo può aiutare ...
Ruben Bartelink

4
Molti grandi dettagli, ma penso che questo potrebbe trarre vantaggio da una semplice spiegazione per qualcuno che è completamente nuovo a questo.
Lucas

@ Lucas Beh, i miei tentativi di tenerlo aggiornato lo hanno reso un wiki della comunità, quindi sentiti libero di modificare qualsiasi cosa che ritieni possa spiegarlo nel modo in cui ti senti utile (ho trovato buono l'articolo di InfoQ), ho pensato quelli in alto sono probabilmente i più
completi

1
Sarebbe meglio riassumere quegli articoli e mettere un breve qui. Attualmente, letto da 40.450 persone, con una media di 20 minuti (supponiamo) per scorrere i link, significa 561 giorni sprecati in totale.
Zafar

53
  • Il progetto Portable Class Library consente di scrivere e creare assembly gestiti che funzionano su più di una piattaforma .NET Framework. È possibile creare classi che contengono codice che si desidera condividere in molti progetti, come la logica aziendale condivisa, e quindi fare riferimento a tali classi da diversi tipi di progetti.

  • Portable Library Tools è un nuovo componente aggiuntivo di Visual Studio di Microsoft che consente di creare librerie C # e Visual Basic che vengono eseguite su una varietà di piattaforme basate su .NET senza ricompilazione.

MSDN ora ha un bell'articolo / documentazione su di esso . Puoi verificarlo e vedere cosa è supportato in .Portable Class Library Icona per libreria di classi portatile


Gli assembly seguenti sono disponibili all'interno di un progetto di libreria di classi portabile:

  • 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)

È possibile trovare quali membri sono supportati dal progetto Libreria di classi portabile negli argomenti di riferimento per la Libreria di classi .NET Framework. Nella tabella dei membri di una classe, accanto ai membri supportati viene visualizzata la seguente icona della libreria di classi portabile.

Icona per la libreria di classi portabile (Icona per la libreria di classi portabile che vedrai in MSDN Docs.)


Per creare un progetto di libreria di classi portabile devi avere:

1 . Visual Studio 2010 Service Pack 1 (SP1) (programma di installazione da 795 KB, ISO 1,48 GB )

2 . CTP per strumenti di libreria portatile (1,38 MB)

Dopo aver installato gli aggiornamenti di cui sopra, otterrai un nuovo modello di progetto per la libreria di classi portabile:

inserisci qui la descrizione dell'immagine

(Contenuti sopra presi da MSDN)

AGGIORNAMENTO 2014:

Class Library Portable fa parte di Visual Studio 2014.


Per quanto riguarda l'ultimo aggiornamento, non credo ci sia Visual Studio 2014, ma PCL sembra essere incluso in Visual Studio 2013. (Almeno l'edizione della community che ho)
Jake

7

È una libreria di classi che può essere eseguita su varie piattaforme .


Posso inviare il mio .csproj portatile a persone che non hanno questi strumenti installati?
acido lisergico

2
Per eseguire un'applicazione della libreria di classi portabile, è necessario che sul computer sia installato un aggiornamento per .NET Framework 4. Questo aggiornamento viene installato automaticamente con Visual Studio 2010 SP1, quindi è possibile eseguire l'applicazione Libreria di classi portabile senza ulteriori modifiche sul computer utilizzato per sviluppare l'applicazione. Per eseguire l'applicazione su un computer diverso, è possibile installare l'aggiornamento manualmente.
Jowen

2

Ho trovato Documents un po 'difficile da capire, quindi ho cercato di rendere le cose un po' chiare qui.

La libreria di classi portatile è progettata per consentire ai programmatori di creare progetti che verranno eseguiti su più piattaforme come Xbox 360, Windows Phone, Silverlight e .NET Framework (4 e versioni successive). questo viene fatto omettendo alcune API specifiche che non sono supportate dalle piattaforme di destinazione scelte che ti faranno perdere alcune funzionalità disponibili di .Net Framework.

Quindi possiamo dire che la scelta tra Portable class librarye Normale class librarydipende dalle piattaforme di destinazione del tuo progetto. se vuoi che la tua app funzioni su Xbox e computer desktop con sistema operativo Windows, è meglio risparmiare tempo e utilizzare PCL, a parte la libreria di classi normale andrà bene.

per maggiori informazioni visita la pagina della documentazione .

Ora c'è una nuova tecnologia open source chiamata .Net Standard che sostituirà PCL. .NET Standard risolve il problema della condivisione del codice per gli sviluppatori .NET su tutte le piattaforme portando tutte le API che ti aspetti e ami negli ambienti di cui hai bisogno: applicazioni desktop, app e giochi mobili e servizi cloud:

  • .NET Standard è un insieme di API che tutte le piattaforme .NET devono implementare. Questo unifica le piattaforme .NET e impedisce la futura frammentazione.
  • .NET Standard 2.0 verrà implementato da .NET Framework, .NET Core e Xamarin. Per .NET Core, questo aggiungerà molte delle API esistenti che sono state richieste.
  • .NET Standard 2.0 include uno shim di compatibilità per i binari di .NET Framework, aumentando in modo significativo il set di librerie a cui puoi fare riferimento dalle tue librerie .NET Standard.
  • .NET Standard sostituirà le librerie di classi portatili (PCL) come strumento per la creazione di librerie .NET multipiattaforma.

Puoi vedere la definizione dell'API .NET Standard nel repository dotnet / standard su GitHub.

Riferimento

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.