Sto lavorando per estendere il numero di piattaforme supportate per la mia app, utilizzato per supportare .NET4/Windows Store/Windows Phone, ma spero di coprire anche Mono per Android e iOS. Ho messo tutte le logiche di business, i modelli e i modelli di visualizzazione in librerie di classi portatili (PCL), ma è un grosso dilemma quale sottoinsieme di piattaforme dovrei scegliere. Ogni combinazione fa fallire qualcosa. Ecco i risultati per 4 piattaforme che potrei utilizzare:Ricerca del miglior profilo PCL per lo sviluppo multipiattaforma
Profilo 78 (NET45 + WP8 + Store): nessun problema con TPL, attesa/asincrona e supporto per l'attributo CallerMemberName (utilizzato nella classe base del modello di visualizzazione BindableBase). Ma il progetto Mono.Android che fa riferimento a tale libreria non riesce a creare lamentele su System.Runtime.dll non presente che dovrebbe essere referenziato.
Profilo 104 (NET45 + SL4 + WP75 + Store): attendere/asincrono non funzionano, nome CallerMember non trovato, ma se rimuovo tutti i riferimenti ad essi, il progetto Android si integra perfettamente.
Profilo 147 (NET403 + SL5 + WP8 + Store): attendere/asincrono non funzionano, nome CallerMember non trovato, ma se rimuovo tutti i riferimenti ad essi, il progetto Android si integra perfettamente.
Profilo 158 (NET45 + SL5 + WP8 + Store): attendere/asincrono non funzionano, nome CallerMember non trovato, ma se rimuovo tutti i riferimenti ad essi, il progetto Android si integra perfettamente.
Quindi non sono proprio sicuro di cosa scegliere. I profili 78, 104, 147 sono limitati, il profilo 78 è l'unico che supporta sia Attesa/Async che CallerMemberName utilizzato BindableBase, ma non riesce su Android lamentandosi di System.Runtime.dll. Quindi, se hai esperienza con quale profilo PCL è la migliore corrispondenza per il targeting PCL Mono, per favore condividi le tue opinioni.
Assicurarsi di utilizzare 'Microsoft.Bcl.Async' (che dipende da' Microsoft.Bcl'). Questi aggiungono il supporto async/await/CallerMemberName ai profili 104/147/158. –
Microsoft.Bcl.Async può essere distribuito solo su piattaforma Windows (finora). No mono. –
La licenza di @VagifAbilov è stata modificata su Microsoft.Bcl.Async http://www.hanselman.com/blog/PortableClassLibrariesJustGotREALLYUsefulWithNewLicensingChanges.aspx –