Christos Matskas presented on ASP.NET 5 and the .NET ecosystem. He discussed how ASP.NET 5 fits into the new .NET Core runtime as a unified framework for MVC, Web API, and SignalR. ASP.NET 5 allows for agility, control, speed, and cross-platform capabilities. It also provides features for cloud support and uses modern web standards and tools. Legacy ASP.NET applications can integrate with ASP.NET 5.
10. History of .NET “verticals”
.NET Windows Desktop Windows Store Windows Phone ASP.NET 4 ASP.NET 5
App Model
App Model
App Model
App Model App Model
Framework
Framework
Framework
Framework
Runtime
Runtime
Runtime
Framework
Runtime
Runtime
11. Enter .NET Core
.NET Core
Unified BCL
(Base Class Library)
Runtime Adaptation Model
Core CLR .NET Native and Runtime Other Runtime
ASP.NET 5
App Model
Universal Windows App
Model (UAP)
Any other App Model
14. Where does ASP.NET fit in the new world?
ASP.NET 5
Unified framework for MVC, Web API & SignalR
.NET Framework 4.6 stack and libs
Full .NET Framework for all scenarios & libraries
.NET Core 5 stack and libs
Small runtile optimized for server & cloud workloads
16. ASP.NET 5 – Features
• Agility
• Control
• Speed
• Client side tools
• Performance
• Cloud support
• Cross Platform
• Web Standards
• Browser tooling support
17. Agility
Faster Development Cycle
• Features are shipped as packages
• Framework is part of the application (.NET Core)
More Control
• Only zero-day security bugs will be patched automatically
• Same code running from development to production
• New version choice in the hands of the developers
18. Speed
Development productivity + low friction
• No compilation => Save and refresh
• Framework is part of the application (.NET Core)
Improved runtime performance
• Faster startup times (~2-3”)
• Lower memory / higher density for HTTP Requests (> 90%)
• Modular, only pull the functionality and features required
• Raw sockets/full framework or both
19. Cloud-ready
Seamless transition from on-premise to the cloud
• No code changes required
Diagnostics
• Run/Debug directly in the Cloud
• Tracing/Logging without re-deploy
Cloud ready and cloud optimized
• Consistent configuration across environments
• Session and Cache providers same for on-premise and cloud operation
20. Cross-Platform
Truly OSS where anyone can contribure
Editors
• Visual Studio, any text editor, cloud editors
• Hardcore level : command-line
Runtime
• Windows – Mac - Linux
21. Standards & Tooling
Full support for HTML5, CSS3 and JavaScript
• Adaptive and open for integration
Client tools
• Why re-invent the wheel?
• Grunt, Bower and Node.js fully integrated in VS2015
Tooling support
• Bi-directional communication between browser tools and VS2015
23. Getting started with ASP.NET 5
• Go to http://asp.net/vnext and install VS2015 (CTP6)
• Docs: http://asp.net/vnext
• Code:
• ASP.NET 5: http://github.com/aspnet/home
• .NET Core: http://github.com/dotnet/home
• Getting help
• ASP.NET vNext forum: http://forums.asp.net
• JabbR: https://jabbr.net/#/rooms/aspnetvnext
• StatckOverflow (asp.net-vnext)
Work is continuing on both streams. The full .NET framework is getting a tons of work, such as the ability to use the Roslyn compiler with WebForms, simply by installing the Roslyn NuGet package
Moving away from one monolithic .NET. Instead, the goal is to have a collection of useful libraries that together will comprise .NET but it will be a lot more refined and controlled. As a result, it will be extremely easy to push updates for modules instead of the whole framework. This setup, along with the openness and collaboration with other open source libraries will promote a truly cross platform ecosystem where you can take your applications and run them everywhere without any operating system constraints.
Historically speaking. Varying levels of Base Class libraries. Windows desktop and ASP.NET 4 have the biggest share whereas phone and store have smaller ones. Although conceptually these models share a lot of things, such as C# and XAML, they do have different frameworks and runtimes, in effect resulting in a SILO’ed model. It’s important to remember at this stage that Windows Desktop and ASP.NET 4 are the same thing
Full .NET compilation = 100sec for 10k pages
.NET Core = 1.5
Runtime adaptation = Rasberry Pi
Open to any app model that can be built on top of .NET Core. Runtime pluggability is also an option, so you may choose to use Mono instead of the .NET runtime for your apps.
Currently, in ASP.NET when you request a page, the application shells the page out to csc, compiles it, saves the file to a temp folder and then load it back up the pipeline. For 10K pages it used to take over 100 seconds to compile. With Roslyn, for the same amount of files the expected time is around 1.5seconds. ASP.NET 5 does everything in memory and it doesn’t touch the disk, hence the benefits in performance and footprint. Roslyn’s benefits are not limited to performance only. With Roslyn at your disposal, your apps can start taking advantage of the new language features (c#6 and newest VB) without having to wait for the next big release of the full .NET framework.
In .NET Core everything will be a NuGet package. The BCL itself will be a NuGet package and as an extension all other bits and pieces of functionality will be served as a NuGet package. Even the Core CLR is now a NuGet package as we will see in the demos later on. Long gone are the days of a 250-300MB .NET install on the server. The .NET Core itself is less than 10MB!
These are the different workflows that you currently have in the .NET world. The generated IL (intermediate language) then is pushed through to either the WinStore or ASP.NET. In the case of the first one, developers can benefit from the usability and ease that comes from C# and the C++ compilation which results in much better performance. In the future, we may see ASP.NET apps compiled through the .NET Native toolchain to take advantage of the C++ compiler in order to enhance performance even further.
ASP.NET 5 is one unified framework that runs on top of 2 different .NET frameworks. You may mistakenly think that there are two versions of ASP.NET but when in fact the only thing that changes is the target application model. Once compiled, it’s all the same.
The left hand side represents the world of yesterday, whereas the right hand side is the future. Once all the constraints are lifted, you can clearly see how ASP.NET has changed dramatically and is becoming a truly open-sourced framework for web application development.
Cloud-Ready
No web.config but environmental variables so things will be set correctly based on the environment the app is running (local, QA, cloud etc)