alex thissen - download.microsoft.com · .net fx vnext technology stack host mac os x linux self...
TRANSCRIPT
Alex Thissen Lead Consultant Xpirit
ASP.NET 5 Microsoft’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 overview Viewing ASP.NET from above
ASP.NET components
Nothing new here, or is there?
MVC 6 Unified Web Stack
MVC 6
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
Ingredients to the mix
How it all started
Project Katana OWIN npm NuGet
.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
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 source Tap 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
Symmetry Taking 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 tooling A warm welcome to MacOS and Linux
Building and running Choose your own tooling
Web Server
Website
C# Code (.cs file)
Binary Roslyn
Command-line first Offering both a CLI and UI experience
Command-line first More 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 architecture Modular, 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 applications
With 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-Platform
CoreCLR
Command-Line
DNX
NuGet
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.