Em 2015, a Microsoft anunciou um novo caminho para o ASP.NET e o Framework MVC, o ASP.NET Core.

O que é

O ASP.NET Core é baseado no .NET Core. Uma versão multi-plataforma do .NET Framework. Sem as interfaces (APIs) específicas do Windows. Ao adotar uma abordagem multiplataforma, a Microsoft ampliou o alcance do .NET. Tornou possível implantar aplicativos ASP.NET Core em um conjunto maior de ambientes. Possíbilitou para os desenvolvedores criarem aplicativos ASP.NET Core em diversas distribuições Linux e no macOS.

O ASP.NET Core é um framework completamente novo. Mais simples. Mais fácil. Pode ser considerado o estado da arte, é muito bem arquitetado. Como consequencia é mais de trabalhar e está livre do legado Web Forms. E, como é baseado no .NET Core, ele suporta o desenvolvimento em uma ampla variedade de plataformas e containers.

A História do framework MVC

Em outubro de 2007, a Microsoft anunciou uma nova framework de desenvolvimento. Ela foi construída sob o existente ASP.NET Web Forms. Esta plataforma foi uma resposta direta às críticas. Na Época crescia a popularidade de frameworks concorrentes como Ruby on Rails. Nasceu então o framework MVC. O framework refletia as tendências no desenvolvimento Web, como a padronização de HTML e CSS, RESTful Webservices e Unit Test. Havia a ideia de que os desenvolvedores deveriam adotar a natureza Stateless do HTTP.

Os conceitos parecem óbvios agora, mas naquela época foi uma mudança brusca na comunidade .NET. A introdução do MVC trouxe a plataforma Microsoft de volta à era moderna. Além disso com o MVC a Microsoft também sinalizou uma importante mudança de atitude. Na época do Web Forms a Microsoft tentava controlar todos os componentes do aplicativo web. Com o Visual Studio a comunidade tinha a fama de saber usar apenas o que o havia ali. (É desta ideia que originou o nome deste blog).
Com o MVC a Microsoft abriu as fronteiras para ferramentas de código aberto como o jQuery, adotou convenções de design e práticas recomendadas baseadas em outras plataformas mais bem-sucedidas.

O que havia de errado com o antigo MVC

Na época em que o MVC foi criado, fazia sentido para a Microsoft criá-lo sob a plataforma ASP.NET. Havia muitas funcionalidade sólidas de baixo nível. Proporcionava uma vantagem inicial. O processo de desenvolvimento já era bem conhecido e compreendido pelos desenvolvedores ASP.NET.
À medida que o MVC cresceu em popularidade, a Microsoft começou adicionar alguns recursos core do MVC ao Web Forms. Com o tempo “a coisa” começou a ficar estranho. Estratégias antiga de desenvolvimento perderam o sentido. Como a System.Web, por exemplo, tinha muitas funcionalidades que eram carregados em memória sem necessidade.
As características e particularidades de design base do MVC foram estendidos para o Web Forms. Ao mesmo tempo que o ASP..NET expandia. Novas estruturas foram adicionadas. Para criar o Web API e a comunicação em tempo real com SignalR. Esses novos frameworks adicionaram
convenções de configuração próprias. Cada um com seus próprios benefícios e esquisitices. O resultado final foi uma confusão.

O que há de novo no ASP.NET Core

O ASP.NET Core requer o .NET Core 2, uma framework inteiramente nova, reescrita do zero. E agora é suportada em distribuições Linux. As mudanças incluem um novo formato de gerenciamento de pacotes. Simplificou o gerenciamento de pacotes NuGet. Um novo
sistema de configuração para o ASP.NET Core e suporte para o Entity Framework Core 2.

Beneficios do ASP.NET Core

A seguir as vantagens ao utilizar o novo Framework.

Manteve o padrão MVC.

O padrão MVC não é novo - nasceu em 1978, no projeto Smalltalk na Xerox. Ganhou popularidade hoje como um padrão para aplicativos da Web.

Extensível

ASP.NET Core for construido por uma série de componentes e interfaces independentes e com características bem definidas. Os componentes core implementam uma interface ou herdam de classes abstratas. É possível substituir os principais componentes ou extender seu comportamentos por outros de sua própria implementação.
O ASP.NET Core oferece três opções para cada componente:
*. Usar a implementação padrão do componente (Que deve ser suficiente para a maioria das aplicações).
*. Ajustar seu comportamento de uma classe.
*. Substituir o componente inteiramente por uma nova implementação.

Testável

Por ter mantido sua arquitetura MVC o ASP.NET Core, a controller pode ser facilmente isolada. Facilmente testável por frameworks populares, como xUnit.

Framework Moderna

O .Net Core é o estado da arte moderna em programação. O novos métodos do ASP.NET Core seguem um padrão mais limpo e mais expressivo, em relação à plataforma anterior.

Multiplataforma

As versões anteriores do ASP.NET só rodavam em ambientes Windows, exigindo também servidores Windows. O .NET Core está disponível para diferentes plataformas, incluindo macOS e uma variedade de distribuições Linux. Pode ser desenvolvido utilizando o Visual Studio Code, uma IDE multi-plataforma. Isso significa que o desenvolvimento do ASP.NET Core não está mais restrito ao Windows.

Open Source

Ao contrário das plataformas anteriores, agora o .Net é open source.
Você pode baixar o código-fonte do ASP.NET Core no GitHub

Performance

O pipeline de solicitação HTTP do ASP.NET Core é leve, de alto desempenho e modular.

E ae pronto para utilizar? Comente, discorde, vamos bater um papo!