ASP.NET Core MVC — Principais benefícios
O Novo ASP.NET Core está nos holofotes dos desenvolvedores antenados e que procuram sempre o que há de novo e melhor disponível. Com algumas pesquisas, separei aqui pontos importantes dessa versão do Framework que após anos do legado Web Forms e do MVC Original, trás o ASP.NET de volta a ponta.
Arquitetura MVC
O padrão model-view-controller que orienta a forma como os componentes interagem é seguido pelo ASP.NET Core MVC.
É importante diferenciarmos o padrão MVC da implementação MVC do ASP.NET Core. Este padrão MVC é bem antigo, datado no fim da década de 70, porém ganhou popularidade atualmente por alguns motivos que vamos expor:
- As aplicações web combinam muitas tecnologias (HTMl, Banco de dados, códigos, …) geralmente segmentadas em camadas e níveis diferentes. Os padrões que surgem dessa combinação são inseridos naturalmente dentro do padrão MVC.
- A interação do usuário com um aplicativo que adere ao padrão MVC segue um Ciclo natural: O usuário realiza uma ação e, em resposta, a aplicação muda de modelo de dados(data model) e oferece uma visão atualizada para o usuário. Então o ciclo se repete. Este é um ajuste conveniente para aplicações web entregues como uma série de solicitações HTTP e respostas.
O ASP.NET Core MVC implementa uma variante do padrão MVC, especialmente adequado para os aplicativos Web. Utilizando o padrão MVC, fornece uma separação de responsabilidades melhor que o Web Forms, por exemplo.
Extensibilidade
Construído como uma série de componentes independentes que possuem características bem definidas que podem facilmente serem substituídos por outros de sua própria implementação.
- Pode utilizar a implementação padrão do componente, como está. (Suficiente na maioria dos casos)
- É possível derivar uma subclasse da implementação padrão para ajustar seu comportamento.
- Substitua o componente inteiramente por uma nova implementação da interface ou classe básica abstrata.
Controle sobre HTML e HTTP
O ASP.NET Core MVC lhe encoraja a criar suas próprias marcações elegantes com HTML e trabalhar em cima delas como preferir com a força do CSS.
Quando o Framework produz códigos através dos templates, é limpo e de acordo com os padrões atuais.
Um pipeline de solicitação HTTP leve, modular e de alto desempenho.
Você tem controle sobre os pedidos que passam entre o navegador e o servidor, para que você possa ajustar sua experiência de usuário tanto quanto você quiser. O Ajax é facilitado e a criação de serviços web para receber solicitações HTTP do navegador é um processo simples.
Testabilidade
Testabilidade não é apenas uma questão de teste de unidade. Os aplicativos ASP.NET Core MVC também funcionam bem com as ferramentas de teste de automação UI.
Você pode (e deveria em muitos casos) realizar vários tipos de testes de forma automatizada.
A arquitetura ASP.NET Core MVC oferece um ótimo começo para tornar seu aplicativo sustentável e testável porque você naturalmente separa diferentes responsabilidade de
aplicativos em partes independentes.
Poderoso sistema de rotas
O estilo das URLs, ou localizadores de recursos, evoluiu junto com a Web. URLs como esta:
/App_v2/Produto/pagina.aspx?acao=exibir%20propriedade&prop_id=1597
São casa vez mais raras, sendo substitutas por algo mais limpo e claro:
/cliente/125/pedidos
Há bons motivos para nos importarmos com a estrutura das rotas
- Motores de buscas dão importância para palavras chaves na URL.
- Usuário são mais espertos e gostam de digitar as urls para navegação direto no navegador.
- Quando entendem a estrutura da URL estão mais propensos a se familiarizar, enviando para outros e ditando pelo telefone.
- Não expões detalhes técnicos, pastas e estruturas de arquivos de forma pública na internet
Estruturas limpas eram difíceis de serem implementadas em frameworks anteriores, porém o ASP.NET Core MVC possui a funcionalidade URL routing que já traz por padrão URLs limpas.
API Moderna
A plataforma .NET vem evoluindo muito a cada versão, suportando e até mesmo definindo a programação moderna. O ASP.NET Core Mvc foi construído para o .NET Core, então a API pode se beneficiar de toda a linguagem e inovações do tempo de execução familiar para o desenvolvedores C#, como Expressões Lambda, Métodos de Extensão, Tipos anônimos e dinâmicos, LINQ, Await..
Multi-Plataforma
Em versões anteriores, o ASP.NET era específico para Windows, sendo necessário um Computador com sistema Windows para codificar, um servidor com Windows para publicação e execução. O ASP.NET Core foi construído para ser multi-plataforma, tanto para desenvolver quanto publicar, estando disponível também para MacOS e várias distribuições linux.
O Suporte a multi-plataforma tornou fácil para publicar aplicações ASP.NET Core MVC, tendo ótimo suporte para containers, como Docker.
O ferramental de desenvolvimento Microsoft já está disponível há um bom tempo para outras plataforma, com o Visual Studio Code, onde em pouco tempo foi adotado por uma grande fatia de desenvolvedores de várias linguagens.
Código aberto
Todo o código do ASP.NET Core está disponível no github, você pode baixar, modificar e compilar sua própria versão.
Você poderá encontrar mais conteúdo sobre o ASP.NET Core MVC nos links abaixos:
https://docs.microsoft.com/pt-br/aspnet/core
Diferença e por que escolher o Core:
Visão Geral do Asp.Net Core MVC