ASP .NET 5 - Nada será como antes


 Neste artigo eu compilei informações de várias fontes para apresentar as novidades sobre a nova versão da ASP .NET : ASP .NET 5. (isso mesmo ASP .NET cinco.)

Eu já estou com o pé nessa estrada
Qualquer dia a gente se vê
Sei que nada será como antes, amanhã...
...

(Nada será como antes - Nilton Nascimento)

Respire fundo...

O ASP.NET 5 é um redesenho significativo da tecnologia ASP.NET.  Muita, mas muita coisa mudou. Felizmente para melhor.

Este artigo apresenta os novos conceitos do ASP.NET 5 e dá um resumo de como eles vão ajudá-lo a desenvolver aplicações web modernas.

Nota: Os recursos apresentados foram analisados com base na versão do Visual Studio CTP 6 e podem sofrer alterações até o lançamento da versão final.

 
Introdução ao ASP.NET 5

O ASP.NET 5 é a nova versão da plataforma .NET da tecnologia ASP .NET para a construção de aplicações web modernas. Ele foi feito a partir do zero para proporcionar uma estrutura de desenvolvimento otimizado para aplicativos que são implantados quer para a nuvem quer para servidor.

Ele é constituído por componentes modulares com sobrecarga mínima, para manter a flexibilidade durante a construção de suas soluções.

O ASP.NET 5 inclui os seguintes recursos:

As mudanças feitas no ASP.NET 5 visam atender as solicitações dos clientes e o feedback da comunidade de desenvolvedore. Estas mudanças simplificam o desenvolvimento, hospedagem e manutenção, e são direcionadas para aplicações web modernas.

Seus aplicativos legados serão executados na nova versão do ASP.NET sem qualquer modificação. No entanto, para tirar proveito dos novos recursos no ASP.NET 5, você vai precisar portar seu código existente para o novo framework.

Você vai encontrar muitas semelhanças entre ASP.NET 5 e versões anteriores do ASP.NET, então portar o código envolve a correção de problemas específicos, em vez de reescrever a aplicação.

Este tópico fornece uma orientação resumida dos conceitos do ASP.NET 5 e explicações sobre as mudanças feitas.

Por que redesenhar o ASP.NET ?

No passado as versões do .NET Framework eram entregues como uma única instalação abrangente.

A cada release da plataforma .NET, novas características eram adicionadas, de modo que o tamanho do framework cresceu continuamente.

Esta abordagem assegurava que uma máquina Windows com  a plataforma .NET instalada poderia suportar todo tipo de aplicação .NET, mas também significava que existiam aplicações que eram afetadas por recursos dos quais na verdade elas não usavam.

Se uma atualização crítica era necessária para uma tecnologia na plataforma .NET, você recebia uma notificação de que uma atualização importante estava disponível, mesmo que não utilizasse diretamente esse recurso na plataforma.

Então, você tinha que decidir se desejava instalar esta atualização e suportar a interrupção de seu servidor ou ignorar a atualização e torcer para que você não precisasse realmente dela.

O ASP.NET 5 lhe dá uma maior flexibilidade por ser capaz de rodar em três runtimes:

1- Full .NET CLR

Este modo é o runtime padrão para projetos no Visual Studio. Ele fornece todo o conjunto de APIs e é a sua melhor opção para compatibilidade com versões anteriores.

2- Core CLR(runtime otimizado para nuvem)

O Core CLR é um runtime leve e totalmente modular para projetos ASP.NET 5. Ele foi reprojetado em componentes para que você tenha a flexibilidade para incluir apenas os recursos que você precisa no seu aplicativo. Você adiciona os componentes como pacotes NuGet. Quando terminar, o seu aplicativo depende apenas dos recursos necessários.

Pela refatoração do runtime em componentes separados, podemos entregar melhorias aos componentes mais rapidamente, pois cada componente tem a sua própria agenda de atualização.

O Core CLR tem cerca de 11 megabytes em vez dos 200 megabytes do runtime Full .Net CLR, e, pode ser distribuído com a sua aplicação, sendo que diferentes versões do Core CLR podem ser executadas lado-a-lado.

3- Cross-Platform CLR

É um runtime multiplataforma para Linux e Mac OS X. Este runtime permite desenvolver e executar aplicativos .NET em dispositivos Mac e Linux. Até o seu lançamento, você pode usar o Mono CLR para o desenvolvimento multiplataforma.

Por padrão, os novos projetos do Visual Studio usam o Full .NET CLR. Você pode especificar o Core CLR nas propriedades de configuração para o seu projeto.
 

Hospede sua aplicação em qualquer lugar

O ASP.NET 5 permite que você hospede seu aplicativo no IIS ou que hospede sua aplicação no seu próprio processo. Você decide.

Quando você usar o Core CLR, você pode distribuir seu aplicativo com cada dependência empacotada dentro do pacote de implantação.

Portanto, o seu aplicativo e suas dependências são completamente auto suficientes e não mais dependentes de uma instalação da plataforma .NET no sistema.

Qualquer tipo de dispositivo ou plataforma de hospedagem é capaz de executar o aplicativo.

Esse novo recurso lhe dá muita liberdade.

Ainda é recomendado usar o IIS como a melhor opção para hospedagem, mas em alguns casos, pode ser necessário usar uma plataforma de hospedagem diferente. Agora, basta distribuir o seu projeto para o host de destino.

Sua preferência de hospedagem não vai mais ditar qual framework de desenvolvimento você vai usar e vice-versa.

Use versões diferentes da plataforma .NET lado a lado

Quando os aplicativos em um servidor dependem de uma única instalação abrangente do .NET framework, todos os aplicativos tem que executar a mesma versão do .NET. Esta situação pode ter criado alguma ansiedade para você quando se considerava a atualização para uma nova versão do .NET Framework.

Talvez, você quisesse que alguns dos seus aplicativos usassem a versão mais recente do .NET, mas você não tinham certeza se todos os seus aplicativos legados iria trabalhar adequadamente com a nova versão.

Felizmente, o ASP.NET 5 resolve este problema. Você pode definir as dependências dentro de seu pacote de distribuição de forma que você pode especificar para cada aplicação qual versão do .NET vai usar.

Você obtém os benefícios da mais recente versão para algumas aplicações e da facilidade de ficar com uma versão antiga para outros aplicativos.

Todos essas diferentes versões executam lado-a-lado, sem quaisquer problemas. Para executar versões diferentes lado-a-lado, você deve direcionar para usar o Core CLR.

  Gerenciamento de dependência simplificado

O ASP.NET 5 apresenta uma nova maneira mais leve de gerenciar dependências em seus projetos.

Você não vai mais adicionar referências a assemblies em seu projeto; em vez disso, você vai gerenciar dependências referenciando pacotes NuGet.

Você pode adicionar pacotes NuGet através do Gerenciador de pacotes NuGet ou você pode editar o arquivo JSON (project.json) que lista os pacotes NuGet e versões utilizadas em seu projeto.

Para adicionar outras dependências, basta digitar o nome e número de versão do pacote NuGet em seu arquivo project.json.

Eliminando a duplicação em MVC, Web API e páginas da Web(Web Pages)

No passado, MVC, Web API e Web Pages continham características que se sobrepunham, mas a implementação destas características eram feitas de forma separadas.

Por exemplo, MVC e API Web forneciam o roteamento, mas as classes de roteamento MVC residiam no namespace System.Web.Mvc.Routing enquanto as classes semelhantes para API Web residiam no namespace System.Web.Http.Routing.

As Web Pages e o MVC usavam ambas a sintaxe Razor, mas alguns pacotes NuGet eram compatíveis com apenas um ou com o outro.

No ASP.NET 5, o  MVC, a Web API e as Web Pages foram fundidos em um framework único chamado MVC 6.

Esta fusão remove a duplicação do framework e torna mais fácil para você desenvolver aplicativos que usam esses frameworks.

Então você não precisa mais escrever código ligeiramente diferente, dependendo se você está dentro de um contexto MVC, Web API, ou Web Pages.


Desempenho do HTTP melhorado

O ASP.NET 5 introduz um novo pedido HTTP pipeline que é leve e rápido.

Este pipeline é modular de forma que você pode adicionar apenas os componentes que você precisa.

Ao reduzir a sobrecarga no pipeline, a sua aplicação vai experimentar um melhor rendimento.

O novo pipeline também suporta Owin.

O Owin define uma interface padrão entre servidores web .NET e aplicações web. O objetivo da interface Owin é dissociar servidor e aplicação,
 incentivar o desenvolvimento de módulos simples para o desenvolvimento web na plataforma .NET, e, por ser um padrão aberto, estimular o
ecossistema open source de ferramentas de desenvolvimento web para .NET.
Veja mais em : http://owin.org/

Pronto para a nuvem (Cloud-ready)

Quando você cria um novo projeto ASP.NET 5, o projeto está estruturado para facilitar a implantação para a nuvem.

O Visual Studio 2015 oferece um novo sistema de configuração do ambiente que substitui o arquivo Web.config.

O novo sistema permite solicitar valores nomeados a partir de uma variedade de fontes (como variáveis JSON, XML, ou variáveis de ambiente).

Você especifica os valores para cada ambiente, e após a implantação o seu aplicativo simplesmente lê os valores corretos.

Existem também ferramentas de diagnóstico e rastreamento que tornam mais fácil para você descobrir problemas com seu aplicativo na nuvem.

Injeção de Dependência Integrada

A injeção de dependência esta embutida no ASP.NET 5.

Você pode usar o seu container de inversão de controle(IoC) para registrar dependências.

A injeção de dependência facilita a prestação dos serviços certos para o ambiente.

Para obter mais informações, consulte Dependency Injection em ASP.NET vNext.

Código fonte aberto e transparente

Todo o código para o ASP.NET 5 está disponível através do GitHub.

Não é apenas o código que esta disponível; foram uados repositórios GitHub para todo o desenvolvimento.

Assim, você pode ver exatamente quais mudanças foram feitas e quando elas foram feitas.

Você pode baixar o código e apresentar alterações.

Através do desenvolvimento do ASP.NET 5 no GitHub fica mais fácil para você entender o código, compreender para onde esta indo a tecnologia, contribuir com melhorias, e construir suas próprias implementações personalizadas dos recursos ASP.NET.

Proporcionar ambiente de desenvolvimento ágil

O Visual Studio 2015 oferece uma experiência de desenvolvedor leve para aplicações ASP.NET.

Você simplesmente faz as mudanças em seu código, salva as alterações e atualiza o navegador.

Você pode ver as mudanças de código no navegador web sem ter que reconstruir o projeto.

O código que você muda pode ser no projeto web ou em uma biblioteca de classe referenciada por seu projeto. Você deve executar (CTRL + F5) o projeto ao invés de estar no modo debug para ver as mudanças dinamicamente.

O Visual Studio usa o compilador Roslyn para habilitar essa compilação dinâmica.

Você ainda tem toda a estrutura e poder de um framework compilado, mas a experiência de desenvolvimento se parece mais com uma linguagem interpretada.

Para saber mais sobre o Roslyn Compiler visite o link: https://github.com/dotnet/roslyn

E o que aconteceu com os Web Forms ???


Desenvolve usando Web Forms ?

Não se preocupe...

Você pode continuar a desenvolver aplicativos Web Forms e ter a confiança de que os Web Forms é uma parte essencial da plataforma de desenvolvimento .NET para web.

A tecnologia não foi abandonada e ainda terá a adição de novos recursos para Web Forms para melhorar a experiência de desenvolvimento e manter a tecnologia atualizada com as práticas da web.

O novo Web Forms 4.6 inclui os seguintes recursos para Web Forms:

Os seus aplicativos Web Forms existentes continuarão a ser executados sem modificações no IIS com .NET 4.6. (Você não pode usar aplicativos de Web Forms com o runtime otimizada para nuvem.)
 

E como fica o minha aplicação legada ?

Você pode estar preocupado que com o número de alterações feitas no ASP.NET 5, agora você vai ter que reescrever todas as suas aplicações.

Não se preocupe.

Os aplicativos que você construiu em versões anteriores do ASP.NET continuarão a funcionar com o novo .NET Framework.

Você não precisa atualizar ou portar estas aplicações se você não precisar dos novos recursos no ASP.NET 5.

Assim, você pode continuar a construir aplicativos Web Forms no Visual Studio 2015, usando o framework .NET 4.6.

No entanto, os aplicativos Web Forms  não poderão tirar partido de qualquer um dos novos recursos interessantes de ASP.NET 5 descritos neste artigo.

Então, pare, pense e pondere se não chegou a hora de reescrever seu velho aplicativo Web Forms.

Suporte a GruntJS, NPM e Bower

O desenvolvimento front-end recebeu um grande avanço no ASP.NET 5 através do seu suporte ao GruntJS (e, eventualmente ao Gulp).

O GruntJS permite que você construa recursos front-end, como arquivos JavaScript e CSS. Por exemplo, você pode usar GruntJS para concatenar e minificar os arquivos JavaScript sempre que você executar uma compilação no Visual Studio.

Nota: Minificar é tornar um arquivo menos pesado removendo seus trechos desnecessários para que o código rode mais rápido.

Existem milhares de plugins GruntJS que permitem que você faça uma incrível variedade de tarefas diferentes (atualmente há 4.334 plugins listados nos repositório de plugins GruntJS ): http://gruntjs.com/plugins

Por exemplo, existem plugins para a execução de testes de unidade de JavaScript, para validar a qualidade do código do seu JavaScript (jshint), a compilação LESS e arquivos Sass em CSS, a compilação do texto TypeScript em JavaScript, e a minificação de imagens.

A fim de suportar o GruntJS, a Microsoft precisou suportar dois novos gestores de pacotes (além NuGet) : o NPM e o Bower.

Primeiro, porque os plugins GruntJS são distribuídos como pacotes NPM, a Microsoft adicionou suporte para pacotes de MPN.

Segundo, porque muitos recursos do lado do cliente - como Twitter Bootstrap, jQuery, Polymer, e AngularJS - são distribuídos através do Bower, a Microsoft adicionou também o suporte para o Bower.

Isso significa que você pode executar o GruntJS utilizando plugins do NPM e recursos clientes do Bower.

O novo xUnit.net

Nas versões anteriores do ASP.NET MVC, o framework de testes padrão era o Visual Studio Unit Testing Framework (às vezes chamado mstest).

Este framework usa os atributos [TestClass] e [TestMethod] para descrever um teste de unidade.

O ASP.NET 5 agora usa o xUnit.net como seu framework de testes de unidade.

Este framework usa os atributos [Fact] ao invés de [TestMethod] e não possui o atributo [TestMethod].

Você pode dar uma olhada no repositório MVC (e seus testes de unidade) aqui: http://github.com/aspnet/mvc

O ASP.NET usa um fork de xUnit.net que está localizado aqui:  https://github.com/aspnet/xunit

 

ASP .NET para Linux e OSX

 
Pela primeira vez na história do ASP.NET, você vai poder executar aplicações ASP.NET 5 no OSX e no Linux

Veja mais detalhes em : http://www.omnisharp.net/

 

Ufa !

São tantas novidades que só o resumo delas já cansa.

Imagina o que vem por ai...

Aguarde muitos artigos sobre o ASP NET 5 em 2015.

Porque os judeus pedem sinal, e os gregos buscam sabedoria;
Mas nós pregamos a Cristo crucificado, que é escândalo para os judeus, e loucura para os gregos.
Mas para os que são chamados, tanto judeus como gregos, lhes pregamos a Cristo, poder de Deus, e sabedoria de Deus.

1 Coríntios 1:22-24

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti