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.
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.
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
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: