2013-11-15 6 views
19

Sto lavorando a un'applicazione Xamarin multipiattaforma per iOS e Android, utilizzando l'eccellente framework MvvmCross di Stuart Lodge.Ci sono dei professionisti nell'usare il profilo PCL 158 su 78 per Xamarin e MvvmCross?

Microsoft ha recentemente rilasciato nuove versioni dei propri pacchetti BCL di Portable Class Library e Stuart descrive come configurare un progetto con questi in http://slodge.blogspot.com.au/2013/11/quick-run-through-using-pcls-in.html.

Quando si utilizza il profilo PCL 158, è necessario aggiungere il pacchetto BCL asincrono e apportare alcune modifiche per rendere operativo il progetto iOS.

Quando si utilizza il profilo PCL 78, sembra funzionare automaticamente, senza necessità di pacchetti BCL.

Perché si dovrebbe usare il profilo 158 sul profilo 78?

+2

E 'la mia comprensione che non è possibile attualmente usa 78 per Xamarin a causa delle differenze di riflessione tra 4 (usato da profili come 104, 158) e 4.5 (usato da 78) - ma si spera che i tag "libreria portatile" e "xamarin" attirino persone che conoscono risposte più definitive . – Stuart

risposta

15

Profile158 supporta più piattaforme. In particolare, può essere eseguito su Silverlight 5, dove non può farlo Profile78. Inoltre, Profile158 utilizza le API di riflessione "meno recenti", quindi se si dispone di codice esistente che utilizza la reflection è probabile che sia più semplice portarlo a Profile158.

A parità di altre condizioni, mi consiglia di utilizzare Profile78 a meno che non si abbia una ragione per non farlo. Dovrebbe funzionare su Xamarin, in caso contrario segnalarlo come un bug. :)

+1

Non ero a conoscenza della nuova API di reflection. Trovato un bel [post del blog MSDN] (http://blogs.msdn.com/b/dotnet/archive/2012/08/28/evolving-the-reflection-api.aspx) per chiunque sia interessato. –

+1

Sembra che Profile78 sia appena diventato il nuovo (ancora da rilasciare) predefinito -> monodevelop/master d7f8378 Jeffrey Stedfast: [Core] Cambia il profilo PCL predefinito in Profile78 – sshaw

6

Oltre al commento di Daniel Plaisted, profilo 78 manca ancora qualche tipi

  1. System.Threading.ThreadPool
  2. System.Threading.Timer

Entrambi possono essere soluzione da creando un plug-in con implementazione specifica per ogni piattaforma o facendo riferimento a un framework precedente che dispone di questi e avvolgendo questi tipi, vedere timer-in-portable-library

In aggiunta a ciò, Microsoft ha rilasciato un set potente: Immutable-Collection,
che supporta PCL ma isnt supportato in Silverlight e per questo isnt supportata nel profilo 158, ma è supportata nel profilo 78.