# 1.0: Overview

## Overview

ASP.NET Core, [released June 2016](https://blogs.msdn.microsoft.com/dotnet/2016/06/27/announcing-net-core-1-0/), is Microsoft's ground-up rewrite of ASP.NET, with a focus on modernizing the framework and separating it from a strictly Windows environment. You can develop ASP.NET Core applications on Linux and Mac as well. ASP.NET Core uses a built in dependency injection container (we'll talk more about this later) that previous versions lacked. Another significant change over MVC 5 is the elimination of `HttpHandler` and `HttpModules` in favor of middleware - giving more control of processing HTTP requests to the developer.

[ASP.NET Core 2.0](https://blogs.msdn.microsoft.com/webdev/2017/08/14/announcing-asp-net-core-2-0/) was released in August 2017 and the first version Microsoft argues is production ready.

**Note:** ASP.NET Core 2.1 is due out the second quarter of 2018, but there shouldn't be many breaking changes from this tutorial.

## Pros

* Lighter than the full .NET Framework
* [Faster performance](https://www.ageofascent.com/2016/02/18/asp-net-core-exeeds-1-15-million-requests-12-6-gbps/)
* No longer a separation of MVC and Web API controllers - both inherit from same Controller class
* Microsoft.AspNetCore.All and the Runtime Store - less usings and reduces versioning problems
* Cross-platform
* Command-line interface

## Cons

* Younger than MVC 5 - there are still kinks to be worked out.
* Less library support.
* Fewer jobs - most .NET shops have not made the switch yet.
