.NET Core, .NET Standard & ASP.NET Core - PGK · & ASP.NET Core Jürgen Gutsch / YooApplications AG...

31
.NET Core, .NET Standard & ASP.NET Core Jürgen Gutsch / YooApplications AG www.yooapps.com

Transcript of .NET Core, .NET Standard & ASP.NET Core - PGK · & ASP.NET Core Jürgen Gutsch / YooApplications AG...

.NET Core, .NET Standard & ASP.NET CoreJürgen Gutsch / YooApplications AG

www.yooapps.com

Wer bin ich?

.NET süchtiger Web Developer seit 2001

3x Microsoft MVP für Visual Studio & Development Technologies

Blogger auf http://asp.net-hacker.rocks/

Autor mehrerer Artikel in bekannten .NET Magazinen

Leiter der .NET User Group Basel und der INETA Deutschland

Wo arbeite ich?

Als Entwickler, Berater und Trainer

YooApplications AG am Äschenplatz in Basel http://yooapps.com

DIE Full-Service-Agentur in Basel Konzepte (UX) => Design (UI) => Entwicklung

UX/UI,

Web-, Mobile-, Enterprise-Entwicklung,

Beratung & Schulung

Agenda heute Abends

1. .NET Core

2. .NET Standard

3. ASP.NET Core

Was ist .NET Core?

„.NET Core is the modular and high performance implementation of .NET for creating web applications and services that run on Windows, Linux and Mac. It is open source and it can share the same code with .NET Framework and Xamarin apps.“

“.NET Core is a blazing fast, lightweight and modular platform for creating web applications and services that run on Windows, Linux and Mac.”

Was ist .NET Core?

Was ist .NET Core?

Was ist .NET Core?

Was ist .NET Core?

Komplett neu entwickeltes .NET Framework: „CoreFX“

Komplett neu entwickelte .NET Run-Time: „CoreCLR“

Plattformunabhängig Windows, Linux, MacOS, Tizen

PCs, R-PI, Arduino, Samsung-TV,

Komplett Open Source

Leichtgewichtig

Intuitive .NET CLI

.NET Core Versionen

.NET Core 1.0 wurde released am 27 June 2016 Arbeitet mit VS2015 und VS2017

.NET Core 2.0 wurde released am 14 August 2017 Nur VS2017 (15.3)

Demo

.NET Core SDK

.NET CLI

.NET Core im Visual Studio

.NET Core Quellen

.NET Core auf GitHubhttps://github.com/dotnet/core

Getting Started:https://www.microsoft.com/net/core#windowscmd

Dokumentation:https://docs.microsoft.com/en-us/dotnet/core/

Downloads:https://www.microsoft.com/net/download

Was ist der .NET Standard?

.NET API Spezifikation

Vereinheitlicht die APIs aller .NET Plattformen .NET Framework, .NET Core, Xamarin, (UWP)

Aktuell 2.0

Je größer die Versionsnummer, desto größer die API

Stellt Interop und kompatibilität zwischen den Plattformen her.

„.NET Standard solves the code sharing problem for .NET developers by bringing all the APIs that you expect and love across the environments that you need: desktop applications, mobile apps & games, and cloud services.“

.NET bisher — App Models und Libraries

.NET bisher — Code wiederverwenden

.NET ab heute

.NET ab heute — Code wiederverwenden

Unterschied zu Portable Class Libraries (PCL)

PCLs were an after thought, i.e. each platform could

decide which APIs to includes No systematic approach to versioning

Computed intersection profiles

Each PCLs is targeting a specific set of platforms Not compatible with newer platforms

Hard to understand compatibility relationships

Platform 3Platform 1

Platform 2

Versionierung im .NET Standard?

Higher versions incorporate all APIs from previous versions. Projects targeting version X.Y can reference

libraries & projects targeting any version between 1.0 and X.Y

Concrete .NET platforms implement a specific version of .NET Standard From that platform you can reference

libraries up to that version

2.0

1.61.51.41.3

1.21.1

1.0

Neue APIs in .NET Standard 2.0

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

Wie arbeitet der .NET Standard?

.NET Standard is represented by The NuGet package NetStandard.Library which contains the reference

assembly netstandard.dll

At build time .NET Standard bridges references to existing .NET Framework and PCL

assemblies via type forwarding

At runtime Each platform provides an implementation for netstandard.dll that type

forwards to its implementation

Was kann man vom .NET Standard referenzieren?

My Standard Library 2.x

.NET Standard Library .NET Framework LibraryPortable Class Library

.NET FRAMEWORK .NET CORE XAMARIN

Via Portability

Via Compatibility Shim

Legend

Application Type

Is able to reference

Platformspezifische APIs & .NET Standard

.NET Standard (mostly) only contains APIs that will work everywhere MSFT generally avoid adding large chunks of APIs that don’t work everywhere

A small set of APIs will throw PlatformNotSupportedException

Platform specific APIs sit on top of .NET Standard & you can add references to them Examples: Registry, Reflection Emit, Access Control, Windows Identity

You’ll become less portable

.NET Core und .NET Standard

.NET Core is an implementation of the .NET Standard

They are fully separated, e.g. different GitHub repositories

.NET Standard updates are coordinated across all .NET implementers There is a .NET Standard review board

.NET Core can be updated independently Used by us to experiment and accelerate innovation

Demo

.NET Standard Library

.NET Standard Kompatibilität

.NET Standard Resources

GitHub Repository:https://github.com/dotnet/standard

FAQhttps://aka.ms/netstandardfaq

Dokumentation:https://docs.microsoft.com/en-us/dotnet/standard/net-standard

Was ist ASP.NET Core?

Komplett neu entwickeltes Web Entwicklungs Framework https://docs.microsoft.com/en-us/aspnet/core/

Gebaut mit .NET Standard

Komplett Open Source https://github.com/aspnet/home

Leichtgewichtig und Plattformunabhängig

Erweiterbar und Veränderbar

Läuft auf .NET Core und .NET Framework

Hosting

Kestrel neu entwickelter WebServer, basiert auf LibuV Nicht direkt ins Netz hängen

IIS/Nginx Als Reverse-Proxy vor dem Kestrel

Self hosted In jeder App

WebListener Alternative zu Kestrel

Demo

ASP.NET Core „from scratch“

ASP.NET Core in der CLI

ASP.NET Core im Visual Studio

ASP.NET Core Resourcen

ASP.NET auf GitHubhttps://github.com/aspnet/Home

Dokumentationhttps://docs.microsoft.com/en-us/aspnet/core/

Wie erreichen Sie mich?

Mail: [email protected]

Twitter: @sharpcms

Facebook: juergen.gutsch

Blog: http://asp.net-hacker.rocks

Code: https://github.com/juergengutsch

More: https://about.me