project k, vnext and owin
TRANSCRIPT
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)
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 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
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, …