Há alguns meses, iniciei a escrita de uma nova série: “ASP.NET vNext“. O objetivo era e continua sendo, apresentar o novo modelo de desenvolvimento web proposto pela Microsoft para profissionais que utilizam sua suíte de tecnologias para este fim. Se você acompanha este blog, deve saber que este é o terceiro artigo desta série.
No primeiro texto da série, falamos sobre a motivação da Microsoft para propor o novo modelo. Aproveitamos também para apresentar a especificação OWIN (Open Web Interface for .NET), responsável por nortear o novo modus operandi do ASP.NET. Você pode efetuar a leitura deste texto seguindo este link.
No segundo post, falamos sobre o Katana que é, em linhas gerais, a implementação para .NET do OWIN. Você pode efetuar a leitura deste post através deste outro link.
Hoje, finalmente, iremos a prática. Como você pode perceber, estamos evoluindo os conceitos tratados na série aos poucos (com o objetivo maximar a absorção dos mesmos) e para continuar seguindo esta premissa, utilizaremos uma aplicação extremamente simples, já criada pelo time do ASP.NET (a saber, HelloMvc) mas que nos trará lições importantes sobre a estrutura da aplicação em sí e do novo modelo operacional proposto.
O ambiente de trabalho
Desenvolvedor ASP.NET que se preze, quando vai criar uma nova aplicação, instintivamente faz o que? Executa o Visual Studio e segue o padrão: File > New > Project. Muito embora seja um fato que este modelo de operação também estará disponível para o vNext na próxima versão do Visual Studio (já temos a versão 2014 CTP 3), a ideia do time do ASP.NET é que isso não seja uma regra. Um dos objetivos principais deste novo modelo, é proporcionar ao desenvolvedor a independência de plataforma.
Se você utiliza a versão 2013 ou inferior do Visual Studio, sorry mas não existe um template pronto de ASP.NET vNext. Você terá que configurar seu ambiente e não necessariamente utilizará o Visual Studio para escrever seus códigos.
Instalando o KVM (R)
O KVM é a implementação do Katana, ou seja, é o container que disponibiliza os recursos para “rodar” aplicações ASP.NET no modelo OWIN. Desta forma, você precisará ter este pack de recursos (que inclui o Runtime) instalado em sua máquina para que seja possível rodar os exemplos.
O primeiro passo neste sentido, é acessar o repositório do ASP.NET no GitHub. Uma observação importante neste ponto é, você encontrará neste repositório informações preciosas, tanto de configuração de ambiente (com algumas receitas de bolo) quanto de implementações. Para você gosta de acompanhar a evolução das tecnologias, você pode “assistir” os commits do time do ASP.NET (através do recurso “watch“) do GitHub.
Voltando a instalação do KVM, estando no repositório no GitHub, você terá duas opções:
- Clonar o repositório
- Baixar o arquivo *.zip com os arquivos do repositório
Para este post, utilizarei o segundo exemplo (não sei se você possui cadastro no GitHub, logo…). Para baixar, basta clicar no botão que apresenta opção correspondente, localizado à direita da página (conforme ilustra a Figura 1).
Figura 1. Repositório do GitHub com a opção de baixar um *.zip do arquivo
Após baixar, descompacte o pacote. Ao fazê-lo, você visualizará uma estrutura de diretórios semelhante aquela apresentada pela Figura 2.
Figura 2. Repositório descompactado
Pelas imagens do post, você já deve ter percebido que estou utilizando um ambiente MacOS para compor este texto. Isso é proposital. Quero com isso mostrar que, de fato, o vNext funciona da mesma forma em qualquer uma das principais plataformas do mercado: Windows , Mac e Linux.
Instalação no Windows
Para que aplicações web vNext possam “rodar” de forma adequada no ambiente das janelas, é preciso que você possua em seu dispositivo, no mínimo, Windows 7 ou, no caso de servidor, Windows 2008 R2.
O processo de instalação é simples. Basta seguir os passos descritos na lista a seguir.
- Execute a aplicação de linha de comandos do Windows (o famoso “cmd”) com permissão administrador.
- Na sequência, navegue até o diretório raiz do repositório recém descompactado.
- Uma vez lá, digite o seguinte comando: “kvm install“.
- Quando o prompt lhe solicitar permissões de execução, pressione a tecla com a letra “R” (de Run Once) e deixe o instalador prosseguir.
- O passo seguinte, consiste na instalação do runtime. Você pode fazer isso executando o seguinte comando: “kvm install 1.0.0-alpha3“. De igual forma, permita ao instalador seguir com os próximos passos pressionando a tecla “R” quando solicitado.
Ao concluir o processo, você visualizará uma tela semelhante àquela apresentada pela Figura 3.
Figura 3. KVM instalado com sucesso
Para compilar a aplicação, o comando é “kpm restore“. Para rodar as aplicações no ambiente, você utilizará os comando “k run” (para aplicações não web) e “k web” para aplicações web. Para isso, basta navegar até a raíz do projeto web (ou não), digitar os respectivos comandos, e ver a aplicação subir. Neste post, demonstrarei este conceito no MacOS.
Instalação no MacOSX
O processo é muito similar àquele descrito na sub seção anterior. O que muda são os nomes de comandos e os pré-requisitos que viabilizam o funcionamento do KVM.
Desta forma, execute o terminal de comandos de seu sistema e em seguida, execute os seguintes passos.
- No Mac você precisará instalar o “Homebrew“. Ele é um “gestor de dependências” que irá instalar e configurar tanto o Mono quanto as demais dependências do sistema.
- Execute o comando “brew tap aspnet/k“. Quando a permissão for solicitada, forneça ao instalador através de sua senha de administrador do sistema.
- O próximo passo consiste na instalação do KVM, de fato. Para isso, execute o comando “brew install kvm“. Novamente, forneça todas as permissões solicitadas pelo instalador. No Mac, o Brew instalará o KRE (que no Windows, tem que ser instalado manualmente, conforme descreve o passo 5 da sub seção anterior.
- Para testar se tudo está funcionando corretamente, execute o comando: “kvm.sh”.
Para rodar as aplicações, o processo também é muito similar ao do Windows. “kpm restore” para compilar a app, “k run” para executar aplicações não web e “k web” para aplicações web, evidentemente.
Instalação no Linux
O processo de instalação no Linux é similar aos apresentados anteriormente. Não vou descrever aqui para não deixar o post cansativo com processos semelhantes. Você pode encontrar uma boa referência sobre como preparar o ambiente para o vNext no Linux, seguindo este link.
Você precisará do Mono 3.4.1 ou superior para conseguir configurar.
Executando uma aplicação exemplo
Agora temos nossos ambientes prontos e devidamente configurados, podemos colocar uma aplicação de exemplo do vNext para rodar. Utilizarei aqui uma que o próprio time do ASP.NET disponibiliza naquele pacote que baixamos do repositório oficial no GitHub.
Se você reparar, existe uma pasta na estrutura de diretórios do repositório chamada “Samples“. Como o próprio nome sugere, em seu interior encontram-se exemplos de apps que já funcionam no modelo proposto (vNext). Utilizaremos como exemplo, a app “HelloMvc”. Como mencionei anteriormente neste post, vou usar o Mac para demonstrar a aplicação rodando. O processo no Windows e no Linux é muito parecido, portanto, você poderá reproduzir este exemplo sem problemas.
Com o terminal do Mac já em execução, navegue até a pasta “Samples“, disponível no interior da pasta “Home-master“. De lá, execute o comando “kpm restore“. Como já mencionei anteriormente, este é o comando responsável por compilar e unir as pontas de nossa aplicação web. Ele verificará todas as dependências do projeto, as baixará e instalará e, ao final, compilará a mesma.
Ao fazê-lo, você visualizará uma imagem semelhante àquela apresentada pela Figura 4.
Figura 4. Restore completo
Na sequência, precisamos executar a aplicação. Para isso, utilizaremos no Mac o comando “kestrel“. No Windows, o equivalente é o “web“. A Figura 5 apresenta a resposta do terminal, indicando que o servidor OWIN está pronto e executando a aplicação.
Figura 5. Servidor OWIN em execução rodando a aplicação
Por padrão (veremos como modificar isso mais adiante), aplicações web no Mac responderão sempre na portal 5004. Desta forma, se formos ao navegador e digitarmos o endereço “http://localhost:5004/“, teremos a resposta apresentada pela Figura 6.
Figura 6. Aplicação em execução
Conclusões
Sei o que você deve estar pensando: caramba, preciso executar essa quantidade enorme de passos para executar uma aplicação web? Isso não é um passo atrás? No Visual Studio clico em “Run” e tudo acontece sozinho… etc etc etc.
A resposta é não, não demos um passo para trás.
Você está pensando apenas na perda e não nos ganhos. Nos primeiros posts da série falei bastante sobre os benefícios proporcionados por este novo modelo e não convém aqui, reapresentálos. Fica a dica de leitura.
O ponto aqui é: ganhamos em flexibilidade. Faça sua aplicação no Windows e continue editando-a no Mac e no Linux. No próximo post discutiremos com minúcias a estrutura de um novo projeto ASP.NET (claro, com foco em MVC). Lá ficará evidente pra você, como este novo modelo faz muito mais sentido e como você, no final das contas, ganhará em produtividade e portabilidade.
Ficará claro também que, este novo tipo de aplicação, atende aos requisitos da web moderna.
Além do mais, a próxima versão do Visual Studio trará todo o ferramental que você já conhece e adora, para criar aplicações que atendem ao novo modelo de aplicações, mesmo que seja em cima de IIS.
Por hoje é isso. Forte abraço a todos ;-).
Facebook
Twitter
Instagram
LinkedIn
RSS