DevOpenSpace 2017 - .NET, .NET Core & .NET Standard - Und ich mal wieder mittendrin
1. Robin Sedlaczek | CTO Fairmas GmbH | .NET User Group Berlin
RobinSedlaczek Robin.Sedlaczek@live.de RobinSedlaczek.com
2. Robin Sedlaczek
RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
Community Leader
CTO der GmbH Berlin
Blogger / .NET Code Geek
Freier Autor & Sprecher
[ Entwickler.de, Heise, DotNetPro, Informatik aktuell ]
Open Source-Entwickler
[ SharpGL, Roslyn, FxCopAnalyzers, Force Feedback Programming ]
.NET User Group Berlin-Brandenburg
Fragen?
Jederzeit, immer gerne & kostenlos – Und
wahrscheinlich nicht umsonst!
35. RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
.NET STANDARD
Was ist .NET Standard?
API-Spezifikation
Enthält die Definitionen von APIs, aber
keine Implementierungen
Folgeversion enthält alle APIs der
vorherigen Version
Analogie: .NET Standard ist ein Interface,
.NET Core, Mono, .NET Framework etc. sind
Implementierungen
Library wird gegen das “Interface”
kompiliert, und kann dann auf allen
Plattformen verwendet werden, die das
Interface implementieren
NuGet:
https://www.nuget.org/packages/NETStand
ard.Library/
36. RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
.NET STANDARD PLATFORM SUPPORT
.NET Standard 1.0 1.1 1.2 1.3 1.4 1.5 1.6 2.0
.NET Core 1.0 1.0 1.0 1.0 1.0 1.0 1.0 2.0
.NET Framework 4.5 4.5 4.5.1 4.6 4.6.1 4.6.1 4.6.1 4.6.1
Mono 4.6 4.6 4.6 4.6 4.6 4.6 4.6 5.4
Xamarin.iOS 10.0 10.0 10.0 10.0 10.0 10.0 10.0 10.14
Xamarin.Mac 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.8
Xamarin.Android 7.0 7.0 7.0 7.0 7.0 7.0 7.0 8.0
Universal Windows Platform 10.0 10.0 10.0 10.0 10.0 10.0.16299 10.0.16299 10.0.16299
Windows 8.0 8.0 8.1
Windows Phone 8.1 8.1 8.1
Windows Phone Silverlight 8.0
Spalten repräsentieren die .NET
Standard-Versionen. Header verlinken
zur Dokumentation der jeweils
hinzugefügten APIs.
Zeilen zeigen an, welche Version von
einer gegebenen .NET-Plattform eine
gegebene .NET Standard-Version
erfüllt/implementiert.
Fetter Text zeigt an, seit wann eine .NET-
Plattform eine gegebene .NET Standard-
Version erfüllt/implementiert.
Das Versionsmapping reflektiert den Stand zur Veröffentlichung von des .NET Standard 2.0 Toolings.
Quelle: https://github.com/dotnet/standard/blob/master/docs/versions.md
37. RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
ENTSCHEIDUNGSHILFE
Ich benötige für meine Library viele verschiedene APIs:
Wähle höhere .NET Standard-Version!
Library kann auf weniger Plattformen eingesetzt/benutzt werden.
Ich möchte meine Library auf möglichst vielen Plattformen
benutzen:
Wähle niedrigere .NET Standard-Version!
Es stehen weniger APIs zur Verfügung.
38. RobinSedlaczek
RobinSedlaczek.com
Robin.Sedlaczek@live.de
.NET STANDARD VS. PCL PROFILES
.NET Standard ist kompatibel mit PCLs
(.NET Standard Libraries können PCLs
referenzieren, und andersherum)
Mapping zwischen PCL-Profile und .NET
Standard-Version in Tabelle abzulesen
Beispiel: Zielt existierende PCL auf .NET
Framework 4.5.1 und Windows 8.1 ab,
dann verwendet die PCL das Profil 44
Library kann dann zu .NET Standard 1.2
konvertiert werden
Das Versionsmapping reflektiert den Stand zur Veröffentlichung von des .NET Standard 2.0 Toolings.
Quelle: https://github.com/dotnet/standard/blob/master/docs/versions.md
PCL Profile .NET Standard PCL Platforms
7 1.1 .NET Framework 4.5, Windows 8
31 1.0 Windows 8.1, Windows Phone Silverlight 8.1
32 1.2 Windows 8.1, Windows Phone 8.1
44 1.2 .NET Framework 4.5.1, Windows 8.1
49 1.0 .NET Framework 4.5, Windows Phone Silverlight 8
78 1.0 .NET Framework 4.5, Windows 8, Windows Phone Silverlight 8
84 1.0 Windows Phone 8.1, Windows Phone Silverlight 8.1
111 1.1 .NET Framework 4.5, Windows 8, Windows Phone 8.1
151 1.2 .NET Framework 4.5.1, Windows 8.1, Windows Phone 8.1
157 1.0
Windows 8.1, Windows Phone 8.1, Windows Phone Silverlight
8.1
259 1.0
.NET Framework 4.5, Windows 8, Windows Phone 8.1, Windows
Phone Silverlight 8