SlideShare a Scribd company logo
1 of 36
ASP.NET vNext
Reinventing Microsoft’s web stack
Alex Thissen
Introduction
Alex Thissen
Lead Consultant
https://www.linkedin.com/in/alexthissen
@alexthissen
http://www.xpirit.com
Agenda
• .NET and ASP.NET vNext architecture
• Running vNext applications
• Middleware
• MVC 6
• Visual Studio 2015 support
• Client-side web application development
• Summary
• Questions and Answers
Next gen JIT (“RyuJIT”)
SIMD (Data Parallelization)
Runtime Compilers
.NET Compiler Platform (“Roslyn”)
Languages innovation
BCL and PCL
Entity Framework
Libraries
ASP.NET vNext and the Modern Web
Choose your editors
and tools
Open Source
with contributions
Cross-Platform
Seamless transition
from on-premises to cloud
Faster development cycleTotally modular
Fast
Tenets from ASP.NET team
Command-line
first
• Facilitate cross-
platform
• Visual Studio for
premium
experience
Symmetry
• Between command-
line and vs
• Between server and
cloud
• It just works by
default in the cloud
and on-premises
Open source
• All code visible
(even during
development)
• Contributions
Light-weight and
Pay-as-you-go
• Only include what
you use
From monolith to pebbles
ASP.NET 4.5 (in CLR 4.5.2) ASP.NET 5.0
ASP.NET 5.0
Ingredients to the mix
Project KatanaOWIN npm NuGet
.NET Framework vNext
Full .NET CLR
• Entire API set in machine wide
install at 200 MB
• Updated with OS
• Ecosystem of existing packages
• Backward compatibility
• Default for
Visual Studio 2015 projects
Cloud Optimized CLR
• Lean and modular runtime
• Optimized for server
• Small memory footprint
• Libraries in NuGet packages
• Framework deployed with app
• Different versions can run side-
by-side
• 11 MB
Mono
• Cross-Platform runtime for
Linux and Mac OS X
• Together with Mono
community
ASP.NET 5.0 ASP.NET 5.0 ASP.NET 5.0
vNext technology stack
Host
Mac OS X
Linux
Self
Hosted
“Helios”
IIS
IIS Native Module IIS Native Module
.NET FX CLRCore CLR Mono CLR
.NET Base Class Library
ASP.NET vNext
Windows
Cloud/Server optimized
DEMO
.NET Compiler Platform (“Roslyn”)
TO
API: open platform
Rich IDE experiences/refactoring
Code analysis
Custom diagnostics
Open Source compilers
.NET Compilers Platform (a.k.a. ROSLYN)
C#, VB
Source code
.exe/.dil
IL assemblies
Open platform
for developers
FROM
Isolated/closed compilers
Hard to extend dev experience
C#, VB
Source code
.exe/.dil
IL assemblies
Established .NET compilers
Building and running
Web Server
Website
C# Code
(.cs file)
Binary
Roslyn
New project system
• Independent of Visual Studio
• JSON files instead of VS artefacts
• No more .csproj
• Every file is relevant
• Unless stated otherwise
• Different folder structure
• Build for multiple target frameworks
Project K – K galore
K: K for Katana
• Bootstrapper for KLR
• New name for KRE (?)
KRE: Runtime
Environment
• Home of runtimes and
packages
KVM: Version Manager
• Install or upgrade KRE
versions
• List available versions
• Switch default
KPM: Package manager
• Restore packages
• Pack and build project
• List dependencies
Simplify dependency management
• NuGet packages are unit
of reference
• Not assemblies
• Projects can reference
NuGet packages
and vice versa
Hosting
Runtime loading
• Dependency resolution rules
1. Nearest wins
2. Cousin dependencies
Deploying ASP.NET vNext applications
With source code Without source code
Startup
1. Host loads correct runtime
2. NuGet packages and assemblies get loaded
3. Application code is loaded and startup sequence inside app runs
• Configure
• ConfigureServices
Configuration
• Multiple configuration sources
• JSON, XML or INI files
• Environment variables
• Command-line arguments (console applications)
• New hierarchical syntax with colons (:)
Configuration config = new Configuration();
config
.AddIniFile(@"App_Datasetting.ini")
.AddEnvironmentVariables();
string conn = config.Get("database:connectionString");
Dependency Injection
• DI is core part of runtime
• Built-in DI for configuration and services
• Default minimalistic version available
• Wire up your own favorite IoC container ...
• Autofac, Ninject, StructureMap, Unity, Castle Windsor
public void ConfigureServices(IServiceCollection services)
{
// Add EF services to the services container.
services.AddEntityFramework(Configuration)
.AddSqlServer()
.AddDbContext<ApplicationDbContext>();
Other features
• Templates and scaffolding
• k gen
• Razor instead of T4 templates in ASP.NET vNext
• Server Features
Middleware conceptually
Middleware stack
• Static files
• Security, authentication, CORS
• Diagnostics, logging
• Other cross-cutting concerns
Host process and server
Application and framework
RequestDelegate delegate Task
RequestDelegate(HttpContext context);
• Pipeline of components between server and application
• Connected through RequestDelegate
• Constructed at startup of app
vNext compatible
application frameworks
Middleware architecture
Stacking pipeline parts
Host
Middleware
pipeline
public void Configure(IApplicationBuilder app)
{
app.Map("/Nancy",
builder =>
{ builder.Use<LogMiddleware>();
builder.RunNancyFx();
});
app.UseCors();
app.UseMvc(cfg);
Use, Map and Run
app.UseErrorPage();
Custom middleware
• All middleware has same
purpose
• Run Func implementation of itself
• Invoke next component in pipeline
• Use initialization pattern
• Options object
• Extension method on
IApplicationBuilder
Create your own middleware components
Middleware
type
• POCO class
• Implement Invoke
Owin
Middleware
• Base class
• Implement Invoke
Funcy
Delegate
• Func<
RequestDelegate,
RequestDelegate>
Middleware
Instance
• Any object instance
of the previous
• IoC
Assembly Neutral Interfaces
• Allows an interface's identity to not be tied to its assembly
• Interface used as a contract
• No requirement on shared binary asset (compile-time and run-time)
• Interfaces must be identical
• Exact same types and marked with [AssemblyNeutral]
[AssemblyNeutral]
public interface ILogger
{
void Log(string message);
}
ASP.NET components
MVC 6
Unified Web Stack
ASP.NET MVC 6
• One set of concepts – remove duplication
• Web UI and APIs
• Smooth transition from Web Pages to MVC
• Built DI first
• Run on IIS or self-host
• Based on new request pipeline in ASP.NET vNext
• Runs cloud-optimized
New and improved (some details)
• Classes of Controller and ApiController merged
• No required base class for controller
• POCO controller classes
• REST and classic MVC style actions
• Dependency Injection everywhere
• [Activate], [FromServices]
• Constructors
• ViewComponents
• Route tokens [controller] and [action]
Project structure
• Visual Studio plays nicely with other editors
• All files included by default
• VS specific files .kproj when needed
• No files written to disk
• Combined IntelliSense
• Config improvements
Bower, grunt and gulp in Visual Studio
• Task Runner Explorer
Package managers for client
and server
Task Runners
Getting started
• Main starting point at http://www.asp.net/vnext
• Open sourced at
• http://github.com/aspnet
• http://github.com/dotnet/home
• Help and feedback
• JabbR: https://jabbr.net/#rooms/aspnetvnext
• ASP.NET vNext forums: http://forums.asp.net/
• Nightly build for the adventurous
• http://github.com/aspnet/home for instructions on how to do bleeding edge
Summary
ASP.NET vNext is glimpse into future of .NET:
• Modular
• Unified
• Cross-Platform
http://www.xpirit.com
Leading IT specialists in
Microsoft Application Lifecycle Management,
Cloud, Enterprise Mobility & Security style

More Related Content

What's hot

How Class Data Sharing Can Speed up Your Jakarta EE Application Startup
How Class Data Sharing Can Speed up Your Jakarta EE Application StartupHow Class Data Sharing Can Speed up Your Jakarta EE Application Startup
How Class Data Sharing Can Speed up Your Jakarta EE Application StartupRudy De Busscher
 
Continuous delivery by sergey seletsky
Continuous delivery by sergey seletskyContinuous delivery by sergey seletsky
Continuous delivery by sergey seletskySergey Seletsky
 
A (XPages) developers guide to Cloudant - MeetIT
A (XPages) developers guide to Cloudant - MeetITA (XPages) developers guide to Cloudant - MeetIT
A (XPages) developers guide to Cloudant - MeetITFrank van der Linden
 
TDD a REST API With Node.js and MongoDB
TDD a REST API With Node.js and MongoDBTDD a REST API With Node.js and MongoDB
TDD a REST API With Node.js and MongoDBValeri Karpov
 
Spring cloud for microservices architecture
Spring cloud for microservices architectureSpring cloud for microservices architecture
Spring cloud for microservices architectureIgor Khotin
 
Neil Peterson - Azure CLI Deep Dive
Neil Peterson - Azure CLI Deep DiveNeil Peterson - Azure CLI Deep Dive
Neil Peterson - Azure CLI Deep DiveWinOps Conf
 
Part 3 of the REAL Webinars on Oracle Cloud Native Application Development (J...
Part 3 of the REAL Webinars on Oracle Cloud Native Application Development (J...Part 3 of the REAL Webinars on Oracle Cloud Native Application Development (J...
Part 3 of the REAL Webinars on Oracle Cloud Native Application Development (J...Lucas Jellema
 
Moving microsoft .net applications one container at a time
 Moving microsoft .net applications one container at a time  Moving microsoft .net applications one container at a time
Moving microsoft .net applications one container at a time Amazon Web Services
 
Real World Rails Deployment
Real World Rails DeploymentReal World Rails Deployment
Real World Rails DeploymentAlan Hecht
 
Building a PaaS with Docker and AWS
Building a PaaS with Docker and AWSBuilding a PaaS with Docker and AWS
Building a PaaS with Docker and AWSAmazon Web Services
 
Ozone-Wayland Support in Chromium (GENIVI 13th All Member Meeting & AMM Open ...
Ozone-Wayland Support in Chromium (GENIVI 13th All Member Meeting & AMM Open ...Ozone-Wayland Support in Chromium (GENIVI 13th All Member Meeting & AMM Open ...
Ozone-Wayland Support in Chromium (GENIVI 13th All Member Meeting & AMM Open ...Igalia
 
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)Red Hat Developers
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?Eduard Tomàs
 
Scripting Languages in OSGi
Scripting Languages in OSGiScripting Languages in OSGi
Scripting Languages in OSGiFrank Lyaruu
 
ApacheCon Core: Service Discovery in OSGi: Beyond the JVM using Docker and Co...
ApacheCon Core: Service Discovery in OSGi: Beyond the JVM using Docker and Co...ApacheCon Core: Service Discovery in OSGi: Beyond the JVM using Docker and Co...
ApacheCon Core: Service Discovery in OSGi: Beyond the JVM using Docker and Co...Frank Lyaruu
 
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)Red Hat Developers
 
Service Discovery in OSGi: Beyond the JVM using Docker and Consul
Service Discovery in OSGi: Beyond the JVM using Docker and ConsulService Discovery in OSGi: Beyond the JVM using Docker and Consul
Service Discovery in OSGi: Beyond the JVM using Docker and ConsulFrank Lyaruu
 
JavaEE Microservices platforms
JavaEE Microservices platformsJavaEE Microservices platforms
JavaEE Microservices platformsPayara
 

What's hot (20)

How Class Data Sharing Can Speed up Your Jakarta EE Application Startup
How Class Data Sharing Can Speed up Your Jakarta EE Application StartupHow Class Data Sharing Can Speed up Your Jakarta EE Application Startup
How Class Data Sharing Can Speed up Your Jakarta EE Application Startup
 
Node.js Chapter1
Node.js Chapter1Node.js Chapter1
Node.js Chapter1
 
Continuous delivery by sergey seletsky
Continuous delivery by sergey seletskyContinuous delivery by sergey seletsky
Continuous delivery by sergey seletsky
 
A (XPages) developers guide to Cloudant - MeetIT
A (XPages) developers guide to Cloudant - MeetITA (XPages) developers guide to Cloudant - MeetIT
A (XPages) developers guide to Cloudant - MeetIT
 
TDD a REST API With Node.js and MongoDB
TDD a REST API With Node.js and MongoDBTDD a REST API With Node.js and MongoDB
TDD a REST API With Node.js and MongoDB
 
Spring cloud for microservices architecture
Spring cloud for microservices architectureSpring cloud for microservices architecture
Spring cloud for microservices architecture
 
Neil Peterson - Azure CLI Deep Dive
Neil Peterson - Azure CLI Deep DiveNeil Peterson - Azure CLI Deep Dive
Neil Peterson - Azure CLI Deep Dive
 
Part 3 of the REAL Webinars on Oracle Cloud Native Application Development (J...
Part 3 of the REAL Webinars on Oracle Cloud Native Application Development (J...Part 3 of the REAL Webinars on Oracle Cloud Native Application Development (J...
Part 3 of the REAL Webinars on Oracle Cloud Native Application Development (J...
 
Mini-Training Owin Katana
Mini-Training Owin KatanaMini-Training Owin Katana
Mini-Training Owin Katana
 
Moving microsoft .net applications one container at a time
 Moving microsoft .net applications one container at a time  Moving microsoft .net applications one container at a time
Moving microsoft .net applications one container at a time
 
Real World Rails Deployment
Real World Rails DeploymentReal World Rails Deployment
Real World Rails Deployment
 
Building a PaaS with Docker and AWS
Building a PaaS with Docker and AWSBuilding a PaaS with Docker and AWS
Building a PaaS with Docker and AWS
 
Ozone-Wayland Support in Chromium (GENIVI 13th All Member Meeting & AMM Open ...
Ozone-Wayland Support in Chromium (GENIVI 13th All Member Meeting & AMM Open ...Ozone-Wayland Support in Chromium (GENIVI 13th All Member Meeting & AMM Open ...
Ozone-Wayland Support in Chromium (GENIVI 13th All Member Meeting & AMM Open ...
 
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
Full Stack Development With Node.Js And NoSQL (Nic Raboy & Arun Gupta)
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?
 
Scripting Languages in OSGi
Scripting Languages in OSGiScripting Languages in OSGi
Scripting Languages in OSGi
 
ApacheCon Core: Service Discovery in OSGi: Beyond the JVM using Docker and Co...
ApacheCon Core: Service Discovery in OSGi: Beyond the JVM using Docker and Co...ApacheCon Core: Service Discovery in OSGi: Beyond the JVM using Docker and Co...
ApacheCon Core: Service Discovery in OSGi: Beyond the JVM using Docker and Co...
 
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
 
Service Discovery in OSGi: Beyond the JVM using Docker and Consul
Service Discovery in OSGi: Beyond the JVM using Docker and ConsulService Discovery in OSGi: Beyond the JVM using Docker and Consul
Service Discovery in OSGi: Beyond the JVM using Docker and Consul
 
JavaEE Microservices platforms
JavaEE Microservices platformsJavaEE Microservices platforms
JavaEE Microservices platforms
 

Viewers also liked

Report by the Task Force for the Establishment of a pan-European Retirement S...
Report by the Task Force for the Establishment of a pan-European Retirement S...Report by the Task Force for the Establishment of a pan-European Retirement S...
Report by the Task Force for the Establishment of a pan-European Retirement S...Théodore Economou
 
MPA GLobal Diversity Governance - Digital
MPA GLobal Diversity Governance - DigitalMPA GLobal Diversity Governance - Digital
MPA GLobal Diversity Governance - DigitalTom Fisher
 
Amd apuntes-fluidos
Amd apuntes-fluidosAmd apuntes-fluidos
Amd apuntes-fluidoslis yucra
 
Near_Neighbours_Coventry_University_Evaluation (1)
Near_Neighbours_Coventry_University_Evaluation (1)Near_Neighbours_Coventry_University_Evaluation (1)
Near_Neighbours_Coventry_University_Evaluation (1)Tom Fisher
 
Martin Mastwyk Resume 2016
Martin Mastwyk Resume 2016Martin Mastwyk Resume 2016
Martin Mastwyk Resume 2016Marty Mastwyk
 
Mohamed Ali 2015
Mohamed Ali 2015Mohamed Ali 2015
Mohamed Ali 2015Mohamed Ali
 
Retail Presentation_mobile_customer_connect_Oct2015
Retail Presentation_mobile_customer_connect_Oct2015Retail Presentation_mobile_customer_connect_Oct2015
Retail Presentation_mobile_customer_connect_Oct2015Natalia Haluszka
 
CNC & CNA : planifiez, sauvegardez et restaurez les configurations de vos équ...
CNC & CNA : planifiez, sauvegardez et restaurez les configurations de vos équ...CNC & CNA : planifiez, sauvegardez et restaurez les configurations de vos équ...
CNC & CNA : planifiez, sauvegardez et restaurez les configurations de vos équ...Zyxel France
 
Remote patient monitoring technology
Remote patient monitoring technologyRemote patient monitoring technology
Remote patient monitoring technologyremote healthtech
 
Padilla sosa lizeth_margarita_tarea5
Padilla sosa lizeth_margarita_tarea5Padilla sosa lizeth_margarita_tarea5
Padilla sosa lizeth_margarita_tarea5Lizeth Padilla
 

Viewers also liked (14)

Report by the Task Force for the Establishment of a pan-European Retirement S...
Report by the Task Force for the Establishment of a pan-European Retirement S...Report by the Task Force for the Establishment of a pan-European Retirement S...
Report by the Task Force for the Establishment of a pan-European Retirement S...
 
MPA GLobal Diversity Governance - Digital
MPA GLobal Diversity Governance - DigitalMPA GLobal Diversity Governance - Digital
MPA GLobal Diversity Governance - Digital
 
Amd apuntes-fluidos
Amd apuntes-fluidosAmd apuntes-fluidos
Amd apuntes-fluidos
 
Near_Neighbours_Coventry_University_Evaluation (1)
Near_Neighbours_Coventry_University_Evaluation (1)Near_Neighbours_Coventry_University_Evaluation (1)
Near_Neighbours_Coventry_University_Evaluation (1)
 
Martin Mastwyk Resume 2016
Martin Mastwyk Resume 2016Martin Mastwyk Resume 2016
Martin Mastwyk Resume 2016
 
Universal vcoin ppt
Universal vcoin ppt Universal vcoin ppt
Universal vcoin ppt
 
Mohamed Ali 2015
Mohamed Ali 2015Mohamed Ali 2015
Mohamed Ali 2015
 
Retail Presentation_mobile_customer_connect_Oct2015
Retail Presentation_mobile_customer_connect_Oct2015Retail Presentation_mobile_customer_connect_Oct2015
Retail Presentation_mobile_customer_connect_Oct2015
 
Portfolio_Paper
Portfolio_PaperPortfolio_Paper
Portfolio_Paper
 
FedEx Final Project
FedEx Final ProjectFedEx Final Project
FedEx Final Project
 
CNC & CNA : planifiez, sauvegardez et restaurez les configurations de vos équ...
CNC & CNA : planifiez, sauvegardez et restaurez les configurations de vos équ...CNC & CNA : planifiez, sauvegardez et restaurez les configurations de vos équ...
CNC & CNA : planifiez, sauvegardez et restaurez les configurations de vos équ...
 
Remote patient monitoring technology
Remote patient monitoring technologyRemote patient monitoring technology
Remote patient monitoring technology
 
Meghna
MeghnaMeghna
Meghna
 
Padilla sosa lizeth_margarita_tarea5
Padilla sosa lizeth_margarita_tarea5Padilla sosa lizeth_margarita_tarea5
Padilla sosa lizeth_margarita_tarea5
 

Similar to ASP.NET vNext

.NET Core: a new .NET Platform
.NET Core: a new .NET Platform.NET Core: a new .NET Platform
.NET Core: a new .NET PlatformAlex Thissen
 
Introduction to ASP.NET 5
Introduction to ASP.NET 5Introduction to ASP.NET 5
Introduction to ASP.NET 5mbaric
 
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeployAmazon Web Services
 
ASP.NET 5 - Microsoft's Web development platform reimagined
ASP.NET 5 - Microsoft's Web development platform reimaginedASP.NET 5 - Microsoft's Web development platform reimagined
ASP.NET 5 - Microsoft's Web development platform reimaginedAlex Thissen
 
Building Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with DockerBuilding Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with DockerLaura Frank Tacho
 
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...Tokyo Azure Meetup
 
What's New in .Net 4.5
What's New in .Net 4.5What's New in .Net 4.5
What's New in .Net 4.5Malam Team
 
Containers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshellContainers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshellEugene Fedorenko
 
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)Amazon Web Services
 
Asp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework CoreAsp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework Coremohamed elshafey
 
SOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class LibrariesSOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class LibrariesVagif Abilov
 
NuGet 3.0 - Transitioning from OData to JSON-LD
NuGet 3.0 - Transitioning from OData to JSON-LDNuGet 3.0 - Transitioning from OData to JSON-LD
NuGet 3.0 - Transitioning from OData to JSON-LDJeff Handley
 
“ASP.NET Core. Features and architecture”
“ASP.NET Core. Features and architecture” “ASP.NET Core. Features and architecture”
“ASP.NET Core. Features and architecture” HYS Enterprise
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAmazon Web Services
 
Developing Applications on AWS with .NET Core - DEV330 - re:Invent 2017
Developing Applications on AWS with .NET Core - DEV330 - re:Invent 2017Developing Applications on AWS with .NET Core - DEV330 - re:Invent 2017
Developing Applications on AWS with .NET Core - DEV330 - re:Invent 2017Amazon Web Services
 
基于Aws的持续集成、交付和部署 代闻
基于Aws的持续集成、交付和部署 代闻基于Aws的持续集成、交付和部署 代闻
基于Aws的持续集成、交付和部署 代闻Mason Mei
 

Similar to ASP.NET vNext (20)

.NET Core: a new .NET Platform
.NET Core: a new .NET Platform.NET Core: a new .NET Platform
.NET Core: a new .NET Platform
 
Introduction to ASP.NET 5
Introduction to ASP.NET 5Introduction to ASP.NET 5
Introduction to ASP.NET 5
 
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
 
ASP.NET 5 - Microsoft's Web development platform reimagined
ASP.NET 5 - Microsoft's Web development platform reimaginedASP.NET 5 - Microsoft's Web development platform reimagined
ASP.NET 5 - Microsoft's Web development platform reimagined
 
Building Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with DockerBuilding Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with Docker
 
Adf with docker
Adf with dockerAdf with docker
Adf with docker
 
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
 
What's New in .Net 4.5
What's New in .Net 4.5What's New in .Net 4.5
What's New in .Net 4.5
 
ASP.NET 5
ASP.NET 5ASP.NET 5
ASP.NET 5
 
Containers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshellContainers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshell
 
ASP.NET
ASP.NETASP.NET
ASP.NET
 
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
 
Asp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework CoreAsp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework Core
 
SOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class LibrariesSOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class Libraries
 
NuGet 3.0 - Transitioning from OData to JSON-LD
NuGet 3.0 - Transitioning from OData to JSON-LDNuGet 3.0 - Transitioning from OData to JSON-LD
NuGet 3.0 - Transitioning from OData to JSON-LD
 
“ASP.NET Core. Features and architecture”
“ASP.NET Core. Features and architecture” “ASP.NET Core. Features and architecture”
“ASP.NET Core. Features and architecture”
 
Short-Training asp.net vNext
Short-Training asp.net vNextShort-Training asp.net vNext
Short-Training asp.net vNext
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck Talks
 
Developing Applications on AWS with .NET Core - DEV330 - re:Invent 2017
Developing Applications on AWS with .NET Core - DEV330 - re:Invent 2017Developing Applications on AWS with .NET Core - DEV330 - re:Invent 2017
Developing Applications on AWS with .NET Core - DEV330 - re:Invent 2017
 
基于Aws的持续集成、交付和部署 代闻
基于Aws的持续集成、交付和部署 代闻基于Aws的持续集成、交付和部署 代闻
基于Aws的持续集成、交付和部署 代闻
 

More from Alex Thissen

Go (con)figure - Making sense of .NET configuration
Go (con)figure - Making sense of .NET configurationGo (con)figure - Making sense of .NET configuration
Go (con)figure - Making sense of .NET configurationAlex Thissen
 
Logging, tracing and metrics: Instrumentation in .NET 5 and Azure
Logging, tracing and metrics: Instrumentation in .NET 5 and AzureLogging, tracing and metrics: Instrumentation in .NET 5 and Azure
Logging, tracing and metrics: Instrumentation in .NET 5 and AzureAlex Thissen
 
Logging tracing and metrics in .NET Core and Azure - dotnetdays 2020
Logging tracing and metrics in .NET Core and Azure - dotnetdays 2020Logging tracing and metrics in .NET Core and Azure - dotnetdays 2020
Logging tracing and metrics in .NET Core and Azure - dotnetdays 2020Alex Thissen
 
Health monitoring and dependency injection - CNUG November 2019
Health monitoring and dependency injection - CNUG November 2019Health monitoring and dependency injection - CNUG November 2019
Health monitoring and dependency injection - CNUG November 2019Alex Thissen
 
Architecting .NET solutions in a Docker ecosystem - .NET Fest Kyiv 2019
Architecting .NET solutions in a Docker ecosystem - .NET Fest Kyiv 2019Architecting .NET solutions in a Docker ecosystem - .NET Fest Kyiv 2019
Architecting .NET solutions in a Docker ecosystem - .NET Fest Kyiv 2019Alex Thissen
 
I dont feel so well. Integrating health checks in your .NET Core solutions - ...
I dont feel so well. Integrating health checks in your .NET Core solutions - ...I dont feel so well. Integrating health checks in your .NET Core solutions - ...
I dont feel so well. Integrating health checks in your .NET Core solutions - ...Alex Thissen
 
It depends: Loving .NET Core dependency injection or not
It depends: Loving .NET Core dependency injection or notIt depends: Loving .NET Core dependency injection or not
It depends: Loving .NET Core dependency injection or notAlex Thissen
 
Overview of the new .NET Core and .NET Platform Standard
Overview of the new .NET Core and .NET Platform StandardOverview of the new .NET Core and .NET Platform Standard
Overview of the new .NET Core and .NET Platform StandardAlex Thissen
 
Exploring Microservices in a Microsoft Landscape
Exploring Microservices in a Microsoft LandscapeExploring Microservices in a Microsoft Landscape
Exploring Microservices in a Microsoft LandscapeAlex Thissen
 
How Docker and ASP.NET Core will change the life of a Microsoft developer
How Docker and ASP.NET Core will change the life of a Microsoft developerHow Docker and ASP.NET Core will change the life of a Microsoft developer
How Docker and ASP.NET Core will change the life of a Microsoft developerAlex Thissen
 
Visual Studio Productivity tips
Visual Studio Productivity tipsVisual Studio Productivity tips
Visual Studio Productivity tipsAlex Thissen
 
Exploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscapeExploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscapeAlex Thissen
 
Visual Studio 2015 experts tips and tricks
Visual Studio 2015 experts tips and tricksVisual Studio 2015 experts tips and tricks
Visual Studio 2015 experts tips and tricksAlex Thissen
 

More from Alex Thissen (14)

Go (con)figure - Making sense of .NET configuration
Go (con)figure - Making sense of .NET configurationGo (con)figure - Making sense of .NET configuration
Go (con)figure - Making sense of .NET configuration
 
Logging, tracing and metrics: Instrumentation in .NET 5 and Azure
Logging, tracing and metrics: Instrumentation in .NET 5 and AzureLogging, tracing and metrics: Instrumentation in .NET 5 and Azure
Logging, tracing and metrics: Instrumentation in .NET 5 and Azure
 
Logging tracing and metrics in .NET Core and Azure - dotnetdays 2020
Logging tracing and metrics in .NET Core and Azure - dotnetdays 2020Logging tracing and metrics in .NET Core and Azure - dotnetdays 2020
Logging tracing and metrics in .NET Core and Azure - dotnetdays 2020
 
Health monitoring and dependency injection - CNUG November 2019
Health monitoring and dependency injection - CNUG November 2019Health monitoring and dependency injection - CNUG November 2019
Health monitoring and dependency injection - CNUG November 2019
 
Architecting .NET solutions in a Docker ecosystem - .NET Fest Kyiv 2019
Architecting .NET solutions in a Docker ecosystem - .NET Fest Kyiv 2019Architecting .NET solutions in a Docker ecosystem - .NET Fest Kyiv 2019
Architecting .NET solutions in a Docker ecosystem - .NET Fest Kyiv 2019
 
I dont feel so well. Integrating health checks in your .NET Core solutions - ...
I dont feel so well. Integrating health checks in your .NET Core solutions - ...I dont feel so well. Integrating health checks in your .NET Core solutions - ...
I dont feel so well. Integrating health checks in your .NET Core solutions - ...
 
It depends: Loving .NET Core dependency injection or not
It depends: Loving .NET Core dependency injection or notIt depends: Loving .NET Core dependency injection or not
It depends: Loving .NET Core dependency injection or not
 
Overview of the new .NET Core and .NET Platform Standard
Overview of the new .NET Core and .NET Platform StandardOverview of the new .NET Core and .NET Platform Standard
Overview of the new .NET Core and .NET Platform Standard
 
Exploring Microservices in a Microsoft Landscape
Exploring Microservices in a Microsoft LandscapeExploring Microservices in a Microsoft Landscape
Exploring Microservices in a Microsoft Landscape
 
How Docker and ASP.NET Core will change the life of a Microsoft developer
How Docker and ASP.NET Core will change the life of a Microsoft developerHow Docker and ASP.NET Core will change the life of a Microsoft developer
How Docker and ASP.NET Core will change the life of a Microsoft developer
 
Visual Studio Productivity tips
Visual Studio Productivity tipsVisual Studio Productivity tips
Visual Studio Productivity tips
 
Exploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscapeExploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscape
 
Visual Studio 2015 experts tips and tricks
Visual Studio 2015 experts tips and tricksVisual Studio 2015 experts tips and tricks
Visual Studio 2015 experts tips and tricks
 
//customer/
//customer///customer/
//customer/
 

Recently uploaded

What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 

Recently uploaded (20)

What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 

ASP.NET vNext

  • 3. Agenda • .NET and ASP.NET vNext architecture • Running vNext applications • Middleware • MVC 6 • Visual Studio 2015 support • Client-side web application development • Summary • Questions and Answers
  • 4. Next gen JIT (“RyuJIT”) SIMD (Data Parallelization) Runtime Compilers .NET Compiler Platform (“Roslyn”) Languages innovation BCL and PCL Entity Framework Libraries
  • 5. ASP.NET vNext and the Modern Web Choose your editors and tools Open Source with contributions Cross-Platform Seamless transition from on-premises to cloud Faster development cycleTotally modular Fast
  • 6. Tenets from ASP.NET team Command-line first • Facilitate cross- platform • Visual Studio for premium experience Symmetry • Between command- line and vs • Between server and cloud • It just works by default in the cloud and on-premises Open source • All code visible (even during development) • Contributions Light-weight and Pay-as-you-go • Only include what you use
  • 7. From monolith to pebbles ASP.NET 4.5 (in CLR 4.5.2) ASP.NET 5.0 ASP.NET 5.0
  • 8. Ingredients to the mix Project KatanaOWIN npm NuGet
  • 9. .NET Framework vNext Full .NET CLR • Entire API set in machine wide install at 200 MB • Updated with OS • Ecosystem of existing packages • Backward compatibility • Default for Visual Studio 2015 projects Cloud Optimized CLR • Lean and modular runtime • Optimized for server • Small memory footprint • Libraries in NuGet packages • Framework deployed with app • Different versions can run side- by-side • 11 MB Mono • Cross-Platform runtime for Linux and Mac OS X • Together with Mono community ASP.NET 5.0 ASP.NET 5.0 ASP.NET 5.0
  • 10. vNext technology stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module .NET FX CLRCore CLR Mono CLR .NET Base Class Library ASP.NET vNext Windows Cloud/Server optimized
  • 11. DEMO
  • 12. .NET Compiler Platform (“Roslyn”) TO API: open platform Rich IDE experiences/refactoring Code analysis Custom diagnostics Open Source compilers .NET Compilers Platform (a.k.a. ROSLYN) C#, VB Source code .exe/.dil IL assemblies Open platform for developers FROM Isolated/closed compilers Hard to extend dev experience C#, VB Source code .exe/.dil IL assemblies Established .NET compilers
  • 13. Building and running Web Server Website C# Code (.cs file) Binary Roslyn
  • 14. New project system • Independent of Visual Studio • JSON files instead of VS artefacts • No more .csproj • Every file is relevant • Unless stated otherwise • Different folder structure • Build for multiple target frameworks
  • 15. Project K – K galore K: K for Katana • Bootstrapper for KLR • New name for KRE (?) KRE: Runtime Environment • Home of runtimes and packages KVM: Version Manager • Install or upgrade KRE versions • List available versions • Switch default KPM: Package manager • Restore packages • Pack and build project • List dependencies
  • 16. Simplify dependency management • NuGet packages are unit of reference • Not assemblies • Projects can reference NuGet packages and vice versa
  • 18. Runtime loading • Dependency resolution rules 1. Nearest wins 2. Cousin dependencies
  • 19. Deploying ASP.NET vNext applications With source code Without source code
  • 20. Startup 1. Host loads correct runtime 2. NuGet packages and assemblies get loaded 3. Application code is loaded and startup sequence inside app runs • Configure • ConfigureServices
  • 21. Configuration • Multiple configuration sources • JSON, XML or INI files • Environment variables • Command-line arguments (console applications) • New hierarchical syntax with colons (:) Configuration config = new Configuration(); config .AddIniFile(@"App_Datasetting.ini") .AddEnvironmentVariables(); string conn = config.Get("database:connectionString");
  • 22. Dependency Injection • DI is core part of runtime • Built-in DI for configuration and services • Default minimalistic version available • Wire up your own favorite IoC container ... • Autofac, Ninject, StructureMap, Unity, Castle Windsor public void ConfigureServices(IServiceCollection services) { // Add EF services to the services container. services.AddEntityFramework(Configuration) .AddSqlServer() .AddDbContext<ApplicationDbContext>();
  • 23. Other features • Templates and scaffolding • k gen • Razor instead of T4 templates in ASP.NET vNext • Server Features
  • 24. Middleware conceptually Middleware stack • Static files • Security, authentication, CORS • Diagnostics, logging • Other cross-cutting concerns Host process and server Application and framework RequestDelegate delegate Task RequestDelegate(HttpContext context);
  • 25. • Pipeline of components between server and application • Connected through RequestDelegate • Constructed at startup of app vNext compatible application frameworks Middleware architecture Stacking pipeline parts Host Middleware pipeline
  • 26. public void Configure(IApplicationBuilder app) { app.Map("/Nancy", builder => { builder.Use<LogMiddleware>(); builder.RunNancyFx(); }); app.UseCors(); app.UseMvc(cfg); Use, Map and Run app.UseErrorPage();
  • 27. Custom middleware • All middleware has same purpose • Run Func implementation of itself • Invoke next component in pipeline • Use initialization pattern • Options object • Extension method on IApplicationBuilder Create your own middleware components Middleware type • POCO class • Implement Invoke Owin Middleware • Base class • Implement Invoke Funcy Delegate • Func< RequestDelegate, RequestDelegate> Middleware Instance • Any object instance of the previous • IoC
  • 28. Assembly Neutral Interfaces • Allows an interface's identity to not be tied to its assembly • Interface used as a contract • No requirement on shared binary asset (compile-time and run-time) • Interfaces must be identical • Exact same types and marked with [AssemblyNeutral] [AssemblyNeutral] public interface ILogger { void Log(string message); }
  • 30. ASP.NET MVC 6 • One set of concepts – remove duplication • Web UI and APIs • Smooth transition from Web Pages to MVC • Built DI first • Run on IIS or self-host • Based on new request pipeline in ASP.NET vNext • Runs cloud-optimized
  • 31. New and improved (some details) • Classes of Controller and ApiController merged • No required base class for controller • POCO controller classes • REST and classic MVC style actions • Dependency Injection everywhere • [Activate], [FromServices] • Constructors • ViewComponents • Route tokens [controller] and [action]
  • 32. Project structure • Visual Studio plays nicely with other editors • All files included by default • VS specific files .kproj when needed • No files written to disk • Combined IntelliSense • Config improvements
  • 33. Bower, grunt and gulp in Visual Studio • Task Runner Explorer Package managers for client and server Task Runners
  • 34. Getting started • Main starting point at http://www.asp.net/vnext • Open sourced at • http://github.com/aspnet • http://github.com/dotnet/home • Help and feedback • JabbR: https://jabbr.net/#rooms/aspnetvnext • ASP.NET vNext forums: http://forums.asp.net/ • Nightly build for the adventurous • http://github.com/aspnet/home for instructions on how to do bleeding edge
  • 35. Summary ASP.NET vNext is glimpse into future of .NET: • Modular • Unified • Cross-Platform
  • 36. http://www.xpirit.com Leading IT specialists in Microsoft Application Lifecycle Management, Cloud, Enterprise Mobility & Security style

Editor's Notes

  1. http://nuget.codeplex.com/releases/view/59864
  2. https://github.com/aspnet/Home/wiki/KRuntime-structure
  3. https://github.com/aspnet/Home/wiki/Dependency-Resolution
  4. http://cc.bingj.com/cache.aspx?q=asp.net+vnext+wrap+folder&d=4824581126624159&mkt=en-US&setlang=en-US&w=s7d4JgyVmZWR93rXglsae8lGxAQTu__F
  5. http://whereslou.com/2014/05/23/asp-net-vnext-moving-parts-iconfiguration/