ASP.NET 5 - Microsoft's Web development platform reimagined

Preview:

Citation preview

Alex ThissenLead Consultant Xpirit

ASP.NET 5Microsoft’s web development platform reimagined

Agenda• Overview .NET vNext and ASP.NET 5• Tenets of ASP.NET• Open source and cross-platform• Command-line first• Symmetry• Modern Web Architecture

• Wrapup• Summary• Questions and Answers

An overviewViewing ASP.NET from above

ASP.NET componentsNothing new here, or is there?

MVC 6Unified Web StackMVC 6

ASP.NET 5 and the Modern WebA big shift for Microsoft

Choose your editors and tools

Open Source with contributions Cross-Platform

Seamless transition from on-premises to cloud

Faster developmentcycleTotally modular

Fast

Ingredients to the mixHow it all started

Project KatanaOWIN npm NuGet

.NET FX vNext Technology Stack

Host

Mac OS XLinux

Self Hosted

“Helios”

IIS

IIS Native ModuleIIS Native Module

CLR Core CLR Mono CLR

.NET Base Class Library

ASP.NET 5

Windows

Cloud/Server optimized

ASP.NET 5 on .NET FX vNext

Full .NET CLR

• Entire API set in machine wide install (200 MB)

• Updated with OS• Ecosystem of existing

packages• Backward compatibility• Default for

Visual Studio 2015 projects

Cloud Optimized CLR

• Lean and modular runtime (11 MB)• Optimized for server• Small memory footprint

• Libraries in NuGet packages

• Framework deployed with app

• Different versions can run side-by-side

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

Tenets from ASP.NET team

Command-line first• Facilitate cross-

platform• Visual Studio

2015 for premium experience

Symmetry• Between

command-line and visual studio

• Between server and cloud

• It just works by default in the cloud and on-premise

Open source• All code visible

(even during development)

• Contributions from community

Light-weight and Pay-as-you-go• Only include

what you use

Open sourceTap into the community ecosystem

Open sourced parts of .NET

Open sourcing ASP.NET Find it all here• github.com/aspnet • github.com/dotnet

/home Help and feedback• JabbR:

https://jabbr.net/#rooms/aspnetvnext

• ASP.NET forums: http://forums.asp.net

Have a look in the kitchen

.NET Foundation• Focused on .NET FX• Apache 2 license mostly• No platform restrictions

Fostering open development and collaboration

SymmetryTaking away the differences and embracing choice

DNX - .NET Execution Environment• Compilation system• SDK tools (DNVM,

DNU)

• Native CLR hosts

Code required to bootstrap and run an application

Goals

• Change code and run• Expose metadata about the

runtime for others to query• Create a cached version of

your application's dependencies ("compilation")

Principles

• NuGet all the things• There is no such thing as

"design time"• Dependencies are always

described as what not where

Cross-platform toolingA warm welcome to MacOS and Linux

Building and runningChoose your own tooling

Web Server

Website

C# Code(.cs file)

BinaryRoslyn

Command-line firstOffering both a CLI and UI experience

Command-line firstMore than just Visual Studio

Text before UI • Everything from text

files– Projects– Configuration– Preferences and

options– Launch settings

• JSON is preferred data format

Return of the text files

New project system.csproj is gone. Long live project.json

• Independent of Visual Studio• JSON files instead of VS artefacts• Every file is relevant

– Unless stated otherwise• Specific folder structure• Build for multiple target frameworks

Modern web architectureModular, pay as you use, light-weight and fast

NuGet all the things • NuGet packages are

unit of reference– Not assemblies

Projects: • build NuGet

packages• reference NuGet

packages

Simplify dependency management

Runtime loading• Dependency

resolution rules

• Nearest wins• Cousin

dependencies

Playing by the rules

Deploying ASP.NET 5 applicationsWith source code Without source code

XCopy deployment

Global tools• DNX console applications in a NuGet package• Installed globally• Runnable from command line.

Example: User-secret

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); }

Summary

ASP.NET 5 reimagined

Cross-PlatformCoreCLR Command-LineDNXNuGet

Key takeaways for ASP.NET 5

Your feedback is important!Scan the QR Code and let us know via the TechDays App.

Laat ons weten wat u van de sessie vindt!Scan the QR Code via de TechDays App.

Bent u al lid van de Microsot Virtual Academy?! Op MVA kunt u altijd iets nieuws leren over de laatste technologie van Microsoft. Meld u vandaag aan op de MVA Stand. MVA biedt 7/24 gratis online training on-demand voor IT-Professionals en Ontwikkelaars.