SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
©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?

Contenu connexe

Tendances

Microsoft dot net framework
Microsoft dot net frameworkMicrosoft dot net framework
Microsoft dot net framework
Ashish Verma
 

Tendances (20)

Laravel Introduction
Laravel IntroductionLaravel Introduction
Laravel Introduction
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js Express
 
ASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with Overview
 
Microsoft dot net framework
Microsoft dot net frameworkMicrosoft dot net framework
Microsoft dot net framework
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Soap vs rest
Soap vs restSoap vs rest
Soap vs rest
 
Asp.net.
Asp.net.Asp.net.
Asp.net.
 
Spring Web MVC
Spring Web MVCSpring Web MVC
Spring Web MVC
 
Spring boot introduction
Spring boot introductionSpring boot introduction
Spring boot introduction
 
Rest API
Rest APIRest API
Rest API
 
Asp.net mvc basic introduction
Asp.net mvc basic introductionAsp.net mvc basic introduction
Asp.net mvc basic introduction
 
Developing an ASP.NET Web Application
Developing an ASP.NET Web ApplicationDeveloping an ASP.NET Web Application
Developing an ASP.NET Web Application
 
Introduction to ASP.NET
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NET
 
Spring boot
Spring bootSpring boot
Spring boot
 
Postman.ppt
Postman.pptPostman.ppt
Postman.ppt
 
Spring Framework - AOP
Spring Framework - AOPSpring Framework - AOP
Spring Framework - AOP
 
Introducing ASP.NET Core 2.0
Introducing ASP.NET Core 2.0Introducing ASP.NET Core 2.0
Introducing ASP.NET Core 2.0
 
Spring Boot and REST API
Spring Boot and REST APISpring Boot and REST API
Spring Boot and REST API
 
Introduction to REST - API
Introduction to REST - APIIntroduction to REST - API
Introduction to REST - API
 
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
 

Similaire à Introduction to ASP.NET Core

Similaire à 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
 
.Net Core
.Net Core.Net Core
.Net Core
 
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
 

Plus de Avanade Nederland

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

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

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?