SlideShare a Scribd company logo
©2016 Avanade Inc. All Rights Reserved.
Masters in Microsoft
(ASP).NET Core
Sjoerd van der Meer & Albert Sluijter
12-5-2016
©2016 Avanade Inc. All Rights Reserved.
Sjoerd
van der
Meer
Presenters
Albert
Sluijter
©2016 Avanade Inc. All Rights Reserved.
• History and introduction to .NET Core
• .NET Platform Standard
• .NET Command Line Interface
• Compilers
• Break
• ASP.NET Core Pipeline
• ASP.NET Core MVC
• ASP.NET Core To production
• ASP.NET Core Future
Agenda
©2016 Avanade Inc. All Rights Reserved.
• .NET framework becomes bigger and bigger
• ASP.NET, including MVC, tightly coupled to the framework
• Difficult to keep up the release cycle
History (ASP).NET
2002 2003 2004 2005 2006 2007 … 2013 2014 2015
1.0
16 Jan
2.0
7 Nov
Core RC1
18 Nov
4.6
20 Jul
4.5.1
17 Okt
©2016 Avanade Inc. All Rights Reserved.
Fragmentation of .NET
• Multiple, fragmented versions of .NET for different platforms
• There’s a different runtime, framework and application model
• Different platforms are always going to have different features and capabilities
Windows
Desktop
App Model
Framework
Runtime
Windows Store
App Model
Framework
Runtime
Windows
Phone
App Model
Framework
Runtime
ASP.NET 4
App Model
Framework
Runtime
©2016 Avanade Inc. All Rights Reserved.
Portable Class Library (PCL)
.NET Framework
Windows Phone
Windows Universal
©2016 Avanade Inc. All Rights Reserved.
.NET Stack
©2016 Avanade Inc. All Rights Reserved.
.NET Platform Standard
Why? To provide a more concrete guarantee of binary portability to future .NET-
capable platforms with an easier-to-understand platform versioning plan
.NET Platform Standard netstandard 1 1.1 1.2 1.3 1.4 1.5
.NET Core netcoreapp → → → → → 1
.NET Framework net → → → → → 4.6.2
→ → → → 4.6.1
→ → → 4.6
→ → 4.5.2
→ → 4.5.1
→ 4.5
Universal Windows Platform uap → → → → 10
Windows win → → 8.1
→ 8
Windows Phone wpa → → 8.1
Windows Phone Silverlight wp 8.1
8
Mono/Xamarin Platforms → → → → → *
Mono → → *
©2016 Avanade Inc. All Rights Reserved.
.NETStandard class library
©2016 Avanade Inc. All Rights Reserved.
Compilers
.NET Native Compiler
AOT
.NET Assemblies (IL)
RyuJIT
Roslyn Compiler
Native
JIT
CoreCLR CoreRT
Single native file
©2016 Avanade Inc. All Rights Reserved.
• Lightweight
• Modular
• Cross platform
• No machine wide installation
• Run multiple versions in parallel
• Faster (package based) release cycles
Why .NET Core
©2016 Avanade Inc. All Rights Reserved.
.NET framework Mono .NET Core
Machine wide Machine wide Per app
Existing code Existing code New code
Many types Many types Limited types
Windows only Cross-platform Cross-platform
Framework choices
©2016 Avanade Inc. All Rights Reserved.
• ASP.NET 4.6 is the more mature platform.
• ASP.NET Core 1.0 is a 1.0 release that includes Web API and MVC
but doesn't yet have SignalR or Web Pages.
• It doesn't yet support VB or F#. It might have these subsystems
some day.
When use .NET Core
©2016 Avanade Inc. All Rights Reserved.
.NET CLI
•Command-line first approach
•Replaces DNX, DNU and DNVM
•dotnet new
•dotnet restore
•dotnet run
•dotnet build
•dotnet publish
©2016 Avanade Inc. All Rights Reserved.©2016 Avanade Inc. All Rights Reserved.
15
Demo .NET CLI
©2016 Avanade Inc. All Rights Reserved.
• Open source Web server for ASP.NET
based on libuv (also used by NodeJS)
• It is fast and production ready.
• It is not a fully featured web server.
• It is recommended that you run it behind
a more fully featured webserver like IIS on
Windows or NGNIX on Linux.
• It is run behind IIS using the ASP.NET Core
Module (native IIS module).
• Maps a HTTP Request to the HttpContext.
Kestrel
©2016 Avanade Inc. All Rights Reserved.
Kestrel performance
0
500000
1000000
1500000
2000000
2500000
3000000
ASP.NET 4.6 ASP.NET 5 NodeJS ASP.NET 5 Scala - Plain Netty
IIS WebListener Node Kestrel Plain Netty
Max of RPS Avg
1 - x64 1 - x86 16 - x64 16 - x86
©2016 Avanade Inc. All Rights Reserved.©2016 Avanade Inc. All Rights Reserved.
18
BREAK
©2016 Avanade Inc. All Rights Reserved.
Asp.net Core web application
Request
Response
Application
Console.WriteLine(“Hello world!”)
How to make a webapplication from a console app?
©2016 Avanade Inc. All Rights Reserved.
Asp.net Core web application
Request
Response
Application
Add Kestrel Server
Binds to a port and transforms request for Asp.net core
Kestrel
©2016 Avanade Inc. All Rights Reserved.
Asp.net Core web application
Request
Response
Kestrel passes the request to a middleware pipeline
Kestrel
Middleware
Middleware
Middleware
Middleware
©2016 Avanade Inc. All Rights Reserved.
Asp.net Core web application
Request
Response
Hello web
Kestrel
Helloworld
©2016 Avanade Inc. All Rights Reserved.
Asp.net Core web application
Middleware pipeline is method chaining
Kestrel
Middleware
Middleware
Middleware
next()
return
return
next()
return
Request
Response
©2016 Avanade Inc. All Rights Reserved.
Request pipeline
©2016 Avanade Inc. All Rights Reserved.©2016 Avanade Inc. All Rights Reserved.
25
Let’s play with the middleware
pipeline
©2016 Avanade Inc. All Rights Reserved.
Asp.net Core web application
Kestrel server does nothing by default
Cookie
authentication
Static Files
Database error
page
Asp.net MVC
Facebook
authentication
Developer
Exception page
Examples of middleware
Add features as middleware!
Runtime info page
Status Code pages
©2016 Avanade Inc. All Rights Reserved.
Web application framework
Does: Routing – Modelbinding – Templating
Goals:
Seperation of concerns
Patterns based
Full control over output (html/json/xml)
TDD friendly
Asp.net MVC 6
ModelView
Controller
©2016 Avanade Inc. All Rights Reserved.
Asp.net Asp.net core
Asp.net MVC 6
MVC 5
WebApi 2
System.Web
Owin
Asp.net Core
{json} & <xml/>
<html/>
MVC 6
<html/>{json} & <xml/>
git merge
©2016 Avanade Inc. All Rights Reserved.©2016 Avanade Inc. All Rights Reserved.
29
MVC Demo
Yo maann! Before you
start all over again
©2016 Avanade Inc. All Rights Reserved.
• Scaffolding tool
• npm install --global yo
• Generates
• Projects
• Classes
• Files
• Uses generators
• npm install --global generator-aspnet
Yeoman
Yo!
©2016 Avanade Inc. All Rights Reserved.©2016 Avanade Inc. All Rights Reserved.
31
yo aspnet
©2016 Avanade Inc. All Rights Reserved.
Host my app
dotnet run?
Multiple apps on one server?
(only one port 80)
And SSL?
Windows authentication?
Going to production
Request
Response
My Epic Web
Application
Kestrel
©2016 Avanade Inc. All Rights Reserved.
Run it with a
reverse proxy
• IIS
• Install ASP.NET Core
Module first
• nginx
• Apache
Going to production
Request
Response
My Epic Web
Application
Kestrel
IIS–nginx–apache
:80/:443
:5000
©2016 Avanade Inc. All Rights Reserved.©2016 Avanade Inc. All Rights Reserved.
34
dotnet publish
©2016 Avanade Inc. All Rights Reserved.
Asp.net core future
Docker Nano Server (size 550MB)
Microservices
Azure service fabric
Raspberry PI (ARM)
©2016 Avanade Inc. All Rights Reserved.
Timeline
Today
16 May 2016
June - July
July - September
End of 2016
.net core & Asp.net core RC2-final
Tooling preview1 (Visual studio & dotnet-cli)
.net core & Asp.net core RTM
Tooling still in preview
Asp.net core SignalR
Tooling RTM
Expecting .net core & asp.net core 1.1
.net core & Asp.net core RC2 almost final
©2016 Avanade Inc. All Rights Reserved.
Starting point for .NET
dot.net/
Asp.net core docs
docs.asp.net/
All open source on Github
• Github.com/dotnet/
• Github.com/aspnet/
• Github.com/microsoft/
Get Code it’s awesome
(and open source)
code.visualstudio.com/
Omnisharp intellisense for editors
omnisharp.net/
github.com/omnisharp
Getting started
©2016 Avanade Inc. All Rights Reserved.
Questions?
Ad

More Related Content

What's hot (20)

.Net Core
.Net Core.Net Core
.Net Core
Software Infrastructure
 
Dot Net Core
Dot Net CoreDot Net Core
Dot Net Core
Amir Barylko
 
Introduction to .NET Core
Introduction to .NET CoreIntroduction to .NET Core
Introduction to .NET Core
Marco Parenzan
 
Introduction to spring boot
Introduction to spring bootIntroduction to spring boot
Introduction to spring boot
Santosh Kumar Kar
 
ASP.NET Basics
ASP.NET Basics ASP.NET Basics
ASP.NET Basics
baabtra.com - No. 1 supplier of quality freshers
 
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
Edureka!
 
From Spring Framework 5.3 to 6.0
From Spring Framework 5.3 to 6.0From Spring Framework 5.3 to 6.0
From Spring Framework 5.3 to 6.0
VMware Tanzu
 
From Zero to Docker
From Zero to DockerFrom Zero to Docker
From Zero to Docker
Abhishek Verma
 
Microservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring CloudMicroservices with Java, Spring Boot and Spring Cloud
Microservices with Java, Spring Boot and Spring Cloud
Eberhard Wolff
 
REST APIs with Spring
REST APIs with SpringREST APIs with Spring
REST APIs with Spring
Joshua Long
 
Spring boot Introduction
Spring boot IntroductionSpring boot Introduction
Spring boot Introduction
Jeevesh Pandey
 
TypeScript: coding JavaScript without the pain
TypeScript: coding JavaScript without the painTypeScript: coding JavaScript without the pain
TypeScript: coding JavaScript without the pain
Sander Mak (@Sander_Mak)
 
Spring Boot
Spring BootSpring Boot
Spring Boot
Jiayun Zhou
 
ReactJS presentation.pptx
ReactJS presentation.pptxReactJS presentation.pptx
ReactJS presentation.pptx
DivyanshGupta922023
 
Its time to React.js
Its time to React.jsIts time to React.js
Its time to React.js
Ritesh Mehrotra
 
What Is Express JS?
What Is Express JS?What Is Express JS?
What Is Express JS?
Simplilearn
 
Spring Framework - Core
Spring Framework - CoreSpring Framework - Core
Spring Framework - Core
Dzmitry Naskou
 
CSharp.ppt
CSharp.pptCSharp.ppt
CSharp.ppt
ckthesolo
 
Learn react-js
Learn react-jsLearn react-js
Learn react-js
C...L, NESPRESSO, WAFAASSURANCE, SOFRECOM ORANGE
 
.Net Core
.Net Core.Net Core
.Net Core
Bohdan Pashkovskyi
 

Similar to Introduction to ASP.NET Core (20)

MiM asp.net core
MiM asp.net coreMiM asp.net core
MiM asp.net core
Sjoerd van der Meer
 
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
FalafelSoftware
 
Asp.net in a new world
Asp.net in a new worldAsp.net in a new world
Asp.net in a new world
nextbuild
 
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platformIntroducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Jeffrey T. Fritz
 
Moving forward with ASP.NET Core
Moving forward with ASP.NET CoreMoving forward with ASP.NET Core
Moving forward with ASP.NET Core
Enea Gabriel
 
Dotnet on linux
Dotnet on linuxDotnet on linux
Dotnet on linux
Ebram Tharwat
 
The future of ASP.NET / CodeCamp/Iasi 25 Oct 2014
The future of ASP.NET / CodeCamp/Iasi 25 Oct 2014The future of ASP.NET / CodeCamp/Iasi 25 Oct 2014
The future of ASP.NET / CodeCamp/Iasi 25 Oct 2014
Enea Gabriel
 
Evolution / History of ASP.NET
Evolution / History of ASP.NETEvolution / History of ASP.NET
Evolution / History of ASP.NET
Anoop Kumar Sharma
 
Microsoft &lt;3 Linux with ASP.NET Core
Microsoft &lt;3 Linux with ASP.NET CoreMicrosoft &lt;3 Linux with ASP.NET Core
Microsoft &lt;3 Linux with ASP.NET Core
John Patrick Oliveros
 
Javascript Essentials - Cisco Live Barcelona 2019
Javascript Essentials - Cisco Live Barcelona 2019Javascript Essentials - Cisco Live Barcelona 2019
Javascript Essentials - Cisco Live Barcelona 2019
Cisco DevNet
 
.NET Conf 2021 - Hot Topics Desktop Development
.NET Conf 2021 - Hot Topics Desktop Development.NET Conf 2021 - Hot Topics Desktop Development
.NET Conf 2021 - Hot Topics Desktop Development
Mirco Vanini
 
Workspace on asp.net web aplication development
Workspace on asp.net  web aplication developmentWorkspace on asp.net  web aplication development
Workspace on asp.net web aplication development
KBA Systems
 
Workspace on asp.net web aplication development
Workspace on asp.net  web aplication developmentWorkspace on asp.net  web aplication development
Workspace on asp.net web aplication development
KBA Systems
 
The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)
Geekstone
 
Pottnet MeetUp Essen - ASP.Net Core
Pottnet MeetUp Essen - ASP.Net CorePottnet MeetUp Essen - ASP.Net Core
Pottnet MeetUp Essen - ASP.Net Core
Malte Lantin
 
Pottnet Meetup Essen - ASP.Net Core
Pottnet Meetup Essen - ASP.Net CorePottnet Meetup Essen - ASP.Net Core
Pottnet Meetup Essen - ASP.Net Core
Malte Lantin
 
ASP.NET
ASP.NETASP.NET
ASP.NET
Chandan Gupta Bhagat
 
Introduction to ASP.NET 5
Introduction to ASP.NET 5Introduction to ASP.NET 5
Introduction to ASP.NET 5
mbaric
 
.Net: Introduction, trends and future
.Net: Introduction, trends and future.Net: Introduction, trends and future
.Net: Introduction, trends and future
Bishnu Rawal
 
Why Enterprises are Using ASP.NET Core?
Why Enterprises are Using ASP.NET Core?Why Enterprises are Using ASP.NET Core?
Why Enterprises are Using ASP.NET Core?
Marie Weaver
 
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
FalafelSoftware
 
Asp.net in a new world
Asp.net in a new worldAsp.net in a new world
Asp.net in a new world
nextbuild
 
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platformIntroducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Jeffrey T. Fritz
 
Moving forward with ASP.NET Core
Moving forward with ASP.NET CoreMoving forward with ASP.NET Core
Moving forward with ASP.NET Core
Enea Gabriel
 
The future of ASP.NET / CodeCamp/Iasi 25 Oct 2014
The future of ASP.NET / CodeCamp/Iasi 25 Oct 2014The future of ASP.NET / CodeCamp/Iasi 25 Oct 2014
The future of ASP.NET / CodeCamp/Iasi 25 Oct 2014
Enea Gabriel
 
Evolution / History of ASP.NET
Evolution / History of ASP.NETEvolution / History of ASP.NET
Evolution / History of ASP.NET
Anoop Kumar Sharma
 
Microsoft &lt;3 Linux with ASP.NET Core
Microsoft &lt;3 Linux with ASP.NET CoreMicrosoft &lt;3 Linux with ASP.NET Core
Microsoft &lt;3 Linux with ASP.NET Core
John Patrick Oliveros
 
Javascript Essentials - Cisco Live Barcelona 2019
Javascript Essentials - Cisco Live Barcelona 2019Javascript Essentials - Cisco Live Barcelona 2019
Javascript Essentials - Cisco Live Barcelona 2019
Cisco DevNet
 
.NET Conf 2021 - Hot Topics Desktop Development
.NET Conf 2021 - Hot Topics Desktop Development.NET Conf 2021 - Hot Topics Desktop Development
.NET Conf 2021 - Hot Topics Desktop Development
Mirco Vanini
 
Workspace on asp.net web aplication development
Workspace on asp.net  web aplication developmentWorkspace on asp.net  web aplication development
Workspace on asp.net web aplication development
KBA Systems
 
Workspace on asp.net web aplication development
Workspace on asp.net  web aplication developmentWorkspace on asp.net  web aplication development
Workspace on asp.net web aplication development
KBA Systems
 
The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)
Geekstone
 
Pottnet MeetUp Essen - ASP.Net Core
Pottnet MeetUp Essen - ASP.Net CorePottnet MeetUp Essen - ASP.Net Core
Pottnet MeetUp Essen - ASP.Net Core
Malte Lantin
 
Pottnet Meetup Essen - ASP.Net Core
Pottnet Meetup Essen - ASP.Net CorePottnet Meetup Essen - ASP.Net Core
Pottnet Meetup Essen - ASP.Net Core
Malte Lantin
 
Introduction to ASP.NET 5
Introduction to ASP.NET 5Introduction to ASP.NET 5
Introduction to ASP.NET 5
mbaric
 
.Net: Introduction, trends and future
.Net: Introduction, trends and future.Net: Introduction, trends and future
.Net: Introduction, trends and future
Bishnu Rawal
 
Why Enterprises are Using ASP.NET Core?
Why Enterprises are Using ASP.NET Core?Why Enterprises are Using ASP.NET Core?
Why Enterprises are Using ASP.NET Core?
Marie Weaver
 
Ad

More from Avanade Nederland (20)

Masters in Microsoft 2018 - Blockchain
Masters in Microsoft 2018 - Blockchain Masters in Microsoft 2018 - Blockchain
Masters in Microsoft 2018 - Blockchain
Avanade Nederland
 
Geek + E.I. = Success in AI
Geek + E.I. = Success in AIGeek + E.I. = Success in AI
Geek + E.I. = Success in AI
Avanade Nederland
 
5 tips als je nu wilt starten met digital marketing analytics
5 tips als je nu wilt starten met digital marketing analytics5 tips als je nu wilt starten met digital marketing analytics
5 tips als je nu wilt starten met digital marketing analytics
Avanade Nederland
 
IOT & Machine Learning
IOT & Machine LearningIOT & Machine Learning
IOT & Machine Learning
Avanade Nederland
 
Mixed Reality met Microsoft HoloLens
Mixed Reality met Microsoft HoloLensMixed Reality met Microsoft HoloLens
Mixed Reality met Microsoft HoloLens
Avanade Nederland
 
Virtual Reality met HTC Vive
Virtual Reality met HTC ViveVirtual Reality met HTC Vive
Virtual Reality met HTC Vive
Avanade Nederland
 
Power apps for business applications
Power apps for business applicationsPower apps for business applications
Power apps for business applications
Avanade Nederland
 
The importance of a design-oriented approach to IT solutions
The importance of a design-oriented approach to IT solutionsThe importance of a design-oriented approach to IT solutions
The importance of a design-oriented approach to IT solutions
Avanade Nederland
 
Creating a workflow with Azure Logic and API Apps
Creating a workflow with Azure Logic and API AppsCreating a workflow with Azure Logic and API Apps
Creating a workflow with Azure Logic and API Apps
Avanade Nederland
 
Beveilig je data met windows 10
Beveilig je data met windows 10 Beveilig je data met windows 10
Beveilig je data met windows 10
Avanade Nederland
 
Designing & Orchestrating the Customer Experience
Designing & Orchestrating the Customer ExperienceDesigning & Orchestrating the Customer Experience
Designing & Orchestrating the Customer Experience
Avanade Nederland
 
Embracing mobile: How can we track customer interaction outside of the PC?
Embracing mobile: How can we track customer interaction outside of the PC?Embracing mobile: How can we track customer interaction outside of the PC?
Embracing mobile: How can we track customer interaction outside of the PC?
Avanade Nederland
 
Avanade Stageopdrachten
Avanade StageopdrachtenAvanade Stageopdrachten
Avanade Stageopdrachten
Avanade Nederland
 
Digitale werklek adoptie
Digitale werklek adoptieDigitale werklek adoptie
Digitale werklek adoptie
Avanade Nederland
 
Digital workplace insights
Digital workplace insightsDigital workplace insights
Digital workplace insights
Avanade Nederland
 
Business case voor een digitale werkplek
Business case voor een digitale werkplekBusiness case voor een digitale werkplek
Business case voor een digitale werkplek
Avanade Nederland
 
Van intranet naar een digitale werkplek
Van intranet naar een digitale werkplekVan intranet naar een digitale werkplek
Van intranet naar een digitale werkplek
Avanade Nederland
 
How Windows 10 is enabling the digital workplace
How Windows 10 is enabling the digital workplaceHow Windows 10 is enabling the digital workplace
How Windows 10 is enabling the digital workplace
Avanade Nederland
 
Unified Service Desk for Contact Centers
Unified Service Desk for Contact CentersUnified Service Desk for Contact Centers
Unified Service Desk for Contact Centers
Avanade Nederland
 
Principes van Service Oriented Architecture
Principes van Service Oriented ArchitecturePrincipes van Service Oriented Architecture
Principes van Service Oriented Architecture
Avanade Nederland
 
Masters in Microsoft 2018 - Blockchain
Masters in Microsoft 2018 - Blockchain Masters in Microsoft 2018 - Blockchain
Masters in Microsoft 2018 - Blockchain
Avanade Nederland
 
5 tips als je nu wilt starten met digital marketing analytics
5 tips als je nu wilt starten met digital marketing analytics5 tips als je nu wilt starten met digital marketing analytics
5 tips als je nu wilt starten met digital marketing analytics
Avanade Nederland
 
Mixed Reality met Microsoft HoloLens
Mixed Reality met Microsoft HoloLensMixed Reality met Microsoft HoloLens
Mixed Reality met Microsoft HoloLens
Avanade Nederland
 
Virtual Reality met HTC Vive
Virtual Reality met HTC ViveVirtual Reality met HTC Vive
Virtual Reality met HTC Vive
Avanade Nederland
 
Power apps for business applications
Power apps for business applicationsPower apps for business applications
Power apps for business applications
Avanade Nederland
 
The importance of a design-oriented approach to IT solutions
The importance of a design-oriented approach to IT solutionsThe importance of a design-oriented approach to IT solutions
The importance of a design-oriented approach to IT solutions
Avanade Nederland
 
Creating a workflow with Azure Logic and API Apps
Creating a workflow with Azure Logic and API AppsCreating a workflow with Azure Logic and API Apps
Creating a workflow with Azure Logic and API Apps
Avanade Nederland
 
Beveilig je data met windows 10
Beveilig je data met windows 10 Beveilig je data met windows 10
Beveilig je data met windows 10
Avanade Nederland
 
Designing & Orchestrating the Customer Experience
Designing & Orchestrating the Customer ExperienceDesigning & Orchestrating the Customer Experience
Designing & Orchestrating the Customer Experience
Avanade Nederland
 
Embracing mobile: How can we track customer interaction outside of the PC?
Embracing mobile: How can we track customer interaction outside of the PC?Embracing mobile: How can we track customer interaction outside of the PC?
Embracing mobile: How can we track customer interaction outside of the PC?
Avanade Nederland
 
Business case voor een digitale werkplek
Business case voor een digitale werkplekBusiness case voor een digitale werkplek
Business case voor een digitale werkplek
Avanade Nederland
 
Van intranet naar een digitale werkplek
Van intranet naar een digitale werkplekVan intranet naar een digitale werkplek
Van intranet naar een digitale werkplek
Avanade Nederland
 
How Windows 10 is enabling the digital workplace
How Windows 10 is enabling the digital workplaceHow Windows 10 is enabling the digital workplace
How Windows 10 is enabling the digital workplace
Avanade Nederland
 
Unified Service Desk for Contact Centers
Unified Service Desk for Contact CentersUnified Service Desk for Contact Centers
Unified Service Desk for Contact Centers
Avanade Nederland
 
Principes van Service Oriented Architecture
Principes van Service Oriented ArchitecturePrincipes van Service Oriented Architecture
Principes van Service Oriented Architecture
Avanade Nederland
 
Ad

Recently uploaded (20)

MINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PRMINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PR
MIND CTI
 
Jignesh Shah - The Innovator and Czar of Exchanges
Jignesh Shah - The Innovator and Czar of ExchangesJignesh Shah - The Innovator and Czar of Exchanges
Jignesh Shah - The Innovator and Czar of Exchanges
Jignesh Shah Innovator
 
IT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information TechnologyIT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information Technology
SHEHABALYAMANI
 
Everything You Need to Know About Agentforce? (Put AI Agents to Work)
Everything You Need to Know About Agentforce? (Put AI Agents to Work)Everything You Need to Know About Agentforce? (Put AI Agents to Work)
Everything You Need to Know About Agentforce? (Put AI Agents to Work)
Cyntexa
 
Agentic Automation - Delhi UiPath Community Meetup
Agentic Automation - Delhi UiPath Community MeetupAgentic Automation - Delhi UiPath Community Meetup
Agentic Automation - Delhi UiPath Community Meetup
Manoj Batra (1600 + Connections)
 
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdfKit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Wonjun Hwang
 
Web and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in RajpuraWeb and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in Rajpura
Erginous Technology
 
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Raffi Khatchadourian
 
Financial Services Technology Summit 2025
Financial Services Technology Summit 2025Financial Services Technology Summit 2025
Financial Services Technology Summit 2025
Ray Bugg
 
Config 2025 presentation recap covering both days
Config 2025 presentation recap covering both daysConfig 2025 presentation recap covering both days
Config 2025 presentation recap covering both days
TrishAntoni1
 
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptxDevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
Justin Reock
 
Bepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firmBepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firm
Benard76
 
The Microsoft Excel Parts Presentation.pdf
The Microsoft Excel Parts Presentation.pdfThe Microsoft Excel Parts Presentation.pdf
The Microsoft Excel Parts Presentation.pdf
YvonneRoseEranista
 
AI You Can Trust: The Critical Role of Governance and Quality.pdf
AI You Can Trust: The Critical Role of Governance and Quality.pdfAI You Can Trust: The Critical Role of Governance and Quality.pdf
AI You Can Trust: The Critical Role of Governance and Quality.pdf
Precisely
 
UiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer OpportunitiesUiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer Opportunities
DianaGray10
 
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz
 
Unlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web AppsUnlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web Apps
Maximiliano Firtman
 
Q1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor PresentationQ1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor Presentation
Dropbox
 
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptxWebinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
MSP360
 
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and MLGyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
Gyrus AI
 
MINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PRMINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PR
MIND CTI
 
Jignesh Shah - The Innovator and Czar of Exchanges
Jignesh Shah - The Innovator and Czar of ExchangesJignesh Shah - The Innovator and Czar of Exchanges
Jignesh Shah - The Innovator and Czar of Exchanges
Jignesh Shah Innovator
 
IT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information TechnologyIT484 Cyber Forensics_Information Technology
IT484 Cyber Forensics_Information Technology
SHEHABALYAMANI
 
Everything You Need to Know About Agentforce? (Put AI Agents to Work)
Everything You Need to Know About Agentforce? (Put AI Agents to Work)Everything You Need to Know About Agentforce? (Put AI Agents to Work)
Everything You Need to Know About Agentforce? (Put AI Agents to Work)
Cyntexa
 
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdfKit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Kit-Works Team Study_팀스터디_김한솔_nuqs_20250509.pdf
Wonjun Hwang
 
Web and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in RajpuraWeb and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in Rajpura
Erginous Technology
 
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Raffi Khatchadourian
 
Financial Services Technology Summit 2025
Financial Services Technology Summit 2025Financial Services Technology Summit 2025
Financial Services Technology Summit 2025
Ray Bugg
 
Config 2025 presentation recap covering both days
Config 2025 presentation recap covering both daysConfig 2025 presentation recap covering both days
Config 2025 presentation recap covering both days
TrishAntoni1
 
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptxDevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
Justin Reock
 
Bepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firmBepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firm
Benard76
 
The Microsoft Excel Parts Presentation.pdf
The Microsoft Excel Parts Presentation.pdfThe Microsoft Excel Parts Presentation.pdf
The Microsoft Excel Parts Presentation.pdf
YvonneRoseEranista
 
AI You Can Trust: The Critical Role of Governance and Quality.pdf
AI You Can Trust: The Critical Role of Governance and Quality.pdfAI You Can Trust: The Critical Role of Governance and Quality.pdf
AI You Can Trust: The Critical Role of Governance and Quality.pdf
Precisely
 
UiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer OpportunitiesUiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer Opportunities
DianaGray10
 
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz
 
Unlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web AppsUnlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web Apps
Maximiliano Firtman
 
Q1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor PresentationQ1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor Presentation
Dropbox
 
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptxWebinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
MSP360
 
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and MLGyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
Gyrus AI
 

Introduction to ASP.NET Core

  • 1. ©2016 Avanade Inc. All Rights Reserved. Masters in Microsoft (ASP).NET Core Sjoerd van der Meer & Albert Sluijter 12-5-2016
  • 2. ©2016 Avanade Inc. All Rights Reserved. Sjoerd van der Meer Presenters Albert Sluijter
  • 3. ©2016 Avanade Inc. All Rights Reserved. • History and introduction to .NET Core • .NET Platform Standard • .NET Command Line Interface • Compilers • Break • ASP.NET Core Pipeline • ASP.NET Core MVC • ASP.NET Core To production • ASP.NET Core Future Agenda
  • 4. ©2016 Avanade Inc. All Rights Reserved. • .NET framework becomes bigger and bigger • ASP.NET, including MVC, tightly coupled to the framework • Difficult to keep up the release cycle History (ASP).NET 2002 2003 2004 2005 2006 2007 … 2013 2014 2015 1.0 16 Jan 2.0 7 Nov Core RC1 18 Nov 4.6 20 Jul 4.5.1 17 Okt
  • 5. ©2016 Avanade Inc. All Rights Reserved. Fragmentation of .NET • Multiple, fragmented versions of .NET for different platforms • There’s a different runtime, framework and application model • Different platforms are always going to have different features and capabilities Windows Desktop App Model Framework Runtime Windows Store App Model Framework Runtime Windows Phone App Model Framework Runtime ASP.NET 4 App Model Framework Runtime
  • 6. ©2016 Avanade Inc. All Rights Reserved. Portable Class Library (PCL) .NET Framework Windows Phone Windows Universal
  • 7. ©2016 Avanade Inc. All Rights Reserved. .NET Stack
  • 8. ©2016 Avanade Inc. All Rights Reserved. .NET Platform Standard Why? To provide a more concrete guarantee of binary portability to future .NET- capable platforms with an easier-to-understand platform versioning plan .NET Platform Standard netstandard 1 1.1 1.2 1.3 1.4 1.5 .NET Core netcoreapp → → → → → 1 .NET Framework net → → → → → 4.6.2 → → → → 4.6.1 → → → 4.6 → → 4.5.2 → → 4.5.1 → 4.5 Universal Windows Platform uap → → → → 10 Windows win → → 8.1 → 8 Windows Phone wpa → → 8.1 Windows Phone Silverlight wp 8.1 8 Mono/Xamarin Platforms → → → → → * Mono → → *
  • 9. ©2016 Avanade Inc. All Rights Reserved. .NETStandard class library
  • 10. ©2016 Avanade Inc. All Rights Reserved. Compilers .NET Native Compiler AOT .NET Assemblies (IL) RyuJIT Roslyn Compiler Native JIT CoreCLR CoreRT Single native file
  • 11. ©2016 Avanade Inc. All Rights Reserved. • Lightweight • Modular • Cross platform • No machine wide installation • Run multiple versions in parallel • Faster (package based) release cycles Why .NET Core
  • 12. ©2016 Avanade Inc. All Rights Reserved. .NET framework Mono .NET Core Machine wide Machine wide Per app Existing code Existing code New code Many types Many types Limited types Windows only Cross-platform Cross-platform Framework choices
  • 13. ©2016 Avanade Inc. All Rights Reserved. • ASP.NET 4.6 is the more mature platform. • ASP.NET Core 1.0 is a 1.0 release that includes Web API and MVC but doesn't yet have SignalR or Web Pages. • It doesn't yet support VB or F#. It might have these subsystems some day. When use .NET Core
  • 14. ©2016 Avanade Inc. All Rights Reserved. .NET CLI •Command-line first approach •Replaces DNX, DNU and DNVM •dotnet new •dotnet restore •dotnet run •dotnet build •dotnet publish
  • 15. ©2016 Avanade Inc. All Rights Reserved.©2016 Avanade Inc. All Rights Reserved. 15 Demo .NET CLI
  • 16. ©2016 Avanade Inc. All Rights Reserved. • Open source Web server for ASP.NET based on libuv (also used by NodeJS) • It is fast and production ready. • It is not a fully featured web server. • It is recommended that you run it behind a more fully featured webserver like IIS on Windows or NGNIX on Linux. • It is run behind IIS using the ASP.NET Core Module (native IIS module). • Maps a HTTP Request to the HttpContext. Kestrel
  • 17. ©2016 Avanade Inc. All Rights Reserved. Kestrel performance 0 500000 1000000 1500000 2000000 2500000 3000000 ASP.NET 4.6 ASP.NET 5 NodeJS ASP.NET 5 Scala - Plain Netty IIS WebListener Node Kestrel Plain Netty Max of RPS Avg 1 - x64 1 - x86 16 - x64 16 - x86
  • 18. ©2016 Avanade Inc. All Rights Reserved.©2016 Avanade Inc. All Rights Reserved. 18 BREAK
  • 19. ©2016 Avanade Inc. All Rights Reserved. Asp.net Core web application Request Response Application Console.WriteLine(“Hello world!”) How to make a webapplication from a console app?
  • 20. ©2016 Avanade Inc. All Rights Reserved. Asp.net Core web application Request Response Application Add Kestrel Server Binds to a port and transforms request for Asp.net core Kestrel
  • 21. ©2016 Avanade Inc. All Rights Reserved. Asp.net Core web application Request Response Kestrel passes the request to a middleware pipeline Kestrel Middleware Middleware Middleware Middleware
  • 22. ©2016 Avanade Inc. All Rights Reserved. Asp.net Core web application Request Response Hello web Kestrel Helloworld
  • 23. ©2016 Avanade Inc. All Rights Reserved. Asp.net Core web application Middleware pipeline is method chaining Kestrel Middleware Middleware Middleware next() return return next() return Request Response
  • 24. ©2016 Avanade Inc. All Rights Reserved. Request pipeline
  • 25. ©2016 Avanade Inc. All Rights Reserved.©2016 Avanade Inc. All Rights Reserved. 25 Let’s play with the middleware pipeline
  • 26. ©2016 Avanade Inc. All Rights Reserved. Asp.net Core web application Kestrel server does nothing by default Cookie authentication Static Files Database error page Asp.net MVC Facebook authentication Developer Exception page Examples of middleware Add features as middleware! Runtime info page Status Code pages
  • 27. ©2016 Avanade Inc. All Rights Reserved. Web application framework Does: Routing – Modelbinding – Templating Goals: Seperation of concerns Patterns based Full control over output (html/json/xml) TDD friendly Asp.net MVC 6 ModelView Controller
  • 28. ©2016 Avanade Inc. All Rights Reserved. Asp.net Asp.net core Asp.net MVC 6 MVC 5 WebApi 2 System.Web Owin Asp.net Core {json} & <xml/> <html/> MVC 6 <html/>{json} & <xml/> git merge
  • 29. ©2016 Avanade Inc. All Rights Reserved.©2016 Avanade Inc. All Rights Reserved. 29 MVC Demo Yo maann! Before you start all over again
  • 30. ©2016 Avanade Inc. All Rights Reserved. • Scaffolding tool • npm install --global yo • Generates • Projects • Classes • Files • Uses generators • npm install --global generator-aspnet Yeoman Yo!
  • 31. ©2016 Avanade Inc. All Rights Reserved.©2016 Avanade Inc. All Rights Reserved. 31 yo aspnet
  • 32. ©2016 Avanade Inc. All Rights Reserved. Host my app dotnet run? Multiple apps on one server? (only one port 80) And SSL? Windows authentication? Going to production Request Response My Epic Web Application Kestrel
  • 33. ©2016 Avanade Inc. All Rights Reserved. Run it with a reverse proxy • IIS • Install ASP.NET Core Module first • nginx • Apache Going to production Request Response My Epic Web Application Kestrel IIS–nginx–apache :80/:443 :5000
  • 34. ©2016 Avanade Inc. All Rights Reserved.©2016 Avanade Inc. All Rights Reserved. 34 dotnet publish
  • 35. ©2016 Avanade Inc. All Rights Reserved. Asp.net core future Docker Nano Server (size 550MB) Microservices Azure service fabric Raspberry PI (ARM)
  • 36. ©2016 Avanade Inc. All Rights Reserved. Timeline Today 16 May 2016 June - July July - September End of 2016 .net core & Asp.net core RC2-final Tooling preview1 (Visual studio & dotnet-cli) .net core & Asp.net core RTM Tooling still in preview Asp.net core SignalR Tooling RTM Expecting .net core & asp.net core 1.1 .net core & Asp.net core RC2 almost final
  • 37. ©2016 Avanade Inc. All Rights Reserved. Starting point for .NET dot.net/ Asp.net core docs docs.asp.net/ All open source on Github • Github.com/dotnet/ • Github.com/aspnet/ • Github.com/microsoft/ Get Code it’s awesome (and open source) code.visualstudio.com/ Omnisharp intellisense for editors omnisharp.net/ github.com/omnisharp Getting started
  • 38. ©2016 Avanade Inc. All Rights Reserved. Questions?
  翻译: