Motivação

O .NET Core 1.0 trouxe diversos benefícios para os desenvolvedores .NET, dentre os quais podemos destacar a modularidade, a flexibilidade e o suporte multiplataforma, que será o foco desse artigo.

Essa nova plataforma de desenvolvimento não mais obriga o programador a manter-se em uma máquina Windows rodando o Visual Studio. Agora também é possível programar em .NET utilizando o Linux e MacOS. Para explorar essa possibilidade, veremos nesse artigo como preparar o ambiente de desenvolvimento e iniciar projetos web com ASP.NET Core em uma máquina MacOS.

Passo 1: Instalação dos pré-requisitos do ambiente

O primeiro passo para a preparação do ambiente é a instalação dos seus pré-requisitos, que no MacOS é apenas o OpenSSL, o qual pode ser facilmente instalado utilizando o gerenciador de pacotes Homebrew. Para proceder com sua instalação, digite os seguintes comandos na janela do terminal:


~$ brew update
~$ brew install openssl
~$ brew link --force openssl

Passo 2: Instalação do .NET Core

Em seguida, instale o .NET Core utilizando o instalador oficial disponibilizado pela Microsoft nesse link. Ao finalizar, seu sistema já deve ter as ferramentas necessárias para rodar o comando dotnet a partir do terminal.

Observação: se você tem o z shell como shell padrão, você pode encontrar um problema em que o dotnet pode não estar no seu PATH após a instalação – caso você não tenha, pode desconsiderar. Para reverter essa situação, existem duas formas:

  • Solução 1: criar um symlink do binário do dotnet numa pasta que se encontra no PATH, como /usr/local/bin, com o seguinte comando:

    ln -s /usr/local/share/dotnet/dotnet /usr/local/bin

  • Solução 2: editar o arquivo .zshrc e/ou .zshprofile para incluir o caminho /usr/local/share/dotnet no $PATH.

Passo 3: Inicialização do projeto

As ferramentas do .NET Core já vêm com um criador de projetos padrão, retirando a necessidade de utilização do Yeoman – pelo menos para projetos mais simples como console, web, biblioteca e testes unitários com xUnit.

Para iniciar um novo projeto, primeiramente devemos criar uma pasta qualquer e navegar até ela, como no código a seguir, em que criamos a pasta “Hello World”:


~$ mkdir HelloWorld
~$ cd HelloWorld

Feito isso, já podemos criar o projeto, que nesse caso será do tipo web (ASP.NET Core):

~$ dotnet new –t web

O comando new aceita um argumento –t (type) que diz qual o tipo do projeto. No nosso caso, trata-se de um projeto web. Outras entradas aceitas são: console, lib e xunittest.

Ao criar um novo projeto web, o dotnet já nos dá uma aplicação básica com Bootstrap instalado e um controller Home funcionando com três actions (Index, About e Contact), além de outras ferramentas também prontas para uso, como o Gulp e Bower. Como podemos ver na Figura 1, essa é a estrutura básica da aplicação inicial.


Figura 1. Estrutura básica da aplicação web

Passo 4: Restauração dos pacotes de dependências

A partir de agora, o próximo passo é rodar o seguinte comando para baixar os pacotes de dependências iniciais do projeto:

dotnet restore

Sua execução pode demorar alguns instantes, dependendo da velocidade da conexão com a internet. Caso essa seja a primeira execução do comando, a saída também pode ser mais extensa que a ilustrada na Figura 2.


Figura 2. Saída do comando dotnet restore

Caso você deseje saber quais são os pacotes que a ferramenta baixa, basta olhar o arquivo projects.json na raiz da aplicação, que lista todas as dependências do projeto.

Passo 5: Execução do projeto

Agora nosso projeto já está pronto para ser executado, o que pode ser feito de uma maneira bem simples:

dotnet run

Esse comando irá inicializar nossa aplicação em um servidor web auto-hospedado – como mostra a Figura 3 – e que pode ser acessado de qualquer navegador da sua máquina na porta 5000 do localhost, como mostra a Figura 4.


Figura 3. Execução do projeto com o comando dotnet run


Figura 4. Projeto em execução no navegador

Para mais informações acerca do .NET Core, a Microsoft disponibilizou uma nova suíte de documentação disponível em docs.microsoft.com.A partir dela é possível avançar na estrutura do projeto, adicionando novos componentes para atender às mais diversas demandas do desenvolvimento web.