尊敬的 微信汇率:1円 ≈ 0.046166 元 支付宝汇率:1円 ≈ 0.046257元 [退出登录]
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?

More Related Content

What's hot

.Net Core
.Net Core.Net Core
ASP.NET MVC Presentation
ASP.NET MVC PresentationASP.NET MVC Presentation
ASP.NET MVC Presentation
ivpol
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
habib_786
 
Express js
Express jsExpress js
Express js
Manav Prasad
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js Express
Eyal Vardi
 
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
Edureka!
 
Spring Boot and REST API
Spring Boot and REST APISpring Boot and REST API
Spring Boot and REST API
07.pallav
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
Rob O'Doherty
 
Angular
AngularAngular
Angular
Lilia Sfaxi
 
Entity Framework Core
Entity Framework CoreEntity Framework Core
Entity Framework Core
Kiran Shahi
 
Introduction Node.js
Introduction Node.jsIntroduction Node.js
Introduction Node.js
Erik van Appeldoorn
 
C# ASP.NET WEB API APPLICATION DEVELOPMENT
C# ASP.NET WEB API APPLICATION DEVELOPMENTC# ASP.NET WEB API APPLICATION DEVELOPMENT
C# ASP.NET WEB API APPLICATION DEVELOPMENT
Dr. Awase Khirni Syed
 
Spring boot Introduction
Spring boot IntroductionSpring boot Introduction
Spring boot Introduction
Jeevesh Pandey
 
Understanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsUnderstanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple Steps
Tessa Mero
 
Understanding REST
Understanding RESTUnderstanding REST
Understanding REST
Nitin Pande
 
Introduction to angular with a simple but complete project
Introduction to angular with a simple but complete projectIntroduction to angular with a simple but complete project
Introduction to angular with a simple but complete project
Jadson Santos
 
Spring Framework - AOP
Spring Framework - AOPSpring Framework - AOP
Spring Framework - AOP
Dzmitry Naskou
 
Angular 14.pptx
Angular 14.pptxAngular 14.pptx
Angular 14.pptx
MohaNedGhawar
 
Introduction to Swagger
Introduction to SwaggerIntroduction to Swagger
Introduction to Swagger
Knoldus Inc.
 
Spring Boot
Spring BootSpring Boot
Spring Boot
Pei-Tang Huang
 

What's hot (20)

.Net Core
.Net Core.Net Core
.Net Core
 
ASP.NET MVC Presentation
ASP.NET MVC PresentationASP.NET MVC Presentation
ASP.NET MVC Presentation
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
Express js
Express jsExpress js
Express js
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js Express
 
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js ...
 
Spring Boot and REST API
Spring Boot and REST APISpring Boot and REST API
Spring Boot and REST API
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Angular
AngularAngular
Angular
 
Entity Framework Core
Entity Framework CoreEntity Framework Core
Entity Framework Core
 
Introduction Node.js
Introduction Node.jsIntroduction Node.js
Introduction Node.js
 
C# ASP.NET WEB API APPLICATION DEVELOPMENT
C# ASP.NET WEB API APPLICATION DEVELOPMENTC# ASP.NET WEB API APPLICATION DEVELOPMENT
C# ASP.NET WEB API APPLICATION DEVELOPMENT
 
Spring boot Introduction
Spring boot IntroductionSpring boot Introduction
Spring boot Introduction
 
Understanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsUnderstanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple Steps
 
Understanding REST
Understanding RESTUnderstanding REST
Understanding REST
 
Introduction to angular with a simple but complete project
Introduction to angular with a simple but complete projectIntroduction to angular with a simple but complete project
Introduction to angular with a simple but complete project
 
Spring Framework - AOP
Spring Framework - AOPSpring Framework - AOP
Spring Framework - AOP
 
Angular 14.pptx
Angular 14.pptxAngular 14.pptx
Angular 14.pptx
 
Introduction to Swagger
Introduction to SwaggerIntroduction to Swagger
Introduction to Swagger
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 

Similar to Introduction to ASP.NET Core

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
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
 

Similar to Introduction to ASP.NET Core (20)

MiM asp.net core
MiM asp.net coreMiM asp.net core
MiM asp.net core
 
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
 
Asp.net in a new world
Asp.net in a new worldAsp.net in a new world
Asp.net in a new world
 
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
 
Moving forward with ASP.NET Core
Moving forward with ASP.NET CoreMoving forward with ASP.NET Core
Moving forward with ASP.NET Core
 
Dotnet on linux
Dotnet on linuxDotnet on linux
Dotnet on linux
 
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
 
Evolution / History of ASP.NET
Evolution / History of ASP.NETEvolution / History of ASP.NET
Evolution / History of ASP.NET
 
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
 
Javascript Essentials - Cisco Live Barcelona 2019
Javascript Essentials - Cisco Live Barcelona 2019Javascript Essentials - Cisco Live Barcelona 2019
Javascript Essentials - Cisco Live Barcelona 2019
 
.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
 
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
 
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
 
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)
 
Pottnet Meetup Essen - ASP.Net Core
Pottnet Meetup Essen - ASP.Net CorePottnet Meetup Essen - ASP.Net Core
Pottnet Meetup Essen - ASP.Net Core
 
Pottnet MeetUp Essen - ASP.Net Core
Pottnet MeetUp Essen - ASP.Net CorePottnet MeetUp Essen - ASP.Net Core
Pottnet MeetUp Essen - ASP.Net Core
 
ASP.NET
ASP.NETASP.NET
ASP.NET
 
Introduction to ASP.NET 5
Introduction to ASP.NET 5Introduction to ASP.NET 5
Introduction to ASP.NET 5
 
.Net: Introduction, trends and future
.Net: Introduction, trends and future.Net: Introduction, trends and future
.Net: Introduction, trends and future
 
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?
 

More from Avanade Nederland

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
 

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
 
Geek + E.I. = Success in AI
Geek + E.I. = Success in AIGeek + E.I. = Success in AI
Geek + E.I. = Success in AI
 
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
 
IOT & Machine Learning
IOT & Machine LearningIOT & Machine Learning
IOT & Machine Learning
 
Mixed Reality met Microsoft HoloLens
Mixed Reality met Microsoft HoloLensMixed Reality met Microsoft HoloLens
Mixed Reality met Microsoft HoloLens
 
Virtual Reality met HTC Vive
Virtual Reality met HTC ViveVirtual Reality met HTC Vive
Virtual Reality met HTC Vive
 
Power apps for business applications
Power apps for business applicationsPower apps for business applications
Power apps for business applications
 
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
 
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
 
Beveilig je data met windows 10
Beveilig je data met windows 10 Beveilig je data met windows 10
Beveilig je data met windows 10
 
Designing & Orchestrating the Customer Experience
Designing & Orchestrating the Customer ExperienceDesigning & Orchestrating the Customer Experience
Designing & Orchestrating the Customer Experience
 
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 Stageopdrachten
Avanade StageopdrachtenAvanade Stageopdrachten
Avanade Stageopdrachten
 
Digitale werklek adoptie
Digitale werklek adoptieDigitale werklek adoptie
Digitale werklek adoptie
 
Digital workplace insights
Digital workplace insightsDigital workplace insights
Digital workplace insights
 
Business case voor een digitale werkplek
Business case voor een digitale werkplekBusiness case voor een digitale werkplek
Business case voor een digitale werkplek
 
Van intranet naar een digitale werkplek
Van intranet naar een digitale werkplekVan intranet naar een digitale werkplek
Van intranet naar een digitale werkplek
 
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
 
Unified Service Desk for Contact Centers
Unified Service Desk for Contact CentersUnified Service Desk for Contact Centers
Unified Service Desk for Contact Centers
 
Principes van Service Oriented Architecture
Principes van Service Oriented ArchitecturePrincipes van Service Oriented Architecture
Principes van Service Oriented Architecture
 

Recently uploaded

QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
AlexanderRichford
 
TrustArc Webinar - Your Guide for Smooth Cross-Border Data Transfers and Glob...
TrustArc Webinar - Your Guide for Smooth Cross-Border Data Transfers and Glob...TrustArc Webinar - Your Guide for Smooth Cross-Border Data Transfers and Glob...
TrustArc Webinar - Your Guide for Smooth Cross-Border Data Transfers and Glob...
TrustArc
 
From NCSA to the National Research Platform
From NCSA to the National Research PlatformFrom NCSA to the National Research Platform
From NCSA to the National Research Platform
Larry Smarr
 
Introduction to ThousandEyes AMER Webinar
Introduction  to ThousandEyes AMER WebinarIntroduction  to ThousandEyes AMER Webinar
Introduction to ThousandEyes AMER Webinar
ThousandEyes
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
Enterprise Knowledge
 
APJC Introduction to ThousandEyes Webinar
APJC Introduction to ThousandEyes WebinarAPJC Introduction to ThousandEyes Webinar
APJC Introduction to ThousandEyes Webinar
ThousandEyes
 
New ThousandEyes Product Features and Release Highlights: June 2024
New ThousandEyes Product Features and Release Highlights: June 2024New ThousandEyes Product Features and Release Highlights: June 2024
New ThousandEyes Product Features and Release Highlights: June 2024
ThousandEyes
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
UiPathCommunity
 
Building a Semantic Layer of your Data Platform
Building a Semantic Layer of your Data PlatformBuilding a Semantic Layer of your Data Platform
Building a Semantic Layer of your Data Platform
Enterprise Knowledge
 
An Introduction to All Data Enterprise Integration
An Introduction to All Data Enterprise IntegrationAn Introduction to All Data Enterprise Integration
An Introduction to All Data Enterprise Integration
Safe Software
 
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdfLee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
leebarnesutopia
 
intra-mart Accel series 2024 Spring updates_En
intra-mart Accel series 2024 Spring updates_Enintra-mart Accel series 2024 Spring updates_En
intra-mart Accel series 2024 Spring updates_En
NTTDATA INTRAMART
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
MongoDB vs ScyllaDB: Tractian’s Experience with Real-Time ML
MongoDB vs ScyllaDB: Tractian’s Experience with Real-Time MLMongoDB vs ScyllaDB: Tractian’s Experience with Real-Time ML
MongoDB vs ScyllaDB: Tractian’s Experience with Real-Time ML
ScyllaDB
 
MongoDB to ScyllaDB: Technical Comparison and the Path to Success
MongoDB to ScyllaDB: Technical Comparison and the Path to SuccessMongoDB to ScyllaDB: Technical Comparison and the Path to Success
MongoDB to ScyllaDB: Technical Comparison and the Path to Success
ScyllaDB
 
Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...
Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...
Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...
anilsa9823
 
Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...
Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...
Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...
dipikamodels1
 
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
manji sharman06
 
So You've Lost Quorum: Lessons From Accidental Downtime
So You've Lost Quorum: Lessons From Accidental DowntimeSo You've Lost Quorum: Lessons From Accidental Downtime
So You've Lost Quorum: Lessons From Accidental Downtime
ScyllaDB
 
An All-Around Benchmark of the DBaaS Market
An All-Around Benchmark of the DBaaS MarketAn All-Around Benchmark of the DBaaS Market
An All-Around Benchmark of the DBaaS Market
ScyllaDB
 

Recently uploaded (20)

QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
 
TrustArc Webinar - Your Guide for Smooth Cross-Border Data Transfers and Glob...
TrustArc Webinar - Your Guide for Smooth Cross-Border Data Transfers and Glob...TrustArc Webinar - Your Guide for Smooth Cross-Border Data Transfers and Glob...
TrustArc Webinar - Your Guide for Smooth Cross-Border Data Transfers and Glob...
 
From NCSA to the National Research Platform
From NCSA to the National Research PlatformFrom NCSA to the National Research Platform
From NCSA to the National Research Platform
 
Introduction to ThousandEyes AMER Webinar
Introduction  to ThousandEyes AMER WebinarIntroduction  to ThousandEyes AMER Webinar
Introduction to ThousandEyes AMER Webinar
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
 
APJC Introduction to ThousandEyes Webinar
APJC Introduction to ThousandEyes WebinarAPJC Introduction to ThousandEyes Webinar
APJC Introduction to ThousandEyes Webinar
 
New ThousandEyes Product Features and Release Highlights: June 2024
New ThousandEyes Product Features and Release Highlights: June 2024New ThousandEyes Product Features and Release Highlights: June 2024
New ThousandEyes Product Features and Release Highlights: June 2024
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
 
Building a Semantic Layer of your Data Platform
Building a Semantic Layer of your Data PlatformBuilding a Semantic Layer of your Data Platform
Building a Semantic Layer of your Data Platform
 
An Introduction to All Data Enterprise Integration
An Introduction to All Data Enterprise IntegrationAn Introduction to All Data Enterprise Integration
An Introduction to All Data Enterprise Integration
 
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdfLee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
 
intra-mart Accel series 2024 Spring updates_En
intra-mart Accel series 2024 Spring updates_Enintra-mart Accel series 2024 Spring updates_En
intra-mart Accel series 2024 Spring updates_En
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
MongoDB vs ScyllaDB: Tractian’s Experience with Real-Time ML
MongoDB vs ScyllaDB: Tractian’s Experience with Real-Time MLMongoDB vs ScyllaDB: Tractian’s Experience with Real-Time ML
MongoDB vs ScyllaDB: Tractian’s Experience with Real-Time ML
 
MongoDB to ScyllaDB: Technical Comparison and the Path to Success
MongoDB to ScyllaDB: Technical Comparison and the Path to SuccessMongoDB to ScyllaDB: Technical Comparison and the Path to Success
MongoDB to ScyllaDB: Technical Comparison and the Path to Success
 
Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...
Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...
Call Girls Chennai ☎️ +91-7426014248 😍 Chennai Call Girl Beauty Girls Chennai...
 
Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...
Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...
Call Girls Kochi 💯Call Us 🔝 7426014248 🔝 Independent Kochi Escorts Service Av...
 
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
Call Girls Chandigarh🔥7023059433🔥Agency Profile Escorts in Chandigarh Availab...
 
So You've Lost Quorum: Lessons From Accidental Downtime
So You've Lost Quorum: Lessons From Accidental DowntimeSo You've Lost Quorum: Lessons From Accidental Downtime
So You've Lost Quorum: Lessons From Accidental Downtime
 
An All-Around Benchmark of the DBaaS Market
An All-Around Benchmark of the DBaaS MarketAn All-Around Benchmark of the DBaaS Market
An All-Around Benchmark of the DBaaS Market
 

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?
  翻译: