Pontos Principais
- O .NET Core 3 traz várias novidades para o .NET Core. A nova versão incluirá o C# 8, WinForms e Entity Framework 6;
- O .NET Core 3 terá como foco principal os microservices, já que foi projetado para criar aplicativos nativos da nuvem;
- Os desenvolvedores poderão programar serviços RPC baseados em contrato com alto desempenho nas aplicações ASP.NET Core 3.0;
- O ASP.NET Core 3.0 poderá usar o AOT (Ahead of Time Compile, ou Compilação Antecipada, em português) para tornar as aplicações dos desenvolvedores nativas e com alto desempenho;
- A Microsoft continuará atualizando o .NET Framework resolvendo os erros, aumentando o desempenho, a segurança e os padrões futuros.
Este artigo faz parte da série educacional .NET que explora os benefícios da tecnologia e como pode ajudar não apenas os desenvolvedores .NET tradicionais, mas também todos aqueles que precisam trazer soluções robustas, com desempenho e econômicas ao mercado.
Com o lançamento do .NET Core 3.0, a Microsoft possui a nova versão da plataforma focada no uso geral, modular, multiplataforma e de código aberto lançada inicialmente em 2016. O .NET Core foi criado inicialmente para permitir a próxima geração das soluções ASP.NET, mas direciona e é a base para muitos outros cenários, incluindo IoT, nuvem e soluções móveis. A versão 3 inclui vários recursos frequentemente solicitados, como suporte para WinForms, WPF e Entity Framework 6.
O .NET Core 3.0 foi lançado oficialmente no .NET Conf 2019, um evento gratuito para desenvolvedores virtuais. Antes do lançamento, Chris Woodruff conversou com o diretor de gerenciamento de programas da plataforma .NET, Scott Hunter, sobre o que os desenvolvedores podem esperar do .NET Core 3.
Qual é o seu papel na equipe do .NET Core?
Scott Hunter: Sou o diretor de gerenciamento de programas da plataforma .NET. Tenho uma equipe de gerentes de programa, que supervisiona o .NET Core, .NET Framework, .NET Tooling, Web Tooling, .NET Languages (C#, F#, VB), ASP.NET, Entity Framework, https://dot.net, e a comunidade .NET. Os gerentes de programa da equipe garantem que estamos construindo o produto certo para os clientes e ajudando a impulsionar a comunidade .NET.
Dê algumas informações sobre o .NET Core e comente um pouco sobre o framework, antes de conversarmos sobre os caminhos futuros.
Hunter: O .NET Core começou em 2014, quando percebemos que as mudanças necessárias para tornar o .NET relevante nos próximos 20 anos não podiam ser feitas no .NET Framework. Como o .NET Framework faz parte do Windows, só pode haver uma versão em cada computador, portanto, o framework precisava ser altamente compatível, para não quebrar nenhumas das aplicações instaladas nas mais de 1 bilhão de máquinas Windows no mundo. Fazer parte do Windows implica que só podemos atualizar a plataforma duas vezes por ano, que é o ciclo em que as principais atualizações do sistema operacional são lançadas. Ao mesmo tempo, o open source estava ganhando força nos softwares e todas as outras plataformas de programação eram open source. Inclusive, vimos que alguns desenvolvedores estavam usando Macs e algumas empresas hospedavam o software no Linux, por isso precisávamos ser multiplataforma.
O .NET Core nasceu para ser uma versão do .NET open source, multiplataforma e permitindo que diversas versões fossem instaladas em um único computador. As ferramentas foram projetadas para serem CLI-first (Command Line Interface, linhas de comando, em português), para que os desenvolvedores pudessem utilizar o .NET Core em qualquer computador usando qualquer editor de texto. Também temos um ótimo suporte para isso, usando ferramentas tradicionais como Visual Studio, Visual Studio para Mac e Visual Studio Code.
O que planejou para o .NET Core na versão 3.0?
Hunter: O .NET Core 3 traz muitas novidades. Existem milhões de desenvolvedores usando o WinForms e o WPF para criar aplicações desktop, por isso estamos acrescentando ambas estruturas ao .NET Core. Muitas dessas aplicações desktop usam o Entity Framework 6, por isso estamos incluindo-o também. Como o .NET Core sempre teve base no open source, anunciamos em dezembro que estamos tornando essas duas estruturas open source. Além disso, o .NET Core 3 inclui C# 8, .NET Standard 2.1 e muito mais.
Quais os planos para o ASP.NET Core 3.0?
Hunter: Muitas vezes, quando falamos sobre o NET Core 3.0, mencionamos o novo suporte a desktops, mas há muita inovação no ASP.NET além desta. Primeiro, enquanto não estamos trazendo de volta o WCF, sabemos que muitos desenvolvedores desejam programar serviços RPC de alta performance, baseados em contrato, nas aplicações. Estamos adotando o projeto gRPC open source para essas cargas de trabalho, e estamos também, trabalhando para tornar a implementação do .NET uma função first class, que por ser gRPC, funciona com muitas outras linguagens de programação. Existe um novo projeto de Worker Service relacionado a microservices para a execução de tarefas em segundo plano, que podem ser executados sob orquestradores como o Kubernetes. Além disso, embora o ASP.NET tenha um ótimo suporte para a criação de APIs, queremos facilitar a implementação de uma segurança avançada, por isso estamos adicionando pontes para usar nossas APIs com o Identify Server, que é um projeto open source. Por fim, estamos trabalhando no Blazor, que permite que os desenvolvedores criem aplicações web de alto desempenho usando .NET no navegador e no servidor, usando o Web Assembly.
Como o Azure afeta os planos do .NET Core?
Hunter: O Azure não afeta diretamente os planos do .NET Core. Entretanto, queremos garantir que o .NET Core seja a melhor plataforma para a criação de aplicações nativas da nuvem, incluindo aplicações baseadas em containers e microservices. Tradicionalmente, o .NET é pensado mais no contexto da interface do usuário web e desktop, no entanto, queremos mudar essa percepção. Embora atualmente possamos criar esses tipos de aplicações, não deixamos isso óbvio. Enviaremos o .NET Core 3.0 com modelos para a criação de projetos Worker Service, pois queremos que a plataforma tenha suporte para diagnóstico e depuração, mesmo se executarmos as aplicações em hiperescala na nuvem.
Quais são suas partes favoritas do .NET Core e onde deseja que as coisas mudem no futuro?
Hunter: Minhas partes favoritas do .NET Core são provavelmente a interface de linha de comando com suporte a várias plataformas e o fato de ser open source. Ser capaz de usar uma máquina baseada no Windows, Mac ou Linux, abrir o prompt de comando e criar um aplicativo com um editor de sua escolha, é algo que nunca pensamos em fazer com o .NET no passado. Além disso, poder acessar o GitHub e ver o produto sendo desenvolvido pela Microsoft e pela comunidade é algo que traz muita satisfação. Seguindo em frente, estou sempre empolgado ao habilitar novas workloads para o .NET. Estou ansioso com o AOT (Ahead of Time Compile, Compilação Antecipada em português), que oferecerá pequenas aplicações nativas de alto desempenho semelhantes a linguagem Go.
Houve alguma surpresa com o .NET Core sendo OSS?
Hunter: Transformamos o .NET Core em open source em 2014, e parecíamos estar muito atrasados no mundo do open source. Não tínhamos certeza se a comunidade iria abraçar o movimento, mas com mais de 60.000 contribuições de mais de 3.700 empresas fora a Microsoft, podemos dizer que tem sido um sucesso. Grande parte do trabalho para tornar o .NET Core um dos frameworks mais rápidos, tem vindo da comunidade.
O que isso tudo significa para o .NET Framework?
Hunter: O .NET Framework é parte integrante do sistema operacional Windows. O sistema operacional é dependente dele. Muitos produtos e serviços de larga escala da Microsoft dependem do .NET Framework, além de milhões de aplicações dos clientes usarem ele como base. Como só pode haver uma versão instalada no Windows, existe uma barreira muito alta de compatibilidade, e existem muitas limitações para as alterações que podem ser feitas nele. Continuaremos a atualizá-lo em relação aos bugs, ao desempenho, a segurança e aos futuros padrões. A inovação acontecerá no .NET Core, a natureza compatível da plataforma nos permite avançar mais rapidamente, sem o risco de quebrar as aplicações.
Por que os desenvolvedores que não usaram o .NET e o C# para projetos, devem levar em conta o .NET Core?
Hunter: Hoje, muitos desenvolvedores usam as melhores ferramentas disponíveis que se encaixam ao seu trabalho. Se olharmos para os TechEmpower Benchmarks, o .NET Core é um dos frameworks mais rápidos disponíveis no mercado. O .NET Core é alimentado pela linguagem C#, que possui recursos incríveis como Async/Await para facilitar a programação assíncrona (que foi copiada por muitas outras plataformas) e também suporta a linguagem funcional F#. Existem ainda, ótimas ferramentas para os desenvolvedores, seja o Visual Studio do Windows, Visual Studio do Mac, Visual Studio Code ou Jet Brains Rider.
Gostaria de falar mais alguma coisa sobre o .NET Core 2.2 e 3.0?
Hunter: Conversamos muito sobre a plataforma no geral e um pouco da história do NET. Também existem outros desenvolvimentos interessantes, como o Blazor, um modelo de programação que permite que os desenvolvedores construam aplicações web usando o .NET no servidor e no cliente. No cliente, compilamos o .NET no Web Assembly, para obter velocidades nativas no navegador e ter toda a forte tipação do .NET, tanto no cliente quanto no servidor. Também estamos adicionando suporte ao machine learning no .NET com o ML.NET, que é a biblioteca de ML do .NET que também é open source. A tecnologia contida é usada nos produtos da Microsoft há anos e agora estamos disponibilizando ao público.
Sobre o entrevistado
Scott Hunter é o Diretor de Gerenciamento de Programas, .NET, da Microsoft. Trabalha no Visual Studio e .NET, Incluindo .NET Core, ferramentas .NET, suas linguagens, ASP.NET, Entity Framework e Web Tooling.