Microsoft is working hard to modernize the .NET Platform. There are great new frameworks and tools coming, such as .NET Core and ASP.NET Core. The amount of new things is overwhelming, with multiple .NET Platforms (.NET Framework, Unified Windows Platform, .NET Core), multiple runtimes (CoreCLR, CLR, CoreRT), multiple compilers (Roslyn, RyuJIT, .NET Native and LLILC) and much more. This session will bring you up to speed on all this new Microsoft technology, focusing on .NET Core.
5. .NET Framework .NET Core
Next gen JIT (RyuJIT)
SIMD
Runtime
Components Compilers
Languages innovation
.NET Compiler Platform
.NET Core 1.0 Libraries
.NET Framework 4.6 Libraries
NuGet packages
Xamarin
6. Runtimes
• Cross-platform
implementations of CoreCLR
• CoreRT for AOT scenarios
CoreFX libraries
• Standards based BCL
• Platform and OS abstractions
• Delivered in NuGet packages
• Shared Framework
SDK
• Command-line tools
• Side by side installation
• C# and F#
• Driver dotnet.exe
ASP.NET Core
App Model
Universal Windows Apps
Model
Any other
app model
CoreFX: Unified Base
Class Library
Runtime Adaption Layer
.NET Native Other RuntimeCore CLR
10. frameworks TFMs
Linux
• Red Hat Enterprise Linux 7.2
• CentOS 7.1+
• Debian 8.2+
• Fedora 23
• Linux Mint 17.1, 18
• OpenSUSE 13.2, 42.1
• Oracle Linux 7.1
• Ubuntu 14.04 & 16.04
Mac OS X 10.11, 10.12
Windows
• Windows 7+ / Server 2012 R2+
• Windows Nano Server TP5
• Windows Server Core
• Windows Server 2016
27. .NET Framework .NET Core
Next gen JIT (RyuJIT)
SIMD
Runtime
Components Compilers
Languages innovation
.NET Compiler Platform
.NET Core 1.0 Libraries
.NET Framework 4.6 Libraries
NuGet packages
Xamarin
28. Primitives • Collections • Reflection • Interop • LinqCORE
Threads • Thread Pool • TasksTHREADING
Files • Compression • MMFIO
Sockets • Http • Mail • WebSocketsNETWORKING
BinaryFormatter • Data Contract • XMLSERIALIZATION
XLinq • XML Document • XPath • Schema • XSLXML
Abstractions • Provider Model • DataSetDATA
Version #APIs Growth %
1.x 13,501 +1%
2.0 32,638 +142%
29. My Standard Library 1.x
.NET Standard based
library
.NET Framework
targeted library
Portable Class Library
.NET FRAMEWORK .NET CORE XAMARIN
Via Portability
Via Compatibility Shim
Legend
Application Type
Is able to reference
My Standard Library 2.x
32. .NET Core
• Allows your
applications to
span multiple
operating systems
• Lightweight
package-based
and
cloud/container
optimized
.NET Standard
• Incremental
specification of
.NET API surface
• Will make your
class library
portable to
multiple .NET
platforms
Future
• .NET Standard 2.0
provides a richer
API surface and
better migration
story
• Tooling and IDEs
will catch up
Innovation: Innovate and deliver much more faster
Openness enriches the platform and the community
On any device and platform
Driver dotnet.exe is what the team calls the
Key observations:
.csproj is back
New MSBuild implementation for .NET Core projects
Definitions for:
Targets: targeted .NET platforms and standards
Dependencies: required assets from NuGet packages
Runtimes: specific operating systems
Command-line tooling
.NET CLI: dotnet.exe and extensions
NETStandard Library has a relation to .NET Standard specification, but is not same
https://docs.microsoft.com/en-us/dotnet/articles/core/packages
https://docs.microsoft.com/en-us/dotnet/articles/standard/library
https://github.com/dotnet/standard/blob/master/docs/versions.md#mapping-pcl-profiles-to-net-standard
.NET Native does AOT compilation
Targets CoreRT
https://blogs.msdn.microsoft.com/alphageek/2016/10/13/native-compilation-why-jit-when-you-can-codegen/
API surface defined in C#
Doesn’t include application platforms
Each PCL is targeting a specific set of platforms
Not compatible with newer platforms
Hard to understand compatibility relationships
Projects targeting version X.Y can reference libraries & projects targeting any version between 1.0 and X.Y
From that platform you can reference libraries up to that version