Introdução ao .NET Core

Já tem algum tempo que ouço burburinhos a respeito da mais nova versão da plataforma .NET, a .NET Core. Inicialmente era apenas uma versão 5 da tradicional plataforma de desenvolvimento para Windows, depois começaram a falar sobre suporte multi-plataforma e um tal de .NET vNext. Recentemente parece que estabilizaram tudo em um tal de .NET Core que rodaria em qualquer plataforma, seria uma versão “capada” do framework, muito mais leve e veloz, open-source, que não precisa de Visual Studio e muitas outras coisas interessantes…

Eu estou longe de ser um early adopter (detesto betas…) mas uma vez que as “boas notícias” acerca da plataforma não param de surgir, eu tive de fazer alguma coisa a respeito. Eu tive de estudar .NET Core.

E não me arrependi.

Hoje trago um resumo do que pude perceber a partir de diversos vídeos, tutoriais e é claro, coloquei a mão na massa testando a plataforma.

Neste artigo você vai ver:

  1. O que é?
  2. Para quê serve?
  3. Como eu programo?
  4. Olá Mundo!
  5. Indo em frente

O que é?

O .NET Core não é a nova versão do .NET como eu imaginava. É um novo .NET, uma bifurcação no desenvolvimento da plataforma. Enquanto o .NET 4.6 segue o seu caminho normal, o .NET Core inicia uma nova jornada.

Se é que é possível resumir em uma frase, o .NET Core é: uma plataforma de desenvolvimento modular, open-source, para múltiplos sistemas operacionais e fundamentada na linguagem C#.

Por modular entenda que não há mais a necessidade de ter o .NET Framework “full” instalado na máquina onde seu sistema irá rodar. Você começa um projeto com apenas as bibliotecas mais básicas do runtime e vai adicionando mais módulos conforme a necessidade. Através de um sistema de gerenciamento de dependências (NuGet), em qualquer máquina que seu sistema for rodar, as bibliotecas serão baixadas automaticamente pela Internet, permitindo inclusive múltiplas configurações diferentes em cada máquina uma vez que são independentes.

Por open-source entenda que o projeto é mantido pela Microsoft, mas que a mesma disponibilizou os fontes no Github e tem se mostrado bem aberta à discussões e contribuições ao mesmo.

Por “múltiplos sistemas operacionais” entenda que, no momento que escrevo este post, já há suporte para Windows, Mac e diversas distribuições Linux, sendo que em breve devemos ter suporte a outras plataformas como Smart TVs, por exemplo. Além disso, há o suporte à Docker, que proporciona uma melhor compatibilidade com as nuvens computacionais atuais.

Para quê serve?

Você pode criar aplicações multiplataformas para console e web com o .NET Core, bem como bibliotecas de classes com C#. Não há Windows Forms aqui, Universal Windows Apps ou Windows Phone Apps, esses tipos de softwares continuam como estão, até onde pude entender.

No momento não se recomenda a migração de sistemas escritos no .NET 4.6 para o .NET Core, pois muitas das bibliotecas antigas não existem na plataforma, bem como não há compatibilidade com bibliotecas C# de terceiros. E mesmo para sistemas novos que venham a exigir um alto desempenho e escala ainda não está se recomendando utilizar a plataforma por ela ainda ser muito recente e imatura em relação à sua antecessora.

Os benchmarks mostram ganhos expressivos de velocidade frente a outras plataformas, mas ainda é cedo para apostar todas as suas fichas na plataforma, que está evoluindo rápido, mas precisa de muita coisa ainda.

Existe uma camada de bibliotecas compartilhadas chamada .NET Standard Library que ainda está em desenvolvimento e que permitirá uma maior compatibilidade entre as duas versões de .NET mais recentes (.NET 4.6 e .NET Core) e que permitirá também, um suporte à mais aplicações. A previsão é que a versão 2.0 da Standard Library, prevista para 2017/Q3 nos traga mais boas notícias neste sentido.

Via de regra, se você ainda for permanecer apenas com servidores Windows, não há um real motivo para migrar. Por enquanto.

Como eu programo?

A primeira notícia interessante em relação ao .NET Core é que ele funciona completamente via linha de comando. Eu não sou fã de linha de comando, mas o que isso traz é muito interessante: maior suporte a editores de texto como VIM, Sublime, Visual Studio Code, OmniSharp e muito mais. Resumindo: você não precisa mais ter o Visual Studio na sua máquina para programar .NET Core. Logo agora que a Microsoft está lançando o VS para Mac
Para quem ainda for usar o VS, estão acontecendo algumas confusões em relação ao wizard de novo projeto, onde você pode escolher rodar o .NET Core no .NET Framework ou rodar o .NET Core no .NET Core.

Como assim?

Como o .NET Core é uma versão capada do .NET Framework, há esse tipo de compatibilidade. No entanto, vale lembrar que somente há VM de .NET Framework para Windows, sendo assim, não vale a pena usar .NET Core rodando no .NET Framework se você gostaria de usar outros SOs. Você ganha em confiança da plataforma mais madura, mas perde em interoperabilidade.

Olá Mundo!

Para fazer um olá mundo com .NET Core é muito fácil. Nem parece a mesma plataforma Microsoft que comecei a ver lá em 2007. 🙂

Primeiro, acesse o site oficial e baixe a versão do utilitário de linha de comando para seu sistema operacional. Instale após baixar. Obviamente. 😐

Depois, abra seu terminal e digite a seguinte linha de comando para criar um novo projeto console na sua pasta atual:

Isso irá criar a pasta do projeto com todo o básico para o Olá Mundo dentro.

Antes de rodar, primeiro você deve restaurar as dependências desse projeto. Para isso, entre na pasta do projeto pelo terminal e mande rodar o seguinte comando:

Isso irá baixar as dependências externas localmente, deixando tudo pronto para rodar. Ainda dentro da pasta do projeto, execute o comando abaixo para executá-lo:

Isso irá compilar o projeto e executá-lo. Caso não exista nada errado, a mensagem de olá mundo será impressa no console.

Note que rodei estes comandos no Mac. Funciona perfeitamente!

Experimente agora criar um projeto web, usando o seguinte comando (lembrando de sair do projeto console):

Entre na pasta do projeto, execute o “dotnet restore” e o “dotnet run”e após o servidor subir, abra seu navegador e digite localhost:5000 para ver o site MVC de exemplo que ele criou para você.

Indo em Frente

O utilitário de linha de comando possui o comando –help que lhe traz toda uma documentação sobre cada um dos comandos e opções existentes, e tem sido muito útil para que eu possa aprender diversas coisas como criar Solutions, adicionar projetos em Solutions, compilar projetos, criar diferentes boilerplates e por aí vai.

Obviamente ficar fazendo tudo assim via linha de comando na tentativa e erro não vai levar você muito longe e escrever sistemas usando Nano (que é o editor que eu uso no terminal) não é muito prático. Você pode optar por se manter com o Visual Studio, a versão Community é gratuita e bem completa, mas consome muito recurso de máquinas modestas. Outra sugestão é baixar e instalar o Visual Studio Code, um editor de texto também da Microsoft mas com as features essenciais que você deve precisar como debug, integração com Github, um marketplace rico de extensões para diversas linguagens e suporte a Mac, Windows e Linux.

Escolha seu editor de texto favorito e acompanhe os tutoriais oficiais no site da Microsoft. De minha parte, pretendo colocar alguns posts ocasionais sobre a plataforma, que tem dividido a minha atenção atualmente com Node.js.

Ah, antes que eu me esqueça: estamos trabalhando com .NET Core em alguns projetos da Umbler e já disponibilizamos suporte à plataforma para o plano Cloud Sites (ambiente virtualizado dedicado). Caso tenha interesse em hospedar algum projeto.

Seguem os slides que usei no vídeo desse post:

O que achou desse artigo?
[Total: 10 Média: 2.8]

Publicado por

Luiz Duarte

Pós-graduado em computação, professor, empreendedor, autor, Agile Coach e programador nas horas vagas.