Novidades do .NET Core 2.0

O .NET Core 2.0 contém melhorias e novos recursos nas seguintes áreas:

Ferramentas

dotnet restore é executado implicitamente

Em versões anteriores do .NET Core, era preciso executar o comando dotnet restore para baixar dependências logo após a criação de um novo projeto com o comando dotnet new, bem como sempre que uma nova dependência era adicionada ao seu projeto.

Não é necessário executar dotnet restore, pois ele é executado implicitamente por todos os comandos que exigem uma restauração, como dotnet new, dotnet build, dotnet run, dotnet test, dotnet publish e dotnet pack. Para desabilitar a restauração implícita, use a opção --no-restore.

O comando dotnet restore ainda é útil em determinados cenários em que realizar uma restauração explícita faz sentido, como compilações de integração contínua no Azure DevOps Services ou em sistemas de compilação que precisam controlar explicitamente quando a restauração ocorrerá.

Para obter informações sobre como gerenciar feeds do NuGet, confira a documentação do dotnet restore.

Você também pode desabilitar a invocação automática do dotnet restore transmitindo a opção --no-restore para os comandos new, run, build, publish, pack e test.

Redirecionar para o .NET Core 2.0

Se o SDK do .NET Core 2.0 estiver instalado, os projetos destinados ao .NET Core 1.x poderão ser redirecionados para o .NET Core 2.0.

Para redirecionar para o .NET Core 2.0, edite o arquivo do projeto alterando o valor do elemento <TargetFramework> (ou o elemento <TargetFrameworks> se você tiver mais de um destino no seu arquivo de projeto) de 1.x para 2.0:

<PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
 </PropertyGroup>

Você também pode redirecionar bibliotecas do .NET Standard para o .NET Standard 2.0 da mesma maneira:

<PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
 </PropertyGroup>

Para mais informações sobre como migrar seu projeto para o .NET Core 2.0, confira Migrar do ASP.NET Core 1.x para o ASP.NET Core 2.0.

Suporte ao idioma

Além do suporte a C# e F#, o .NET Core 2.0 também suporta Visual Basic.

Visual Basic

Com a versão 2.0, o .NET Core agora oferece suporte para o Visual Basic 2017. Você pode usar o Visual Basic para criar os seguintes tipos de projeto:

  • Aplicativo de console do .NET Core
  • Bibliotecas de classe do .NET Core
  • Bibliotecas de classe do .NET Standard
  • Projetos de testes de unidade do .NET Core
  • Projetos de testes de xUnit do .NET Core

Por exemplo, para criar um aplicativo "Olá, Mundo" do Visual Basic, siga as seguintes etapas da linha de comando:

  1. Abra uma janela do console, crie um diretório para seu projeto e torne-o o diretório atual.

  2. Digite o comando dotnet new console -lang vb.

    O comando cria um arquivo de projeto com uma extensão de arquivo .vbproj, junto com um arquivo de código-fonte do Visual Basic chamado Program.vb. Este arquivo contém o código-fonte para gravar a cadeia de caracteres "Olá, Mundo!" na janela do console.

  3. Digite o comando dotnet run. A CLI do .NET compila e executa automaticamente o aplicativo, que exibe a mensagem "Olá, Mundo!" na janela do console.

Suporte para C# 7.1

O .NET Core 2.0 suporta C# 7.1, que adiciona uma série de novos recursos, incluindo:

  • O método Main, o ponto de entrada do aplicativo, pode ser marcado com a palavra-chave async.
  • Nomes de tuplas inferidos.
  • Expressões padrão.

Aprimoramentos da plataforma

O .NET Core 2.0 inclui uma série de recursos que facilitam a instalação do .NET Core e o uso dele em sistemas operacionais com suporte.

O .NET Core para Linux é uma implementação única

O .NET Core 2.0 oferece uma implementação única do Linux que funciona em várias distribuições do Linux. O .NET Core 1.x requer que você baixe uma implementação do Linux específica para distribuição.

Você também pode desenvolver aplicativos destinados ao Linux como um sistema operacional único. O .NET Core 1.x requer que você direcione cada distribuição do Linux separadamente.

Suporte para as bibliotecas criptográficas da Apple

O .NET Core 1.x no macOS exigia a biblioteca criptográfica do kit de ferramentas OpenSSL. O .NET Core 2.0 usa as bibliotecas criptográficas da Apple e não requer o OpenSSL, portanto, não é mais preciso instalá-lo.

Alterações de API e suporte à biblioteca

Suporte para .NET Standard 2.0

O .NET Standard define um conjunto com versões das APIs que devem estar disponíveis em implementações .NET que estejam de acordo com a versão standard. O .NET Standard é destinado a desenvolvedores de bibliotecas. O objetivo dele é garantir a funcionalidade que está disponível para uma biblioteca destinada a uma versão do .NET Standard em cada implementação do .NET. O .NET Core 1.x dá suporte ao .NET Standard versão 1.6; o .NET Core 2.0 dá suporte à versão mais recente, o .NET Standard 2.0. Para obter mais informações, confira .NET Standard.

O .NET Standard 2.0 inclui 20.000 APIs a mais do que havia disponível no .NET Standard 1.6. A maior parte dessa área de superfície expandida resulta da incorporação de APIs que são comuns ao .NET Framework e Xamarin no .NET Standard.

As bibliotecas de classe .NET Standard 2.0 também podem fazer referência às bibliotecas de classe do .NET Framework, desde que elas chamem APIs que estão presentes no .NET Standard 2.0. Nenhuma recompilação das bibliotecas do .NET Framework é necessária.

Para obter uma lista com as APIs que foram adicionadas ao .NET Standard desde a última versão, o .NET Standard 1.6, confira .NET Standard 2.0 vs. 1.6.

Área de superfície expandida

O número total de APIs disponíveis no .NET Core 2.0 mais que dobrou em comparação com o .NET Core 1.1.

E com o Pacote de Compatibilidade do Windows, a portabilidade do .NET Framework também se tornou muito mais simples.

Suporte a bibliotecas do .NET Framework

O código .NET Core pode fazer referência a bibliotecas existentes do .NET Framework, incluindo pacotes do NuGet. Observe que as bibliotecas devem usar APIs que são encontradas no .NET Standard.

integração com o Visual Studio

O Visual Studio 2017 versão 15.3 oferece vários aprimoramentos significativos para desenvolvedores do .NET Core.

Redirecionamento de aplicativos .NET Core e bibliotecas do .NET Standard

Se o SDK do .NET Core 2.0 estiver instalado, você poderá redirecionar projetos do .NET Core 1.x para o .NET Core 2.0 e bibliotecas do .NET Standard 1.x para o .NET Standard 2.0.

Para redirecionar seu projeto no Visual Studio, abra a guia Aplicativo da caixa de diálogo de propriedades do projeto e altere o valor Estrutura de destino para .NET Core 2.0 ou .NET Standard 2.0. Você também pode alterar clicando com o botão direito do mouse no projeto e selecionando a opção Editar arquivo *.csproj. Para obter mais informações, confira a seção Ferramentas neste tópico.

Suporte a Live Unit Testing para .NET Core

Sempre que você modifica o código, o Live Unit Testing executa os testes de unidade afetados automaticamente em segundo plano e exibe os resultados e a cobertura de código de forma dinâmica no ambiente do Visual Studio. O .NET Core 2.0 agora oferece suporte ao Live Unit Testing. Anteriormente, o Live Unit Testing estava disponível somente para aplicativos do .NET Framework.

Para obter mais informações, confira Live Unit Testing com o Visual Studio e Perguntas Frequentes sobre o Live Unit Testing.

Melhor suporte a várias estruturas de destino

Se você estiver criando um projeto para várias estruturas de destino, selecione a plataforma de destino no menu de nível superior. Na imagem a seguir, um projeto chamado SCD1 é direcionado ao macOS X 10.11 (osx.10.11-x64) de 64 bits e ao Windows 10/Windows Server 2016 (win10-x64) de 64 bits. Selecione a estrutura de destino antes de selecionar o botão do projeto, neste caso para executar um build de depuração.

Captura de tela mostrando a seleção da estrutura de destino durante a criação de um projeto.

Suporte lado a lado para SDKs do .NET Core

Agora você pode instalar o SDK do .NET Core independentemente do Visual Studio. Isso possibilita que uma única versão do Visual Studio crie projetos destinados a diferentes versões do .NET Core. Anteriormente, o Visual Studio e o SDK do .NET Core foram acoplados; uma versão específica do SDK acompanhava uma versão específica do Visual Studio.

Melhorias na documentação

Arquitetura do Aplicativo .NET

A Arquitetura do Aplicativo .NET proporciona o acesso a um conjunto de livros eletrônicos que oferecem diretrizes, práticas recomendadas e aplicativos de exemplo ao usar o .NET para compilar:

Confira também