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

PPTX
Consolidating services with middleware - NDC London 2017
PPTX
Serverless Code Deployments in AWS
PDF
Network Infrastructure as Code with Chef and Cisco
PPTX
SOAP Monitoring
PDF
The Need For Speed - NEBytes
PPTX
SouthBay SRE Meetup Jan 2016
PDF
E2E Data Pipeline - Apache Spark/Airflow/Livy
PPTX
Using SaltStack to Auto Triage and Remediate Production Systems
Consolidating services with middleware - NDC London 2017
Serverless Code Deployments in AWS
Network Infrastructure as Code with Chef and Cisco
SOAP Monitoring
The Need For Speed - NEBytes
SouthBay SRE Meetup Jan 2016
E2E Data Pipeline - Apache Spark/Airflow/Livy
Using SaltStack to Auto Triage and Remediate Production Systems

What's hot (20)

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

Similar to Intro to.net core 20170111 (20)

PDF
Net coreandsimplcommerce
PPTX
Introduction to ASP.NET 5
PPTX
What's New in .Net 4.5
PPTX
About netcore2
PPTX
ASP.NET 5 - Microsoft's Web development platform reimagined
PDF
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
PPTX
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
PPT
Oracle database connection with the .net developers
PDF
IBM Think Session 8598 Domino and JavaScript Development MasterClass
PPTX
DotNext 2017 in Moscow - .NET Core Networking stack and Performance -- Karel ...
PDF
Zero to Serverless in 60s - Anywhere
PDF
Automation in Network Lifecycle Management - Bay Area Juniper Meetup
PDF
Rami Sayar - Node microservices with Docker
PPTX
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
PPTX
ASP.NET Core: The best of the new bits
PPTX
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
PDF
TIAD : Automating the aplication lifecycle
PPTX
Using Nano Server for Hyper-V Training 0
PDF
Raffaele Rialdi
PPTX
Get acquainted with the new ASP.Net 5
Net coreandsimplcommerce
Introduction to ASP.NET 5
What's New in .Net 4.5
About netcore2
ASP.NET 5 - Microsoft's Web development platform reimagined
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Oracle database connection with the .net developers
IBM Think Session 8598 Domino and JavaScript Development MasterClass
DotNext 2017 in Moscow - .NET Core Networking stack and Performance -- Karel ...
Zero to Serverless in 60s - Anywhere
Automation in Network Lifecycle Management - Bay Area Juniper Meetup
Rami Sayar - Node microservices with Docker
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
ASP.NET Core: The best of the new bits
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
TIAD : Automating the aplication lifecycle
Using Nano Server for Hyper-V Training 0
Raffaele Rialdi
Get acquainted with the new ASP.Net 5
Ad

More from Christian Horsdal (13)

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

Recently uploaded (20)

PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
ai tools demonstartion for schools and inter college
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
System and Network Administration Chapter 2
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Nekopoi APK 2025 free lastest update
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Digital Strategies for Manufacturing Companies
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Odoo POS Development Services by CandidRoot Solutions
ai tools demonstartion for schools and inter college
Reimagine Home Health with the Power of Agentic AI​
Which alternative to Crystal Reports is best for small or large businesses.pdf
Softaken Excel to vCard Converter Software.pdf
System and Network Administration Chapter 2
How to Migrate SBCGlobal Email to Yahoo Easily
Nekopoi APK 2025 free lastest update
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Design an Analysis of Algorithms II-SECS-1021-03
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Digital Strategies for Manufacturing Companies
PTS Company Brochure 2025 (1).pdf.......
wealthsignaloriginal-com-DS-text-... (1).pdf
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
2025 Textile ERP Trends: SAP, Odoo & Oracle
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf

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