Vorteile von netcoreapp2.0 vs netstandard2.0 für eine Bibliothek Projekt
Habe ich eine bereits vorhandene dotnet 4.6.2 Lösung, umfasst von zwei äußeren Projekte (portiert zu werden zur gleichen Zeit) und eine gemeinsame core
Bibliothek.
Brauche ich, um wählen Sie die core-assembly TargetFramework
, das könnte entweder netcoreapp2.0
oder netstandard2.0
.
Da es nicht ausführbar ist, oder auf die verwiesen wird von einem externen Projekt, gibt es irgendwelche Vorteile der einen oder der anderen?
- Sie bekommen das Programm der Bibliothek mit den Händen gebunden hinter Ihrem Rücken. Sicherzustellen, dass Sie nicht code schreiben, der ausgeführt wird nicht auf einer anderen Plattform. Ob das ein Vorteil oder eine Verbindlichkeit ist etwas, das Sie unweigerlich finden Sie heraus, indem Sie sich.
- Ich Schreibe ein backend-Buchhaltungs-system für eine bank - in meinem bestimmten Fall, ich wäre sehr überrascht, wenn es endet in einer xamarin oder UWP-app! So lange, wie es funktioniert auf windows-und linux-Container, ich werde glücklich sein 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Unterscheiden Sie sich in der Natur:
Jede version von der .NET-Core-Bibliotheken implementiert (mindestens) einer bestimmten version von der .NET Standard, und eine vollständige Tabelle finden Sie in der .NET Standard-Dokumentation. Jetzt, die neuesten Versionen sind in sync (2.0 - 2.0), aber dies war nicht und wird nicht immer wahr sein.
Den .NET Core Libraries sind eigentlich immer eine Obermenge der APIs definiert in der entsprechenden version der .NET Standard. Es gibt immer Typen und Mitglieder in die .NET-Core-Bibliotheken, die (noch?) nicht Teil der .NET Standard. Microsoft veröffentlicht namespace-by-namespace Vergleiche der verfügbaren APIs.
Ihre Bibliothek kann die Nutzung einer API, die bisher noch nicht standardisiert, die .NET Standard (oder vielleicht nie), aber bereits in .NET-Core-Bibliotheken. Als Beispiel könnten Sie bei Verwendung von Typen aus dem System.Drawing-namespace, der wird bald verfügbar sein .NET-Core-Bibliotheken, aber nicht Teil der .NET-Standard 2.0.
So, indem Sie netcoreapp2.0 über netstandard2.0, Sie erhalten Zugang zu einer größeren API, auf Kosten der Kompatibilität.
Auf einen Allgemeinen Hinweis, Sie sollten immer versuchen, die Ziel der meisten tragbaren Rahmen (hier netstandard).
Wenn es nicht eine option für Sie, die nächste beste Sache wäre, um cross-target mehrere frameworks aus einer einzigen Bibliothek, wie hier beschrieben: Wie Sie multi-target ein .NET Core class library mit csproj?. Viele .NET Core APIs fehlen .NET Standard sind auch in den (voll) .NET Framework.
netstandard
.netcoreapp
Bibliotheken nicht wiederherstellen auf Xamarin oder .NET-Framework.netcoreapp
in einer Bibliothek, kann die Bibliothek nur verwendet werden, auf der x-plat .NET-Core, aber nicht Xamarin, Unity3D, Mono-oder normal .NET-Framework. Das ist vielleicht okay für den Fragesteller aber nicht im Allgemeinen. Die meisten tragbar istnetstandard1.0
mit der kleinsten API-Satz.NetStandard ist neu empfohlen library-format ermöglicht den Austausch zwischen verschiedenen frameworks(NetFramwwork, NetCore, Xamarin) so das wäre die Antwort.
https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/
netstandard
. Microsoft hält dienetstandard
als die Formalisierung der BCL. Probieren Sie es einfach.