alex thissen - download.microsoft.com · .net fx vnext technology stack host mac os x linux self...

31

Upload: others

Post on 10-Aug-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR
Page 2: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

Alex Thissen Lead Consultant Xpirit

ASP.NET 5 Microsoft’s web development platform reimagined

Page 3: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

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

Page 4: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

An overview Viewing ASP.NET from above

Page 5: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

ASP.NET components

Nothing new here, or is there?

MVC 6 Unified Web Stack

MVC 6

Page 6: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

ASP.NET 5 and the Modern Web

A big shift for Microsoft

Choose your editors and tools

Open Source with contributions

Cross-Platform

Seamless transition from on-premises to cloud

Faster development cycle Totally modular

Fast

Page 7: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

Ingredients to the mix

How it all started

Project Katana OWIN npm NuGet

Page 8: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

.NET FX vNext Technology Stack

Host

Mac OS X Linux

Self Hosted

“Helios”

IIS

IIS Native Module IIS Native Module

CLR Core CLR Mono CLR

.NET Base Class Library

ASP.NET 5

Windows

Cloud/Server optimized

Page 9: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

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

Page 10: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

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

Page 11: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

Open source Tap into the community ecosystem

Page 12: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

Open sourced parts of .NET

Page 13: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

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

Page 14: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

.NET Foundation

• Focused on .NET FX

• Apache 2 license mostly

• No platform restrictions

Fostering open development and collaboration

Page 15: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

Symmetry Taking away the differences and embracing choice

Page 16: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

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

Page 17: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

Cross-platform tooling A warm welcome to MacOS and Linux

Page 18: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

Building and running Choose your own tooling

Web Server

Website

C# Code (.cs file)

Binary Roslyn

Page 19: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

Command-line first Offering both a CLI and UI experience

Page 20: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

Command-line first More than just Visual Studio

Page 21: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

Text before UI

• Everything from text

files

– Projects

– Configuration

– Preferences and

options

– Launch settings

• JSON is preferred

data format

Return of the text files

Page 22: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

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

Page 23: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

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

Page 24: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

NuGet all the things

• NuGet packages are

unit of reference

– Not assemblies

Projects:

• build NuGet packages

• reference NuGet

packages

Simplify dependency management

Page 25: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

Runtime loading

• Dependency resolution rules

• Nearest wins

• Cousin dependencies

Playing by the rules

Page 26: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

Deploying ASP.NET 5 applications

With source code Without source code

XCopy deployment

Page 27: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

Global tools

• DNX console applications in a NuGet package

• Installed globally

• Runnable from command line.

Example: User-secret

Page 28: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

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

Page 29: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

Summary

ASP.NET 5

reimagined

Cross-Platform

CoreCLR

Command-Line

DNX

NuGet

Key takeaways for ASP.NET 5

Page 30: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR

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.

Page 31: Alex Thissen - download.microsoft.com · .NET FX vNext Technology Stack Host Mac OS X Linux Self Hosted “Helios” IIS IIS Native Module IIS Native Module CLR Core CLR Mono CLR