ASP.NET 5 (PARTE 2)

Na primeira parte dessa série, viamos uma introdução sobre as várias mudanças e novidades que motivaram o redesign do ASP.NET para o ASP.NET 5. Este artigo, tem como objetivo mostrar um pouco sobre os pontos de instalação do ASP.NET 5, instalação standalone do DNVM (Dotnet Version Manager) e do DNX (.NET Execution Environment) e quais pontos que precisam ser levados em consideração na escolha do tipo de versão do .NET que você utilizará no desenvolvimento do seu projeto.

Instalando o ASP.NET 5 no sistema operaciona Windows

Apesar de muitos já terem baixado a mais nova versão do VS e terem começado a estudar as novidades do ASP.NET 5, preciso seguir com a série e informo que, a maneira mais fácil de obtermos a instalação do ASP.NET 5 é: Instalando a IDE do Visual Studio 2015 (e isso inclui a versão free Community também – baixe aqui). Como muitos estão acostumados a selecionar tudo e mandar ver na instalação, a opção que precisa ser selecionada, para que a instalação do ASP.NET 5 seja bem sucedida é a opção: Microsoft Web Developer Tools, conforme imagem abaixo:

VS2015-Installation

Agora com o Visual Studio 2015 instalado, você está apto a começar a desenvolver suas aplicações ASP.NETutilizando as novidades do ASP.NET 5.

Instalação Standalone

Ok, não tenho o Visual Studio 2015 e também não pretendo obter a versão free (Community Edition), gostaria de algo mais light e que dê suporte ao ASP.NET 5. Ok, temos a solução!

De fato, o Visual Studio 2015 não é a única fonte de desenvolvimento e instalação para a nova versão do ASP.NET. Para isso, temos um conjunto de comandos Powershell que realiza o download e instalação dos pacotes necessários para a instalação do runtime do novo ASP.NET, sem a necessidade da instalação da IDE do VS2015. Para que tudo corra bem, existe alguns cuidados ser observados e passos que precisam ser executados.

Para que sua instalação standalone funcione corretamente, você vai precisar de duas ferramentas:

  • *DNVM – *.NET Version Manager
  • *DNX – *.NET Execution Environment

Só que existe uma interdependência entre elas: DNX depende diretamente do DNVM. Vamos tratar essas interdependências nos próximos tópicos.

Instalando o DNVM (DotNet Version Manager)

Essa ferrementa tem a funciona de gerenciar as várias versões do runtime do .NET que podem ser instaladas de forma paralela e independentemente umas das outras, ou seja, você pode ter o seguinte cenário:

  • Versão Instalada:* dnx-coreclr-win-x64.1.0.0-beta4*
  • Versão Instalada: dnx-coreclr-win-x86.1.0.0-beta4

Com o gerenciador de versões (DNVM) você tem a possibilidade de instalar e gerenciar quantas versões você precisar para sua aplicação. Os runtimes citados acima, podem ser encontrados seguinte diretório: C:\Users\SeuUsuario\.dnxruntimes.

Para realizar a instalação do DNVM utilizando o sistema operacional Windows, será necessário utilizar o prompt do Powershell ou do CMD (command) (não esqueça que precisa estar em modo Administrador/Administrator) e executar a linha de comando abaixo:

CMD

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "&{$Branch='dev';iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.ps1'))}"

&{$Branch='dev';iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.ps1'))}

Script executado, DNVM instalado. Mas é sempre bom dar uma conferida se a instalação foi bem sucedida. Mas como eu faço isso? Abra uma nova janela do CDM (command) e vamos verificar se a ferramenta de gerenciamento de versões do runtime .NET foi instalada realmente com sucesso, executando o comando: dnvm. O resultado tem que ser igual a imagem abaixo:

DNVM-Installation

Atualizando o DNVM e instalando o DNX

Para instalar a nova versão do ASP.NET cross-plataform, será necessário instalar o DNX (.NET Execution Environment). Oh não, outra instalação no meu S.O!!! Não precisa se preocupar, porque a instalação do DNX vai instalar somente pacotes necessários ao seu funcionamento, da a mais além disso.

Para começar a instalação da ferramenta, será necessário executar o DNVM através do comando: dnvm upgrade. Esse comando vai baixar a última versão disponível do DNX e vai instalar todos os pacotes necessários, dentro da pasta do user profile (perfil do usuário), conforme informado no tópico anterior.

Após essa atualização e instalação, mais uma vez vamos nos assegurar que a ferramenta teve sua instalação bem sucedida. Para isso, execute apenas o comando: dnx, no prompt do CMD e o resultado esperado tem que ser algo parecido com a imagem abaixo:

DNX-Installation

Observe que no momento em que escrevia este artigo e que atualizei a versão do DNX, a versão que estava disponível pra mim foi: Microsoft .NET Execution environment CLR-x86-1.0.0-beta5-11911. Não fique preocupado se algo diferente desta versão aparecer para você.

Agora o seu DNX está instalado e devidamente configurado. Agora você pode começar a criar suas aplicações ASP.NET 5 e formato cross-plataform.

Como escolher qual versão do .NET usar?

Bom, ambiente instalado e configurado. Agora é começar a codificar, certo!? Até certo ponto. O que eu aconselho a fazer, depois da configuração das ferramentas DNVM e DNX, responda a seguinte pergunta: O projeto que vou migrar/desenvolver precisa nascer cross-plataform? Quais vantagens o projeto e equipe ganhará optando por ser cross-plataform? Qual a curva de aprendizado do time?

Enquanto você pensa para responder essas perguntas, todos que estam acompanhando o andamento e evolução do novo runtime do ASP.NET e .NET sabem que o novo runtime é de fato cross-plataform (essa palavra nunca foi tão falada em ambiente Microsoft J) e que funciona perfeitamente em Windows, Linux e Mac. Na nova IDE do Visual Studio 2015, quando você cria uma aplicação você tem a possibilidade de escolher qual Target Framework sua aplicação será suportada (Até aqui nada de novo).

A novidade é que, com a integração do .NET com essas plataformas abertas, a escolha do Target Framework ficou ainda mais flexivel, onde você pode continuar optando por versões como: .NET Core (CLR ou Common Language Runtime), .NET Core (CoreCLR) ou Mono – Versão do frameowkr .NET para ambientes Linux, existentes até hoje. E qual versão do .NET eu deveria escolher? Imagino que você esteja perto da resposta, mas espere até eu explicar um pouco sobre cada uma das versões.

.NET Framework

Esse é o framework mais conhecido dentre os desenvolvedores da plataforma Microsoft há alguns anos, além de ser um framework bem maduro e evoluido em todos os sentidos – Nisso a Microsoft dedicou-se ao extremo para evoluir e trazer sempre benefícios e novidades sensacionais para os desenvolvedores .NET.

O framework .NET possui um ecosistema muito bem estabelecido e estabilizado, e tem se mantido assim por algumas décadas. Apesar de todas as evoluções que foram aplicadas ao .NET durante décadas, esse framework só funciona em ambiente WINDOWS – Aqui está a primeira diferença que aparece em comparação as outras versões. Esse comportamento caracteriza o framework .NET como Monolítico funcionando em um único cenário, mas com uma gama enorme de APIs que facilitam muito o dia-a-dia do desenvolvedor. Um grande benefício dessas evoluções é a programação funcional utilizando Lambda Expression e consultas LINQ em arquivos XML, recursos sensacionais que estão presentes no .NET e não são facilmente encontrados em outras plataformas de desenvolvimento (diria que não existe nada parecido na maioria delas).

Embora o framework .NET tenha sua documentação aberta e disponível na web, o seu núcleo não está aberto para alterações.

.NET Core

Essa versão do .NET framework, é O CARA. Se trata de uma versão do framework que é modular e que inclui um conjunto de comportamentos, características e funcionalidades do .NET framework. Será por meio desse Target Framework que sua aplicação se tornará cross-plataform. Atualmente é uma versão que está pronta para ser utilizada em ambiente Windows e está repleta de funcionalidades Windows (nada de subrenatural aqui, não é mesmo J), porém está em intenso e constante atualizações e liberação de builds para contemplar o mesmo cenário do Windows, para Linux e OSX.

O .NET Core foi concebido com um conjunto de bibliotecas que pode também ser chamada de "CoreFX" (essa será a versão completa (FULL)), mas terá uma outra versão mais versátil, pequena e com um runtime mais otimzado que será chamada de .NET Core. Comparado a versão do .NET Framework (CLR) que não está aberto para alterações, o .NET Core ou CoreCLR é de fato 101% open-source. Vvocê pode acompanhar todos os builds, sugestões, wiki e envio de issues através Github.

Tanto o CoreCLR (Microsoft.CoreCLR) como o CoreFX estão disponíveis via Nuget. Contudo, o .NET Core foi construido como um conjunto de bibliotecas componentizadas, você terá a liberdade de criar APIs em sua aplicação que sejam estremamente limitadas ao que você precisa, ou seja, eliminando APIs desnecessárias e aumento do tamanho final da sua aplicação em produção. Com isso, sua aplicação será totalmente capaz de ser executada em ambientes bem restritos, como por exemplo: Windows Server Nano. Você pode encontrar maiores detalhes sobre esse novo ambiente de nano-servidores aqui.

A API do .NET Core ou CoreCLR foi totalmente atualizada e desenhada para habilitar melhor performance aos sistemas cross-plataform, isso significa que se você já tem um projeto marcado como Target Framework e precisa ou deseja mudar para esse tipo de versão, certamente seu sistema precisará ser recompilado para ser integrado ao framework do CoreCLR.

PS.: Até quando esse artigo foi escrito o .NET Core/CoreCLR, embora tenha nascido para trabalhar em cenários cross-plataform como Mac e Linux, ele ainda é extremamente novo e está em amplo desenvolvimento, isso quer dizer que não é de recomendado, de forma alguma, que seja realizado deploys de sistemas em produção utilizando este tipo de framework, mas é 1001% recomendado que façam testes, utilizem essa versão de Target e reportem os issues que vocês encontrarem na plataforma através do link no Github.

O que falar do MONO?

Bem, o MONO foi a primeira tentativa de rodar a plataforma .NETem uma plataforma que não fosse Windows, com a intesão de ampliar a utilização e desenvolvimento de aplicações .NET. O MONO é totalmente open-source e também compartilha muitas das funcionalidades da API do .NET Framework. Ponto de desvantagem: Não é suportado em plataforma Windows – Eis aqui um ponto monolítico (Linux apenas). Apesar de ser suportado em plataforma windows e patrocinado pela Novell e Xamarim, o MONO necessita de uma série de outros aplicativos que fornecem suporte para o seu funcionamento, como por exemplo GTK# para aplicações Windows, no caso do ASP.NET não possuir a opção do self-hosting (introduzido com o novo pipeline do ASP.NET), Esses são pontos extremamente importante a serem analisado, pra mim; Isso só motiva ainda mais a utilização do .NET Core/CoreCLR, pois este sim é Cross-plataform, onde teremos tudo dentro da plataforma e do mesmo CORE.

Conclusão

Aqui neste artigo de hoje fizemos mais uma pequena imersão sobre o ASP.NET 5, suas versões de instalação e como é possível instalar o ASP.NET 5 independente da IDE do Visual Studio 2015. Foram apresentadas as ferramenas DNVM e DNX, seus conceitos e utilidades, além de como preparar o ambiente windows utlizando essas ferramentas; após a instalação e configuração das ferramentas, discutimos um pouco sobre como escolher que tipo de versão do .NET framework devemos ou não utilizar em nossos sistemas, sejam eles novos projetos ou projetos legados que a empresa tem o desejo de migrar para o novo core do .NET.

Feitas essas explicações, será que você chegou uma conclusão? Espero que sim.

Nos vemos no próximo artigo dessa série sobre ASP.NET 5.

Grande abraço e até a próxima

Referências

Comments