ASP.NET 5 development has been underway for some time, but Microsoft is finally giving the open-source cross-platform Web framework a proper introduction.
Along with new ASP.NET 5 features and improvements delivered with the release of Visual Studio 2015 CTP 6, Scott Guthrie, Microsoft’s executive vice president of its Cloud and Enterprise group, published a blog post laying out the inner workings of the modern Web programming framework.
ASP.NET 5, in development as an open-source GitHub project, is designed to build and run cross-platform ASP.NET apps on Linux, Mac and Windows. First introduced at Microsoft’s TechEd conference in May 2014 and open-sourced right off the bat, the cloud-ready framework offers a single aligned Web stack for Web UI and Web APIs, along with new tooling and dual runtime environments on both .NET Core and the .NET Framework.
Guthrie ran down the major components and features of ASP.NET 5 and what they mean for developers:
- Cross-platform runtimes: The combination of the recently open-sourced .NET CoreCLR and the .NET Framework gives developers flexibility in running apps with the deployed version of a given runtime side by side with other versions of an app without affecting each other. Apps can run across platforms regardless of OS with dependencies only to the features it needs.
- MVC 6: A unified programming model that merges past fragmented MVC implementations, MVC 6 allows developers to build one Web application handling Web UI and data services, returning Razor views and content-negotiated data from the same controller and using the same MVC filter pipeline, along with tag helpers to simplify custom HTML output.
- Dynamic compilation: An updated feature added in the ASP.NET 5 preview available with Visual Studio 2015 CTP 6, developers are no longer required to compile their application to see a change. The streamlined process involves a simple edit to the code, saving changes, and a browser refresh, with the option to use other code editors within the Visual Studio interface matched with cross-platform command-line operations.
- Bower, Grunt and Gulp integration: Integration with the Web developer tools for running tasks, automating workflows, managing client-side libraries, and compiling languages such as JavaScript, CSS, CoffeeScript or TypeScript.
- Dependency injection and management: Dependencies in ASP.NET 5 are managed by adding NuGet packages using the NuGet Package Manager or JSON file editing. Dependency injection is now supported with a built-in abstraction available across the Web stack with an available bootstrapping container.
- Cloud-ready configuration: NET 5 eliminates the use of Web.config files for configuration values, with a new system to request named values from a larger array of sources, including JSON, XML or environmental variables to deploy applications in a host environment such as Azure without having to publish test values.
- HTTP request pipeline: A modular pipeline to reduce overhead and improve component customization, including ported versions of the Katana middleware and an option to write custom middleware components.
An ASP.NET 5 preview is available in the Visual Studio CTP 6 release, which also includes new ASP.NET 5 project templates, improved properties, modified system references, a Task Runner Explorer tool for JavaScript developers, and more.
The latest Visual Studio preview itself also includes single sign-in functionality, additional Visual Studio tools for Apache Cordova, XAML and .NET debugging, a Visual Studio emulator for Android, and improved Xamarin integration. A full list of features and changes in available here, and a rundown of the Team Foundation Server 2015 CTP 1 release is available in this blog post from Microsoft TFS product unit manager Brian Harry.