SlideShare a Scribd company logo
INTRO TO .NET CORE
.NET CORE, ASP.NET CORE, NETSTANDARD, RUNTIMES
AGENDA
• WHAT IS .NET CORE?
• WHAT IS ASP.NET CORE?
• WHAT IS NETSTANDARD?
• GETTING STARTED
WHAT IS .NET CORE?
WHAT IS .NET CORE?
A VERSION OF .NET THAT:
• IS X-PLATFORM
• FLEXIBLE DEPLOYMENT
• OSS
• COMMAND LINE FIRST TOOLING
• SMALLER THAN, BUT COMPATIBLE WITH FULL FRAMEWORK
WHAT IS .NET CORE?
WHAT ARE THE COMPONENTS?
UWP Apps | Console Apps | Web Apps
CoreFx (BCL)
Runtime Adaption Layer
.NET Native | CoreClr
WHAT IS .NET CORE?
WHAT ARE THE COMPONENTS?
UWP Apps | Console Apps | Web Apps
CoreFx (BCL)
Runtime Adaption Layer
.NET Natvie CoreClr
X-PLATFORM
• WINDOWS
• DESKKTOP
• SERVER
• NANOSERVER
• LINUX
• RED HAT ENTERPRISE LINUX
• UBUNTU
• DEBIAN
• FEDORA
• CENTOS
• OPENSUSE
• MAC
FLEXIBLE DEPLOYMENT
NOT IN GAC
FLEXIBLE DEPLOYMENT
App 1
.NETCore v. X
App 2
.NETCore v. Y
App 3
.NETCore v. Z
FLEXIBLE DEPLOYMENT
App 1 App 2 App 3
.NET Core installed on server
SMALLER FOOTPRINT
…MAYBE:
• OPT-IN THROUGH NUGETS
• OR GO WITH .NETCOREAPP
• * SEE ASP.NET CORE INTRO :)
COMMAND LINE – WHY?
• AUTOMATION
• CROSS PLATFORM
• VISUAL STUDIO INDEPENDENCE
• WELL WORTH LEARNING
ps> dotnet
OSS / OWNERSHIP / SUPPORT
• EVERYTHING ON GITHUB
• MIT LICENSE (CORECLR, COREFX, CLI), APACHE (ROSLYN, ASP.NET)
• OWNED AND GOVERNED BY MICROSOFT
• ACCEPTS CONTRIBUTIONS
BONUS: PROJECT SYSTEM
MODERNIZED CSPROJ
• EDITOR / HUMAN FRIENDLY
• FRAMEWORK TARGETS
• APP MODEL
• NUGET DEPENDENCIES
• CAN BE USED WITH FULL FX
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/dev
<Import Project="$(MSBuildExtensionsPath)$(MSBuildToolsVersion)M
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp1.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Compile Include="***.cs" />
<EmbeddedResource Include="***.resx" />
</ItemGroup>
<ItemGroup Condition=" netcoreapp1.0">
<PackageReference Include="Microsoft.NETCore.App" Version="1.0.1
<PackageReference Include="Microsoft.NET.Test.Sdk“ Version="15.0
<PackageReference Include="xunit" Version="2.2.0-beta3-build3402
<PackageReference Include="xunit.runner.visualstudio" Version="2
</ItemGroup>
<Import Project="$(MSBuildToolsPath)Microsoft.CSharp.targets" />
</Project>
ASP.NET CORE
HIGHLIGHTS
• MODULARIZED
• FAAAAAASSSST
• PIPELINE, MIDDLEWARE
• UNIFIED MVC AND WEBAPI
• OSS
• .NET CORE BASED
• CROSS PLATFORM
• COMMAND LINE
• SIDE-BY-SIDE DEPLOY
• LESS DEPENDENT ON VISUAL STUDIO
ASP.NET TODAY
IIS
.NET BCL
ASP.NET
ASP.NET MVC ASP.NET Web API
HTTP
Modules
ASP.NET WebForms
HTTP
Handlers
Request
pipeline
HTTP
Context
et al.
Caching
Session
State
ASP.NET CORE – GUIDING PRINCIPLES
• NO DEPENDENCY ON SYSTEM.WEB
• THIS IS HUGE
• CROSS PLATFORM
• LOW FRICTION
(THIS IS MY INTERPRETATION)
ASP.NET – THINGS NOT IN CORE
IIS
.NET BCL
ASP.NET
ASP.NET MVC ASP.NET Web API
HTTP
Modules
ASP.NET WebForms
HTTP
Handlers
Request
pipeline
HTTP
Context
et al.
Caching
SessionS
tate
ASP.NET – AND THINGS CHANGED IN CORE
IIS
.NET BCL
ASP.NET
ASP.NET MVC ASP.NET Web API
HTTP
Modules
ASP.NET WebForms
HTTP
Handlers
Request
pipeline
HTTP
Context
Caching
SessionS
tate
ASP.NET CORE
Kestrel
.NET Core | Full Fx
ASP.NET Core
ASP.NET MVC
(WebApi, Razor)
FRONTEND
Bower GRUNT
DEPLOYMENT MODEL
Reverseproxy
IIS/NGINX
Kestrel
.NET Core
ASP.NET Core
ASP.NET MVC
(WebApi, Razor)
ASP.NET CORE: PIPELINE
• USE PIPES AND FILTERS
• A CONTEXT IS PIPED THROUGH MIDDLEWARE
25
ASP.NET CORE: PIPELINE
26
Kestrel Application
ASP.NET CORE: PIPELINE
27
Kestrel
Throttling
Middleware
OAuth
Middleware
Application
MIDDLEWARE
• MIDDLEWARE TRANSFORMS THE REQUEST AND RESPONSE
• TAKES A CONTEXT IN
• CAN CALL NEXT STEP IN PIPELINE
• OR NOT
• UNIFORM INTERFACE
• COMPOSABLE , REARRANGEABLE
28
MIDDLEWARE
• 2 TYPES
• OWIN
• ASPNET CORE
29
OWIN: MIDDLEWARE ECOSYSTEM
• SECURITY:
• OAUTH, TWITTER, FACEBOOK, GOOGLE, …
• CLAIMSTRANFORMATIONS
• REQUIRESSL
• SCOPEVALIDATION
• …
• WEB:
• ROUTING
• LIMITS
• SITEMAP
• STATICFILES
• MONITORING
• RAYGUN
• SERILOG
• …
30
.NET STANDARD
.NET STANDARD
“TO PROVIDE A MORE CONCRETE GUARANTEE OF BINARY PORTABILITY TO FUTURE .NET-CAPABLE
PLATFORMS WITH AN EASIER-TO-UNDERSTAND PLATFORM VERSIONING PLAN.”
.NET STANDARD VS PCL
• PCL STATES PLATFORMS
• PORTABLE-NET45+WP80+WIN8+WPA81
• .NET PLATFORM STANDARD
• LIBS STATE REQUIRED MINIMAL API LEVEL
• PLATFORMS STATED IMPLEMENTED API LEVEL
• NETSTANDARD1.3
• FORWARD COMPATIBILITY
.NET STANDARD
• CHOOSE API LEVEL
• COMPILE AGAINST REFENCE .DLLS
• RUN AGAINST TARGET DEPENDENT IMPLEMENTATIONS
34
Intro to.net core   20170111
GETTING STARTED
GETTING STARTED
• BOTTOM UP
• PORT LOWEST LEVEL LIBS TO .NET PLATFORM STANDARD 1.6
• PORT OWIN MIDDLEWARE AWAY FROM KATANA
• (USE LIBOWIN INSTEAD)
• BUILD SERVER => NUGET PACKAGES
GETTING STARTED
• FIND A LOW IMPACT SERVICE, USE IT TO DRIVE
• PROD ENVIRONMENT
• DEPLOYMENT PIPELINE
GETTING STARTED
• WHEN?
• .NET CORE AND ASP.NET CORE ARE 1.1 NOW
• TOOLING IS PREVIEW NOW
• Q2 2017:
• TOOLING RTM
• .NET CORE 2.0 (FASTER)
• .NETSTANDARD 2.0 (LOTS AND LOTS OF APIS)
• ASP.NET 1.2 (SIGNALR, FASTER, SECURITY)
GETTING STARTED
• FOLLOW ULTRA SHORT TUTORIAL HERE:
HTTPS://WWW.MICROSOFT.COM/NET/CORE#WINDOWSCMD
• MORE INFO HERE:
HTTPS://DOCS.MICROSOFT.COM/EN-US/DOTNET/ARTICLES/CORE/
• BUT YOU TO DIG DEEP … YOU STILL GO TO GITHUB
WRAP UP
WHY DO I CARE?
• DOTNET CLI AND CROSS PLATFORM:
• USE LINUX IN PRODUCTION
• BROADER POTENTIAL DEVELOPER CROWD
• DOTNET AS ENABLER FOR YOUR OWN TOOLING
• DOTNET AS ENABLER FOR 3RD PARTY / OSS TOOLING
WHY DO I CARE?
• MODULARIZED .NET
SMALLER FOOTPRINT ON DISK AND MEMORY (!)
FASTER DEVELOPMENT FROM MS ON SOME PARTS
SIDE-BY-SIDE ON DIFFERENT VERSIONS
WHY DO I CARE?
• MIDDLEWARE
 NICE MODULAR WAY OF WORKING
 SEPARATION OF INFRASTRUCTURE AND APPLICATION
• MORE OWIN
 BETTER OPPORTUNITY FOR .NET OSS
 OWIN MIDDLEWARE ECO SYSTEM WILL BLOSSOM
 NICE MODULAR WAY OF WORKING
WHY DO I CARE?
• MVC
 UNIFIES MVC AND WEBAPI PROPERLY
 MOVES CLOSER TO “MODERN” FRONTEND DEVELOPMENT

More Related Content

What's hot (20)

PPTX
Expose BizTalk to the world (ACSUG)
Wagner Silveira
 
PDF
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
AWS Vietnam Community
 
PPTX
Cloudsolutionday 2016: Docker & FAAS at getvero.com
AWS Vietnam Community
 
PPTX
Couchbase Connect 2016: Monitoring Production Deployments The Tools – LinkedIn
Michael Kehoe
 
PDF
URP? Excuse You! The Three Metrics You Have to Know
confluent
 
PPTX
Micro Services Architecture
Ranjan Baisak
 
PPTX
Meetup #3: Migrating an Oracle Application from on-premise to AWS
AWS Vietnam Community
 
PDF
NGINX Amplify: Monitoring NGINX with Advanced Filters and Custom Dashboards
NGINX, Inc.
 
PPTX
Reducing MTTR and False Escalations: Event Correlation at LinkedIn
Michael Kehoe
 
PPTX
What's new in ASP.NET vNext
Gunnar Peipman
 
PPTX
3 Ways to Automate App Deployments with NGINX
NGINX, Inc.
 
PPTX
Kafka Summit NYC 2017 - Apache Kafka in the Enterprise: What if it Fails?
confluent
 
PDF
Micro Services - Small is Beautiful
Eberhard Wolff
 
PDF
Boundary for puppet @ puppet conf2012
Boundary
 
PDF
Developing Resilient Cloud Native Apps with Spring Cloud
Dustin Ruehle
 
PDF
Kafka meetup seattle 2019 mirus reliable, high performance replication for ap...
Nitin Kumar
 
PPTX
PP_Eric_Gandt
Eric Gandt
 
PPTX
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Tin Linn Soe
 
PDF
Orchestrator for QlikView: add-on product description
Marco Zampieri
 
ODP
Developing Microservices using Spring - Beginner's Guide
Mohanraj Thirumoorthy
 
Expose BizTalk to the world (ACSUG)
Wagner Silveira
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
AWS Vietnam Community
 
Cloudsolutionday 2016: Docker & FAAS at getvero.com
AWS Vietnam Community
 
Couchbase Connect 2016: Monitoring Production Deployments The Tools – LinkedIn
Michael Kehoe
 
URP? Excuse You! The Three Metrics You Have to Know
confluent
 
Micro Services Architecture
Ranjan Baisak
 
Meetup #3: Migrating an Oracle Application from on-premise to AWS
AWS Vietnam Community
 
NGINX Amplify: Monitoring NGINX with Advanced Filters and Custom Dashboards
NGINX, Inc.
 
Reducing MTTR and False Escalations: Event Correlation at LinkedIn
Michael Kehoe
 
What's new in ASP.NET vNext
Gunnar Peipman
 
3 Ways to Automate App Deployments with NGINX
NGINX, Inc.
 
Kafka Summit NYC 2017 - Apache Kafka in the Enterprise: What if it Fails?
confluent
 
Micro Services - Small is Beautiful
Eberhard Wolff
 
Boundary for puppet @ puppet conf2012
Boundary
 
Developing Resilient Cloud Native Apps with Spring Cloud
Dustin Ruehle
 
Kafka meetup seattle 2019 mirus reliable, high performance replication for ap...
Nitin Kumar
 
PP_Eric_Gandt
Eric Gandt
 
Microservices Platform with Spring Boot, Spring Cloud Config, Spring Cloud Ne...
Tin Linn Soe
 
Orchestrator for QlikView: add-on product description
Marco Zampieri
 
Developing Microservices using Spring - Beginner's Guide
Mohanraj Thirumoorthy
 

Similar to Intro to.net core 20170111 (20)

PDF
Pottnet MeetUp Essen - ASP.Net Core
Malte Lantin
 
PDF
Pottnet Meetup Essen - ASP.Net Core
Malte Lantin
 
PDF
Asp.Net Core MVC , Razor page , Entity Framework Core
mohamed elshafey
 
PPTX
O futuro do .NET : O que eu preciso saber
Danilo Bordini
 
PPTX
ASP.NET Core: The best of the new bits
Ken Cenerelli
 
PPTX
The next step from Microsoft - Vnext (Srdjan Poznic)
Geekstone
 
PDF
ASP.NET vs ASP.NET Core
Öğr. Gör. Erkan HÜRNALI
 
PDF
Raffaele Rialdi
CodeFest
 
PDF
.NET Core Blimey! (dotnetsheff Jan 2016)
citizenmatt
 
PPTX
.Net: Introduction, trends and future
Bishnu Rawal
 
PDF
.NET Core Blimey! (Shropshire Devs Mar 2016)
citizenmatt
 
PDF
.NET Core Blimey! Windows Platform User Group, Manchester
citizenmatt
 
PDF
Introduction to dot net
QIANG XU
 
PPTX
.NET Core: a new .NET Platform
Alex Thissen
 
PDF
.NET Core, ASP.NET Core Course, Session 1
Amin Mesbahi
 
PPTX
Moving forward with ASP.NET Core
Enea Gabriel
 
PDF
Introduction to ASP.NET Core
Avanade Nederland
 
PPTX
Best of Microsoft Dev Camp 2015
Bluegrass Digital
 
PPTX
.Net Core - not your daddy's dotnet
Rick van den Bosch
 
PPTX
Academy PRO: .NET Core intro
Binary Studio
 
Pottnet MeetUp Essen - ASP.Net Core
Malte Lantin
 
Pottnet Meetup Essen - ASP.Net Core
Malte Lantin
 
Asp.Net Core MVC , Razor page , Entity Framework Core
mohamed elshafey
 
O futuro do .NET : O que eu preciso saber
Danilo Bordini
 
ASP.NET Core: The best of the new bits
Ken Cenerelli
 
The next step from Microsoft - Vnext (Srdjan Poznic)
Geekstone
 
ASP.NET vs ASP.NET Core
Öğr. Gör. Erkan HÜRNALI
 
Raffaele Rialdi
CodeFest
 
.NET Core Blimey! (dotnetsheff Jan 2016)
citizenmatt
 
.Net: Introduction, trends and future
Bishnu Rawal
 
.NET Core Blimey! (Shropshire Devs Mar 2016)
citizenmatt
 
.NET Core Blimey! Windows Platform User Group, Manchester
citizenmatt
 
Introduction to dot net
QIANG XU
 
.NET Core: a new .NET Platform
Alex Thissen
 
.NET Core, ASP.NET Core Course, Session 1
Amin Mesbahi
 
Moving forward with ASP.NET Core
Enea Gabriel
 
Introduction to ASP.NET Core
Avanade Nederland
 
Best of Microsoft Dev Camp 2015
Bluegrass Digital
 
.Net Core - not your daddy's dotnet
Rick van den Bosch
 
Academy PRO: .NET Core intro
Binary Studio
 
Ad

More from Christian Horsdal (13)

PPTX
Testing microservices.ANUG.20230111.pptx
Christian Horsdal
 
PDF
Scoping microservices.20190917
Christian Horsdal
 
PPTX
Event sourcing anug 20190227
Christian Horsdal
 
PPTX
Middleware webnextconf - 20152609
Christian Horsdal
 
PPTX
Campus days 2014 owin
Christian Horsdal
 
PPTX
ASP.NET vNext ANUG 20140817
Christian Horsdal
 
PPTX
Lightweight Approach to Building Web APIs with .NET
Christian Horsdal
 
PPTX
Three Other Web Frameworks. All .NET. All OSS. One Hour. Go
Christian Horsdal
 
PPTX
Four .NET Web Frameworks in Less Than an Hour
Christian Horsdal
 
PPTX
Nancy + rest mow2012
Christian Horsdal
 
PPTX
Nancy - A Lightweight .NET Web Framework
Christian Horsdal
 
PPTX
DCI ANUG - 24th November 2010
Christian Horsdal
 
PPTX
DCI - ANUG 24th November 2010
Christian Horsdal
 
Testing microservices.ANUG.20230111.pptx
Christian Horsdal
 
Scoping microservices.20190917
Christian Horsdal
 
Event sourcing anug 20190227
Christian Horsdal
 
Middleware webnextconf - 20152609
Christian Horsdal
 
Campus days 2014 owin
Christian Horsdal
 
ASP.NET vNext ANUG 20140817
Christian Horsdal
 
Lightweight Approach to Building Web APIs with .NET
Christian Horsdal
 
Three Other Web Frameworks. All .NET. All OSS. One Hour. Go
Christian Horsdal
 
Four .NET Web Frameworks in Less Than an Hour
Christian Horsdal
 
Nancy + rest mow2012
Christian Horsdal
 
Nancy - A Lightweight .NET Web Framework
Christian Horsdal
 
DCI ANUG - 24th November 2010
Christian Horsdal
 
DCI - ANUG 24th November 2010
Christian Horsdal
 
Ad

Recently uploaded (20)

PDF
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
PPTX
Get Started with Maestro: Agent, Robot, and Human in Action – Session 5 of 5
klpathrudu
 
PDF
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
PPTX
Function & Procedure: Function Vs Procedure in PL/SQL
Shani Tiwari
 
PDF
ERP Consulting Services and Solutions by Contetra Pvt Ltd
jayjani123
 
PDF
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
PPTX
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
PDF
MiniTool Power Data Recovery 8.8 With Crack New Latest 2025
bashirkhan333g
 
PDF
AI Prompts Cheat Code prompt engineering
Avijit Kumar Roy
 
PDF
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
PDF
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
PDF
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
PDF
Simplify React app login with asgardeo-sdk
vaibhav289687
 
PPTX
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
PPTX
Coefficient of Variance in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Customise Your Correlation Table in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PDF
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
PDF
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
PPTX
iaas vs paas vs saas :choosing your cloud strategy
CloudlayaTechnology
 
PPTX
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
Get Started with Maestro: Agent, Robot, and Human in Action – Session 5 of 5
klpathrudu
 
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
Function & Procedure: Function Vs Procedure in PL/SQL
Shani Tiwari
 
ERP Consulting Services and Solutions by Contetra Pvt Ltd
jayjani123
 
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
MiniTool Power Data Recovery 8.8 With Crack New Latest 2025
bashirkhan333g
 
AI Prompts Cheat Code prompt engineering
Avijit Kumar Roy
 
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
Simplify React app login with asgardeo-sdk
vaibhav289687
 
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
Coefficient of Variance in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Customise Your Correlation Table in IBM SPSS Statistics.pptx
Version 1 Analytics
 
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
Technical-Careers-Roadmap-in-Software-Market.pdf
Hussein Ali
 
iaas vs paas vs saas :choosing your cloud strategy
CloudlayaTechnology
 
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 

Intro to.net core 20170111

  • 1. INTRO TO .NET CORE .NET CORE, ASP.NET CORE, NETSTANDARD, RUNTIMES
  • 2. AGENDA • WHAT IS .NET CORE? • WHAT IS ASP.NET CORE? • WHAT IS NETSTANDARD? • GETTING STARTED
  • 3. WHAT IS .NET CORE?
  • 4. WHAT IS .NET CORE? A VERSION OF .NET THAT: • IS X-PLATFORM • FLEXIBLE DEPLOYMENT • OSS • COMMAND LINE FIRST TOOLING • SMALLER THAN, BUT COMPATIBLE WITH FULL FRAMEWORK
  • 5. WHAT IS .NET CORE? WHAT ARE THE COMPONENTS? UWP Apps | Console Apps | Web Apps CoreFx (BCL) Runtime Adaption Layer .NET Native | CoreClr
  • 6. WHAT IS .NET CORE? WHAT ARE THE COMPONENTS? UWP Apps | Console Apps | Web Apps CoreFx (BCL) Runtime Adaption Layer .NET Natvie CoreClr
  • 7. X-PLATFORM • WINDOWS • DESKKTOP • SERVER • NANOSERVER • LINUX • RED HAT ENTERPRISE LINUX • UBUNTU • DEBIAN • FEDORA • CENTOS • OPENSUSE • MAC
  • 9. FLEXIBLE DEPLOYMENT App 1 .NETCore v. X App 2 .NETCore v. Y App 3 .NETCore v. Z
  • 10. FLEXIBLE DEPLOYMENT App 1 App 2 App 3 .NET Core installed on server
  • 11. SMALLER FOOTPRINT …MAYBE: • OPT-IN THROUGH NUGETS • OR GO WITH .NETCOREAPP • * SEE ASP.NET CORE INTRO :)
  • 12. COMMAND LINE – WHY? • AUTOMATION • CROSS PLATFORM • VISUAL STUDIO INDEPENDENCE • WELL WORTH LEARNING
  • 14. OSS / OWNERSHIP / SUPPORT • EVERYTHING ON GITHUB • MIT LICENSE (CORECLR, COREFX, CLI), APACHE (ROSLYN, ASP.NET) • OWNED AND GOVERNED BY MICROSOFT • ACCEPTS CONTRIBUTIONS
  • 15. BONUS: PROJECT SYSTEM MODERNIZED CSPROJ • EDITOR / HUMAN FRIENDLY • FRAMEWORK TARGETS • APP MODEL • NUGET DEPENDENCIES • CAN BE USED WITH FULL FX <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/dev <Import Project="$(MSBuildExtensionsPath)$(MSBuildToolsVersion)M <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp1.0</TargetFramework> </PropertyGroup> <ItemGroup> <Compile Include="***.cs" /> <EmbeddedResource Include="***.resx" /> </ItemGroup> <ItemGroup Condition=" netcoreapp1.0"> <PackageReference Include="Microsoft.NETCore.App" Version="1.0.1 <PackageReference Include="Microsoft.NET.Test.Sdk“ Version="15.0 <PackageReference Include="xunit" Version="2.2.0-beta3-build3402 <PackageReference Include="xunit.runner.visualstudio" Version="2 </ItemGroup> <Import Project="$(MSBuildToolsPath)Microsoft.CSharp.targets" /> </Project>
  • 17. HIGHLIGHTS • MODULARIZED • FAAAAAASSSST • PIPELINE, MIDDLEWARE • UNIFIED MVC AND WEBAPI • OSS • .NET CORE BASED • CROSS PLATFORM • COMMAND LINE • SIDE-BY-SIDE DEPLOY • LESS DEPENDENT ON VISUAL STUDIO
  • 18. ASP.NET TODAY IIS .NET BCL ASP.NET ASP.NET MVC ASP.NET Web API HTTP Modules ASP.NET WebForms HTTP Handlers Request pipeline HTTP Context et al. Caching Session State
  • 19. ASP.NET CORE – GUIDING PRINCIPLES • NO DEPENDENCY ON SYSTEM.WEB • THIS IS HUGE • CROSS PLATFORM • LOW FRICTION (THIS IS MY INTERPRETATION)
  • 20. ASP.NET – THINGS NOT IN CORE IIS .NET BCL ASP.NET ASP.NET MVC ASP.NET Web API HTTP Modules ASP.NET WebForms HTTP Handlers Request pipeline HTTP Context et al. Caching SessionS tate
  • 21. ASP.NET – AND THINGS CHANGED IN CORE IIS .NET BCL ASP.NET ASP.NET MVC ASP.NET Web API HTTP Modules ASP.NET WebForms HTTP Handlers Request pipeline HTTP Context Caching SessionS tate
  • 22. ASP.NET CORE Kestrel .NET Core | Full Fx ASP.NET Core ASP.NET MVC (WebApi, Razor)
  • 25. ASP.NET CORE: PIPELINE • USE PIPES AND FILTERS • A CONTEXT IS PIPED THROUGH MIDDLEWARE 25
  • 28. MIDDLEWARE • MIDDLEWARE TRANSFORMS THE REQUEST AND RESPONSE • TAKES A CONTEXT IN • CAN CALL NEXT STEP IN PIPELINE • OR NOT • UNIFORM INTERFACE • COMPOSABLE , REARRANGEABLE 28
  • 29. MIDDLEWARE • 2 TYPES • OWIN • ASPNET CORE 29
  • 30. OWIN: MIDDLEWARE ECOSYSTEM • SECURITY: • OAUTH, TWITTER, FACEBOOK, GOOGLE, … • CLAIMSTRANFORMATIONS • REQUIRESSL • SCOPEVALIDATION • … • WEB: • ROUTING • LIMITS • SITEMAP • STATICFILES • MONITORING • RAYGUN • SERILOG • … 30
  • 32. .NET STANDARD “TO PROVIDE A MORE CONCRETE GUARANTEE OF BINARY PORTABILITY TO FUTURE .NET-CAPABLE PLATFORMS WITH AN EASIER-TO-UNDERSTAND PLATFORM VERSIONING PLAN.”
  • 33. .NET STANDARD VS PCL • PCL STATES PLATFORMS • PORTABLE-NET45+WP80+WIN8+WPA81 • .NET PLATFORM STANDARD • LIBS STATE REQUIRED MINIMAL API LEVEL • PLATFORMS STATED IMPLEMENTED API LEVEL • NETSTANDARD1.3 • FORWARD COMPATIBILITY
  • 34. .NET STANDARD • CHOOSE API LEVEL • COMPILE AGAINST REFENCE .DLLS • RUN AGAINST TARGET DEPENDENT IMPLEMENTATIONS 34
  • 37. GETTING STARTED • BOTTOM UP • PORT LOWEST LEVEL LIBS TO .NET PLATFORM STANDARD 1.6 • PORT OWIN MIDDLEWARE AWAY FROM KATANA • (USE LIBOWIN INSTEAD) • BUILD SERVER => NUGET PACKAGES
  • 38. GETTING STARTED • FIND A LOW IMPACT SERVICE, USE IT TO DRIVE • PROD ENVIRONMENT • DEPLOYMENT PIPELINE
  • 39. GETTING STARTED • WHEN? • .NET CORE AND ASP.NET CORE ARE 1.1 NOW • TOOLING IS PREVIEW NOW • Q2 2017: • TOOLING RTM • .NET CORE 2.0 (FASTER) • .NETSTANDARD 2.0 (LOTS AND LOTS OF APIS) • ASP.NET 1.2 (SIGNALR, FASTER, SECURITY)
  • 40. GETTING STARTED • FOLLOW ULTRA SHORT TUTORIAL HERE: HTTPS://WWW.MICROSOFT.COM/NET/CORE#WINDOWSCMD • MORE INFO HERE: HTTPS://DOCS.MICROSOFT.COM/EN-US/DOTNET/ARTICLES/CORE/ • BUT YOU TO DIG DEEP … YOU STILL GO TO GITHUB
  • 42. WHY DO I CARE? • DOTNET CLI AND CROSS PLATFORM: • USE LINUX IN PRODUCTION • BROADER POTENTIAL DEVELOPER CROWD • DOTNET AS ENABLER FOR YOUR OWN TOOLING • DOTNET AS ENABLER FOR 3RD PARTY / OSS TOOLING
  • 43. WHY DO I CARE? • MODULARIZED .NET SMALLER FOOTPRINT ON DISK AND MEMORY (!) FASTER DEVELOPMENT FROM MS ON SOME PARTS SIDE-BY-SIDE ON DIFFERENT VERSIONS
  • 44. WHY DO I CARE? • MIDDLEWARE  NICE MODULAR WAY OF WORKING  SEPARATION OF INFRASTRUCTURE AND APPLICATION • MORE OWIN  BETTER OPPORTUNITY FOR .NET OSS  OWIN MIDDLEWARE ECO SYSTEM WILL BLOSSOM  NICE MODULAR WAY OF WORKING
  • 45. WHY DO I CARE? • MVC  UNIFIES MVC AND WEBAPI PROPERLY  MOVES CLOSER TO “MODERN” FRONTEND DEVELOPMENT