Partilhar via


O que há de novo no ASP.NET Core 2.0

Este artigo destaca as mudanças mais significativas no ASP.NET Core 2.0, com links para documentação relevante.

Razor Páginas

O Razor Pages é um novo recurso do ASP.NET Core MVC que torna a codificação de cenários focados na página mais fácil e produtiva.

Para obter mais informações, consulte a introdução e o tutorial:

Metapacote ASP.NET Core

Um novo metapacote do ASP.NET Core inclui todos os pacotes feitos e suportados pelas equipes do ASP.NET Core e do Entity Framework Core, juntamente com suas dependências internas e de terceiros. Você não precisa mais escolher recursos individuais do ASP.NET Core por pacote. Todos os recursos estão incluídos no pacote Microsoft.AspNetCore.All. Os modelos padrão usam este pacote.

Para obter mais informações, consulte metapacote Microsoft.AspNetCore.All para ASP.NET Core 2.0.

Repositório de tempo de execução

Os aplicativos que usam o metapacote Microsoft.AspNetCore.All automaticamente aproveitam o novo .NET Core Runtime Store. A Store contém todos os componentes de execução necessários para executar aplicações ASP.NET Core 2.0. Quando se usa o metapacote Microsoft.AspNetCore.All, nenhum dos recursos dos pacotes NuGet do ASP.NET Core referenciados é implantado com a aplicação porque eles já estão presentes no sistema de destino. Os ativos no Runtime Store também são pré-compilados para melhorar o tempo de inicialização do aplicativo.

Para obter mais informações, consulte Runtime store

.NET Padrão 2.0

Os pacotes do ASP.NET Core 2.0 destinam-se ao .NET Standard 2.0. Os pacotes podem ser referenciados por outras bibliotecas do .NET Standard 2.0 e podem ser executados em implementações compatíveis com o .NET Standard 2.0 do .NET, incluindo o .NET Core 2.0 e o .NET Framework 4.6.1.

O metapacote Microsoft.AspNetCore.All destina-se apenas ao .NET Core 2.0, porque se destina a ser usado com o .NET Core 2.0 Runtime Store.

Atualização de configuração

Uma instância IConfiguration é adicionada ao contêiner de serviços por padrão no ASP.NET Core 2.0. IConfiguration no contêiner de serviços torna mais fácil para os aplicativos recuperar valores de configuração do contêiner.

Para obter informações sobre o status da documentação planeada, consulte a questão do GitHub .

Atualização de log

No ASP.NET Core 2.0, o logging é incorporado ao sistema de injeção de dependências (DI) por padrão. Você adiciona provedores e configura a filtragem no arquivo Program.cs em vez de no arquivo Startup.cs. E o ILoggerFactory padrão oferece suporte à filtragem de uma forma que permite que você use uma abordagem flexível para filtragem entre provedores e filtragem de provedores específicos.

Para obter mais informações, consulte Introdução ao registo.

Atualização de autenticação

Um novo modelo de autenticação facilita a configuração da autenticação para um aplicativo usando DI.

Novos modelos estão disponíveis para configurar a autenticação para aplicativos Web e APIs Web usando Azure AD B2C.

Para obter informações sobre o status da documentação planejada, consulte a questão do GitHub.

Identity atualização

Facilitamos a criação de APIs da Web seguras usando Identity no ASP.NET Core 2.0. Você pode adquirir tokens de acesso para acessar suas APIs da Web usando o Microsoft Authentication Library (MSAL).

Para obter mais informações sobre alterações de autenticação na versão 2.0, consulte os seguintes recursos:

Modelos de SPA

Estão disponíveis modelos de projeto de Aplicação de Página Única (SPA) para Angular, Aurelia, Knockout.js, React.jse React.js com Redux. O modelo Angular foi atualizado para Angular 4. Os modelos Angular e React estão disponíveis por padrão; para obter informações sobre como obter os outros modelos, consulte Criar um novo projeto SPA. Para obter informações sobre como criar um SPA no ASP.NET Core, consulte Os recursos descritos neste artigo estão obsoletos a partir do ASP.NET Core 3.0.

Kestrel melhorias

O servidor web Kestrel tem novos recursos que o tornam mais adequado como um servidor voltado para a Internet. Várias opções de configuração de restrição de servidor são adicionadas na nova propriedade Limits da classe KestrelServerOptions. Adicione limites para o seguinte:

  • Máximo de conexões de cliente
  • Tamanho máximo do corpo do pedido
  • Taxa mínima de transmissão de dados do corpo da requisição

Para obter mais informações, consulte Kestrel implementação de servidor Web no ASP.NET Core.

WebListener renomeado para HTTP.sys

Os pacotes Microsoft.AspNetCore.Server.WebListener e Microsoft.Net.Http.Server foram mesclados em um novo pacote Microsoft.AspNetCore.Server.HttpSys. Os namespaces foram atualizados para corresponder.

Para obter mais informações, consulte HTTP.sys implementação de servidor Web no ASP.NET Core.

Suporte aprimorado a cabeçalhos HTTP

Ao usar o MVC para transmitir um FileStreamResult ou um FileContentResult, agora você tem a opção de definir uma ETag ou uma data de LastModified no conteúdo transmitido. Você pode definir esses valores no conteúdo retornado com código semelhante ao seguinte:

var data = Encoding.UTF8.GetBytes("This is a sample text from a binary array");
var entityTag = new EntityTagHeaderValue("\"MyCalculatedEtagValue\"");
return File(data, "text/plain", "downloadName.txt", lastModified: DateTime.UtcNow.AddSeconds(-5), entityTag: entityTag);

O arquivo retornado aos seus visitantes tem os cabeçalhos HTTP apropriados para os valores ETag e LastModified.

Se um visitante do aplicativo solicitar conteúdo com um cabeçalho de solicitação de intervalo, o ASP.NET Core reconhecerá a solicitação e manipulará o cabeçalho. Se o conteúdo solicitado puder ser parcialmente entregue, o ASP.NET Core ignorará e retornará apropriadamente apenas o conjunto de bytes solicitado. Você não precisa escrever nenhum manipulador especial em seus métodos para adaptar ou lidar com esse recurso; é processado automaticamente por si.

Hospedagem de startup e Application Insights

Os ambientes de hospedagem agora podem injetar dependências de pacotes extras e executar código durante a inicialização do aplicativo, sem que o aplicativo precise explicitamente assumir uma dependência ou chamar qualquer método. Esse recurso pode ser usado para permitir que determinados ambientes "iluminem" recursos exclusivos desse ambiente sem que o aplicativo precise saber com antecedência.

No ASP.NET Core 2.0, este recurso é usado para ativar automaticamente o diagnóstico do Application Insights ao depurar no Visual Studio e (após consentimento) ao executar no Azure App Services. Como resultado, os modelos de projeto não adicionam mais pacotes e código do Application Insights por padrão.

Para obter informações sobre o status da documentação planejada, consulte a issue no GitHub.

Utilização automática de fichas antifalsificação

ASP.NET Core sempre ajudou a codificar conteúdo HTML por padrão, mas com a nova versão uma etapa extra é tomada para ajudar a evitar ataques de falsificação de solicitação entre sites (XSRF). ASP.NET Core agora emitirá tokens antifalsificação por padrão e os validará em ações e páginas POST de formulário sem configuração extra.

Para obter mais informações, consulte Prevenir ataques de Cross-Site Request Forgery (XSRF/CSRF) no ASP.NET Core.

Pré-compilação automática

Razor pré-compilação de exibição é habilitada durante a publicação por padrão, reduzindo o tamanho da saída de publicação e o tempo de inicialização do aplicativo.

Para obter mais informações, consulte Razor exibir compilação e pré-compilação no ASP.NET Core.

Razor suporte para C# 7.1

O mecanismo de visualização Razor foi atualizado para funcionar com o novo compilador Roslyn. Isso inclui suporte às funcionalidades do C# 7.1, tais como expressões padrão, nomes de tupla inferidos e Pattern-Matching com genéricos. Para usar C# 7.1 em seu projeto, adicione a seguinte propriedade em seu arquivo de projeto e, em seguida, recarregue a solução:

<LangVersion>latest</LangVersion>

Para obter informações sobre o status dos recursos do C# 7.1, consulte o repositório Roslyn GitHub.

Outras atualizações de documentação para 2.0

Orientações em matéria de migração

Para obter orientação sobre como migrar aplicativos ASP.NET Core 1.x para o ASP.NET Core 2.0, consulte os seguintes recursos:

Informação Adicional

Para obter a lista completa de alterações, consulte as Notas de versão do ASP.NET Core 2.0.

Para acompanhar o progresso e os planos da equipa de desenvolvimento do ASP.NET Core, assista à ASP.NET Community Standup.