Project K, Vnext and Owin

18
PROJECT K, VNEXT & OWIN Hrvoje Hudo Hudoletnjak

Transcript of Project K, Vnext and Owin

PROJECT K, VNEXT & OWIN Hrvoje Hudo Hudoletnjak

AGENDA

Motivation

OWIN

Project K

Demo

MOTIVATION - HISTORY

1996 – ASP

2002 – ASP.NET

2008 – ASP.NET MVC

2010 – ASP.NET Web Pages

2012 – ASP.NET Web API, SignalR

2014 – ASP.NET 5

Other stacks: Spring, Rails, Sinatra, Django, Node, Go, …

MOTIVATION

System.Web basis for * web

WebForms bundled

Regression bugs We fix one bug and open new ones

Monolithic architecture

Slow release cycle

MOTIVATION

Performance

IIS stays “IIS is the fastest web server, as long you don’t load System.Web”

Evolutionary steps: MVC, WebAPI Released out-of-band

Move from big server apps to smaller client/device centric apps, microservices architecture, mobile clients, REST

Cloud, Docker, cross-platform

Web based IDEs, lightweight IDEs (Sublime, Atom)

MOTIVATION

Simplicity

OWIN

Open Web Interface for dot Net

Defines interface between app components Decouples app from framework, host and server

Open standard

Not revolution but evolution, influenced by other stacks

OWIN SPEC

using AppFunc = Func<

IDictionary<string, object>, // Environment

Task>; // Done

OWIN/KATANA ARCHITECTURE

SERVER (http.sys, IIS)

OWIN SPECSCommunity standard

No more System.Web, just dictionary of environment variables (request, response, etc)

Async

Microsofts implementation: Katana v1-3 is in ASP.NET vCurrent

v4 is vNext

MVC 6, WebAPI, SignalR

Helios, Kestrel, Nowin

VNEXTProject K: KRE, KLR, KPM, KVM

2 frameworks: Full CLR

Core CLR: cross-platform, bin-deployable, ~11MB

Started as OWIN-based, now it’s OWIN - compatible

Faster dev cycle (features shipped as packages, framework as part of an app) DevOps responsible for security patching!

More control (zero day sec. patches, pull vs push model)

Perf: startup time, memory (>90% reduction), modular

VNEXT KIA

.SLN

.CSPROJ

GLOBAL.ASAX

ASSEMBLY.CS

WEB.CONFIG

PACKAGES.CONFIG

VNEXT

WINDOWS

IIS

.NET CLR

.NET BCL & FCL

SYSTEM.WEB

IIS

FCL, GAC, NUGET

Loose, GAC, NUGET

CSC.EXE (MSBUILD, CodeDOM)

OS

RUNTIME LOADER

RUNTIME

PLATFORM LIBRARIES

APPLICATION HOST

WEB SERVER

APPLICATION FRAMEWORKS

LIBRARIES

APPLICATION

WIN, OS X, LINUX

KRE

FULL CLR, CORE CLR

.NET BCL FCL, .NET on NUGET

KRE

IIS, HTTP.SYS, KESTREL

NUGET

NUGET

KRE (ROSLYN)

Op

en S

ourc

e

CORE CLR

.NET on NUGET

KRE

KESTREL

NUGET

NUGET

KRE (ROSLYN)

WHAT’S COOKING IN GITHUB REPO

FileSystem abstraction

Configuration & Options

DI

Caching

Middlewares: Diagnostics

Security

Data Protection

Static Files

Routing

EF, Identity, Razor, Scaffolding, DataCommon, HttpClient, WebSockets, …

NEW NAMES?

KRE = XRE

K = DOTNET

KVM = DOTNET SDK

KPM = NUGET

DEMO!

Thank you!

Hrvoje Hudo Hudoletnjak

about.me/hhrvoje

@hhrvoje