Announcing ASP.NET 4.6 and ASP.NET 5 beta 5 in Visual Studio 2015 Release

Long time readers of this blog or followers of the ASP.NET Community Standup know that this day was coming, and we have a released version of ASP.NET 4.6 framework and tools with Visual Studio 2015.  Not only are we shipping ASP.NET 4.6, but we are also including with Visual Studio 2015 a bundle of ASP.NET 5 beta 5 runtime tools and libraries.  There’s a lot of
great new features in ASP.NET 4.6 and ASP.NET 5 that you need to know about.  Let’s take a closer look at some of the bigger features in this release of Visual Studio.

ASP.NET 4.6 – More of the ASP.NET you know and enjoy

We are delivering updates to the existing ASP.NET 4.5.2 tools and frameworks that run on Windows and within Internet Information Server.  The configuration and interaction with the operating system and web server that you have known has not changed, and you can continue to build with Web Forms, MVC, Web Pages Web API, and SignalR.  In fact, the new
versions of these frameworks are as follows:

  • ASP.NET Web Forms 4.6
  • ASP.NET MVC 5.2.3
  • ASP.NET Web Pages 3.2.3
  • ASP.NET Web API 5.2.3
  • ASP.NET SignalR 2.1.2

You can find a detailed description of the issues fixed in these frameworks in our announcement blog post about their release.  Lets take a look at some code samples

Web Forms Model Binding now supports Task returning methods

Model binding in web forms is a newer feature and has always run synchronously, even when the page was marked with an async=”true” directive.  With this release, you can add async keywords and return Task objects to your methods.  Now you won’t have to wait quite as long for that database insert or update when posting back to a page.

More examples about async model binding in Web Forms can be found on our blog post.

Enabling the .NET Compiler Platform

New language features delivered in the updated .NET Compiler Platform (“Roslyn”) are available throughout ASP.NET.  You can use these advanced features on your web forms markup, razor templates, and in your code-behind files. Web Forms projects now include the Microsoft.CodeDom.Providers.DotNetCompilerPlatform package by default.  This allows the web forms projects to pre-compiler and deliver your web forms projects significantly faster.

HTTP/2 Support

In Windows 10 and ASP.NET 4.6 there is now support for HTTP/2, the next major update to the web’s protocol.  According to the HTTP working group, this is not a rewrite of the protocol and that all methods, status codes, and semantics remain the same. The key differences between HTTP/2 and HTTP/1.x are:

  • Binary transmission instead of text
  • Fully multiplexed instead of ordered and blocking – this means your images, stylesheets, scripts, and other static resources are all loaded concurrently
  • One connection to the server can be used to promote parallel loading of resources
  • Header compression is now used to reduce overhead
  • Servers can now “push” responses proactively into client caches

Check out this video from Program Manager Pranav Rastogi on Channel 9 where he demonstrates the advantage of HTTP/2 in ASP.NET 4.6

Identity and Authentication Updates

The ASP.NET 4.6 templates now use Open Id Connect middleware to authenticate to Azure Active Directory (Azure AD) which makes the programming model to authenticate with Azure AD much easier.  Additionally, when starting a new project and you choose the ‘Individual User Accounts’ option then the templates will provide sample code for two-factor authentication and social logins with ASP.NET Identity 2.2.1.

In App_Start\IdentityConfig.cs you can find a sample two-factor authentication configured as follows:

The EmailService and SmsService can be configured to actually transmit messages with your own choice of email and SMS providers.  In this case, they do nothing and users are allowed to access the application normally.

Social logins can be configured using the sample code hiding in the comments at the bottom of AppStart\Startup.Auth.cs

Simply uncomment the providers you wish to use, register as a developer with an application on their sites and enter the authentication information those providers give your application into this code.

More details can be found in the ASP.NET Identity 2.2.1 announcement blog post.

JSON Editor Improvements

The JSON editor was significantly updated in this release with new features like:

  • JSON Schema validation – we now support the JSON Schema draft v4 specification
  • Intellisense for bower.json and package.json configuration files used by the bower and npm package managers
  • Duplicate property validation
  • Support for SchemaStore.org – an open source collection of useful JSON Schema files.  Any JSON file that has a schema associated on SchemaStore.org will automatically get intellisense and validation support.

 

Figure 1 – JSON Intellisense with SchemaStore.org support

Figure 2 – Bower Package Intellisense

You can find video of Program Manager Mads Kristensen talking about the cool new editor features on Channel 9’s Web Camps:

HTML Editor Improvements

The HTML editor has seen a number of additions to make it the modern text editor tool that web developers prefer.  We’ve added:

  • Better client template formatting with regards to the double-curly brace syntax.  {{…}}   This ensures that the inner content is not treated as HTML and being marked as invalid by the editor.  This is a great benefit for developers using Angular, Handlebars, Mustache, and other double-curly brace templates.
  • Improvements to support web components and other custom elements.  Custom elements will not be marked as invalid and the editor support the <link rel=”import”> tag for web components.  The editor will provide intellisense for those components that it can find with an imported definition.
  • Intellisense for angular directives and attributes.  There are icons that will appear in the intellisense box to indicate that these are angular supporting options
  • Bootstrap CSS class intellisense with icons to show that the class came from a bootstrap library

 

Figure 3 – Bootstrap CSS Framework Intellisense

JavaScript editor improvements

We’ve added the following features to our JavaScript editor:

  • AngularJS support with intellisense for angular controllers, services, factories, directives, and animations
  • New JavaScript language features (from the EcmaScript 6 version of JavaScript) including classes, arrow functions, and template strings
  • New Navigation bar to help in moving between major elements in your script
  • Documentation comments written in JSDoc format are shown when using intellisense
  • Object literal intellisense showing suggestions when passing an object literal to functions documented using JSDoc

 

Figure 4 – JavaScript Editor with JSDoc and Intellisense support

Support for JSX (React.JS)

The most requested feature in the text editor was for support of the .jsx extension.  Now you can get intellisense, formatting and validation in the editor as you type.  With the collaboration of the Facebook team that is responsible for the react.js library, we believe we’ve delivered a great experience for react.js developers.

 

Figure 5 – React.JS Syntax Highlighting Support

Azure Web Apps Availability

With the brand-new release of ASP.NET 4.6, the Azure Web Apps service is still being prepared and tested for this important update.  Once we have confirmed that Azure Web Apps can host an ASP.NET 4.6 application with the same high level of performance and fidelity that you expect from Microsoft Azure, we will announce compatibility of the service.  Our operations team is working diligently and we will update you on the Microsoft Azure blog in the near future.

ASP.NET 5 beta 5 Support

ASP.NET 5 is a lean and composable .NET stack for building modern web applications for both cloud and on-premises servers.  This re-write of ASP.NET was started in order to provide an improved, modern web framework that could be run cross-platform and updated as quickly as the web changes.

ASP.NET 5 includes the following features:

  • New light-weight request pipeline
  • Run on IIS, or self-hosted in your own process
  • Built on new .NET Execution Environment (DNX) that can run on the full .NET Framework or on .NET Core, a new cloud-optimized runtime that supports true side-by-side versioning
  • Runs cross-platform on Windows, Mac, and Linux
  • Everything is a package delivered with NuGet, even the runtime itself
  • Comes with ASP.NET MVC 6 – a unified Web framework for Web UI and Web APIs
  • Environment-based configuration for a seamless transition to the cloud
  • Dependency injection out-of-the-box
  • New Visual Studio project system and high productivity tooling experience
  • All open source on GitHub through the .NET Foundation

Visual Studio 2015 includes the ASP.NET 5 beta5 runtime packages. These packages are still in preview and are not recommended for use in production. You can find all the details on the specific enhancements added and issues fixed in the published release notes on GitHub.

The ASP.NET 5 team has published a roadmap to their public release on GitHub.  Be sure to check that out if you are interested in when you can publish an application to production.

You can read more about the new ASP.NET 5 beta 5 release on their announcement blog post.  Our ongoing series of announcements and updates with each beta release of ASP.NET 5 goes into details with samples for these items.  Follow the ASP.NET 5 tag on this blog to keep up with the changes.

You can also catch up with the weekly changes in the advancements of ASP.NET 5 with the Community Standup videos on YouTube and the transcripts hosted on this blog. 

Summary

We are very happy with this latest release of ASP.NET tools for developers in Visual Studio 2015. Our teams are excited for you to start working with these tools and build something amazing.  We look forward to your feedback, experiences, blog posts, and comments about the new tools.  If you haven’t already, go to VisualStudio.com and download a copy of Visual Studio 2015 to get started today.