Ich arbeite an der Erweiterung der Anzahl der unterstützten Plattformen für meine App, es unterstützt .NET4/Windows Store/Windows Phone, aber ich hoffe, auch Mono für Android und iOS. Ich habe alle Geschäftslogik, Modelle und Modelle auf Portable Class Libraries (PCL) übertragen, aber es ist ein großes Dilemma, auf welche Teilmenge von Plattformen ich zielen sollte. Jede Kombination bringt etwas zum Scheitern. Hier sind die Ergebnisse für 4 Plattformen, die ich verwenden könnte:Suche nach dem besten PCL-Profil für Cross-Plattform-Entwicklung
Profil 78 (NET45 + WP8 + Store): kein Problem mit TPL, erwarten/async und Unterstützung für CallerMemberName Attribut (in BindableBase Ansicht Modell Basisklasse). Aber das Mono.Android-Projekt, das eine solche Bibliothek referenziert, kann sich nicht über die nicht vorhandene System.Runtime.dll beschweren, auf die verwiesen werden sollte.
Profil 104 (NET45 + SL4 + WP75 + Store): erwarten/async nicht funktionieren, CallerMember Name nicht gefunden, aber wenn ich alle Verweise auf sie entfernen, baut Android Projekt gut.
Profil 147 (NET403 + SL5 + WP8 + Store): erwarten/async nicht funktionieren, CallerMember Name nicht gefunden, aber wenn ich alle Verweise auf sie entfernen, Android-Projekt baut gut.
Profil 158 (NET45 + SL5 + WP8 + Store): erwarten/async nicht funktionieren, CallerMember Name nicht gefunden, aber wenn ich alle Verweise auf sie entfernen, Android-Projekt baut gut.
Also ich bin mir nicht wirklich sicher, was ich wählen soll. Die Profile 78, 104, 147 sind begrenzt, das Profil 78 ist das einzige, das sowohl awaid/async als auch CallerMemberName BindableBase unterstützt, aber es scheitert an Android, das sich über System.Runtime.dll beschwert. Wenn Sie also wissen, welches PCL-Profil für PCL-Targeting am besten geeignet ist, teilen Sie uns Ihre Meinung mit.
Achten Sie darauf, 'Microsoft.Bcl.Async' zu verwenden (was von' Microsoft.Bcl' abhängt). Diese fügen den Profilen 104/147/158 die Unterstützung async/await/CallerMemberName hinzu. –
Microsoft.Bcl.Async kann (bisher) nur auf Windows-Plattform verteilt werden. Kein Mono. –
@VagifAbilov Lizenzierung wurde auf Microsoft.Bcl.Async geändert http://www.hanselman.com/blog/PortableClassLibrariesJustGoTRALLYUsefulWithNewLicensingChanges.aspx –