What is .NET Standard?

It ain't your father's .NET!

Adam Ralph

adam@adamralph.com · @adamralph (Twitter, GitHub, etc.)

github.com/adamralph/netstandard-deck

NuGet packages

FakeItEasy ✓ (1.6)

xBehave.net ✓ (1.0)

LiteGuard ✓ (1.0)

NServiceBus.RabbitMQ - not yet

.NET Standard?

¯\_(ツ)_/¯

.NET Framework

.NET Core

Xamarin.iOS

Xamarin.Android

UWP

Tizen

tizen.org

Portable Class Libraries

The Portable Class Library Fiasco

portablelibraryprofiles.apps.stephencleary.com

fiasco!

.NET Platform 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 vNext
Xamarin.iOS 10.0 10.0 10.0 10.0 10.0 10.0 10.0 vNext
Xamarin.Android 7.0 7.0 7.0 7.0 7.0 7.0 7.0 vNext
UWP 10.0 10.0 10.0 10.0 10.0 vNext vNext vNext
Windows 8.0 8.0 8.1
Windows Phone 8.1 8.1 8.1
Windows Phone Silverlight 8.0

github.com/dotnet/standard/blob/master/docs/versions.md

github.com/dotnet/standard/blob/master/docs/versions/netstandard1.4_diff.md

Compilation

Immo Landwerth @terrajobst

Runtime

Immo Landwerth @terrajobst

.NET Platform 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 vNext
Xamarin.iOS 10.0 10.0 10.0 10.0 10.0 10.0 10.0 vNext
Xamarin.Android 7.0 7.0 7.0 7.0 7.0 7.0 7.0 vNext
UWP 10.0 10.0 10.0 10.0 10.0 vNext vNext vNext
Windows 8.0 8.0 8.1
Windows Phone 8.1 8.1 8.1
Windows Phone Silverlight 8.0

github.com/dotnet/standard/blob/master/docs/versions.md

.NET Standard 1.x

Limitations

Paralysis

github.com/dotnet/standard/blob/master/docs/versions/netstandard1.4_diff.md

.NET Standard 1.6 → 2.0 diff

github.com/dotnet/standard/blob/master/docs/versions/netstandard2.0_diff.md

.NET Standard 1.x → 2.0

Limitations ✓

Paralysis

FakeItEasy

→ Castle.Core

NServiceBus.Rabbit

→ NServiceBus

→ RabbitMQ.Client

NServiceBus

→ Autofac

→ Newtonsoft.Json

Reference anything!

YouTube → Immo Landwerth → Playlists → .NET Standard → .NET Standard - What's new in 2.0

Try it

github.com/adamralph/netstandard-magic

github.com/adamralph/netcore-magic

github.com/adamralph/no-magic

Try it

.NET Core 2.0 Preview 1

Visual Studio 2017 Preview 15.3 for Windows

Visual Studio for Mac

Visual Studio Code

blogs.msdn.microsoft.com/dotnet/2017/05/10/announcing-net-core-2-0-preview-1/

Compilation

Immo Landwerth @terrajobst

Runtime

.NET Standard 1.x → 2.0

Limitations ✓

Paralysis ✓

.NET Standard 2.0

Moar APIs!

Reference anything!*

Port my package

Check compatibility

github.com/Microsoft/dotnet-apiport

Assembly Target .NET FX 4.5.2 .NET Std 1.6 .NET Std 2.0
NServiceBus.Core .NET FX 4.5.2 100% 66% 87%

What do I do?

Change

Separate

Remove

APIS and versions

apisof.net

.NET Standard / .NET Core?

¯\_(ツ)_/¯

Milestone Release Date
.NET Standard 2.0 Preview Q2 2017 (11th May!)
.NET Standard 2.0 Q3 2017

github.com/dotnet/core/blob/master/roadmap.md

Milestone Release Date
.NET Core 2.0 Preview Q2 2017
.NET Standard 2.0 Preview Q2 2017
.NET Core 2.0 Q3 2017
.NET Standard 2.0 Q3 2017

github.com/dotnet/core/blob/master/roadmap.md

github.com/davidfowl/NetStandard

.NET Standard 2.1, 2.2, 3.0?

How did I do?

docs.particular.net/tutorials/intro-to-nservicebus

particular.net/s/net-core-signup

What is .NET Standard?

It ain't your father's .NET!

Adam Ralph

adam@adamralph.com · @adamralph (Twitter, GitHub, etc.)

github.com/adamralph/netstandard-deck

@adamralph