Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo destaca as mudanças mais significativas no ASP.NET Core 2.1, com links para documentação relevante.
SignalR
SignalR foi reescrito para ASP.NET Core 2.1.
ASP.NET Core SignalR inclui uma série de melhorias:
- Um modelo de expansão simplificado.
- Um novo cliente JavaScript sem dependência do jQuery.
- Um novo protocolo binário compacto baseado no MessagePack.
- Suporte para protocolos personalizados.
- Um novo modelo de resposta de streaming.
- Suporte para clientes baseados em WebSockets nus.
Para obter mais informações, consulte ASP.NET Core SignalR.
Razor Bibliotecas de classes
ASP.NET Core 2.1 torna mais fácil criar e incluir Razora interface do usuário baseada em uma biblioteca e compartilhá-la em vários projetos. O novo Razor SDK permite criar Razor arquivos em um projeto de biblioteca de classes que pode ser empacotado em um pacote NuGet. Visualizações e páginas em bibliotecas são descobertas automaticamente e podem ser substituídas pelo aplicativo. Integrando Razor a compilação na compilação:
- O tempo de inicialização do aplicativo é significativamente mais rápido.
- Atualizações rápidas para Razor exibições e páginas em tempo de execução ainda estão disponíveis como parte de um fluxo de trabalho de desenvolvimento iterativo.
Para obter mais informações, consulte Interface do usuário reutilizável Razor em bibliotecas de classe com ASP.NET Core.
Identity Biblioteca da interface do usuário & andaimes
ASP.NET Core 2.1 fornece ASP.NET Core Identity como uma biblioteca de Razor classes. Os aplicativos que incluem Identity podem aplicar o novo Identity scaffolder para adicionar seletivamente o código-fonte contido na biblioteca de IdentityRazor classes (RCL). Talvez você queira gerar o código-fonte para poder modificar o código e alterar o comportamento. Por exemplo, você pode instruir o scaffolder a gerar o código usado no registro. O código gerado tem precedência sobre o mesmo código na Identity RCL.
Os aplicativos que não incluem autenticação podem aplicar o Identity scaffolder para adicionar o pacote RCL Identity . Você tem a opção de selecionar Identity o código a ser gerado.
Para obter mais informações, consulte Andaime Identity em ASP.NET projetos principais.
HTTPS
Com o maior foco em segurança e privacidade, habilitar HTTPS para aplicativos Web é importante. A aplicação do HTTPS está se tornando cada vez mais rigorosa na web. Sites que não usam HTTPS são considerados inseguros. Os navegadores (Chromium, Mozilla) estão começando a impor que os recursos da Web devem ser usados a partir de um contexto seguro. O GDPR exige o uso de HTTPS para proteger a privacidade do usuário. Embora o uso de HTTPS na produção seja fundamental, o uso de HTTPS no desenvolvimento pode ajudar a evitar problemas na implantação (por exemplo, links inseguros). ASP.NET Core 2.1 inclui uma série de melhorias que facilitam o uso do HTTPS no desenvolvimento e a configuração do HTTPS na produção. Para obter mais informações, consulte Impor HTTPS.
Ativado por predefinição
Para facilitar o desenvolvimento seguro de sites, o HTTPS agora está habilitado por padrão. A partir da versão 2.1, Kestrel escuta quando um certificado de https://localhost:5001 desenvolvimento local está presente. Um certificado de desenvolvimento é criado:
- Como parte da experiência de primeira execução do SDK do .NET Core, quando você usa o SDK pela primeira vez.
- Manualmente usando a nova
dev-certsferramenta.
Execute dotnet dev-certs https --trust para confiar no certificado.
Redirecionamento e aplicação de HTTPS
Os aplicativos Web normalmente precisam ouvir em HTTP e HTTPS, mas redirecionam todo o tráfego HTTP para HTTPS. Na versão 2.1, foi introduzido middleware de redirecionamento HTTPS especializado que redireciona de forma inteligente com base na presença de portas de configuração ou de servidor acoplado.
O uso de HTTPS pode ser ainda mais imposto usando HTTP Strict Transport Security Protocol (HSTS). O HSTS instrui os navegadores a sempre acessar o site via HTTPS. ASP.NET Core 2.1 adiciona middleware HSTS que suporta opções para idade máxima, subdomínios e a lista de pré-carregamento HSTS.
Configuração para produção
Na produção, o HTTPS deve ser explicitamente configurado. Na versão 2.1, o esquema de configuração padrão para configurar HTTPS for Kestrel foi adicionado. Os aplicativos podem ser configurados para usar:
- Vários pontos de extremidade, incluindo as URLs. Para obter mais informações, consulte Kestrel Implementação do servidor Web: Configuração do ponto final.
- O certificado a ser usado para HTTPS de um arquivo no disco ou de um armazenamento de certificados.
GDPR
ASP.NET Core fornece APIs e modelos para ajudar a atender a alguns dos requisitos do Regulamento Geral de Proteção de Dados (GDPR) da UE . Para obter mais informações, consulte Suporte ao GDPR no ASP.NET Core. Um aplicativo de exemplo mostra como usar e permite testar a maioria dos pontos de extensão e APIs do GDPR adicionados aos modelos do ASP.NET Core 2.1.
Testes de integração
É introduzido um novo pacote que simplifica a criação e execução de testes. O pacote Microsoft.AspNetCore.Mvc.Testing lida com as seguintes tarefas:
- Copia o arquivo de dependência (*.deps) do aplicativo testado para a pasta bin do projeto de teste.
- Define a raiz do conteúdo para a raiz do projeto do aplicativo testado para que arquivos estáticos e páginas/exibições sejam encontrados quando os testes forem executados.
- Fornece a WebApplicationFactory<TEntryPoint> classe para simplificar a inicialização do aplicativo testado com TestServero .
O teste a seguir usa xUnit para verificar se a página Índice é carregada com um código de status de sucesso e com o cabeçalho Content-Type correto:
public class BasicTests
: IClassFixture<WebApplicationFactory<RazorPagesProject.Startup>>
{
private readonly HttpClient _client;
public BasicTests(WebApplicationFactory<RazorPagesProject.Startup> factory)
{
_client = factory.CreateClient();
}
[Fact]
public async Task GetHomePage()
{
// Act
var response = await _client.GetAsync("/");
// Assert
response.EnsureSuccessStatusCode(); // Status Code 200-299
Assert.Equal("text/html; charset=utf-8",
response.Content.Headers.ContentType.ToString());
}
}
Para obter mais informações, consulte o tópico Testes de integração .
[ApiController], ActionResult<T>
ASP.NET Core 2.1 adiciona novas convenções de programação que facilitam a criação de APIs da Web limpas e descritivas.
ActionResult<T> é um novo tipo adicionado para permitir que um aplicativo retorne um tipo de resposta ou qualquer outro resultado de ação (semelhante a IActionResult), enquanto ainda indica o tipo de resposta. O [ApiController] atributo também foi adicionado como a maneira de aceitar convenções e comportamentos específicos da API da Web.
Para obter mais informações, consulte Criar APIs da Web com o ASP.NET Core.
IHttpClientFactory
ASP.NET Core 2.1 inclui um novo IHttpClientFactory serviço que facilita a configuração e o consumo de instâncias de HttpClient aplicativos.
HttpClient já tem o conceito de delegar manipuladores que podem ser vinculados para solicitações HTTP de saída. A fábrica:
- Torna o registro de instâncias de
HttpClientcada cliente nomeado mais intuitivo. - Implementa um manipulador Polly que permite que as políticas Polly sejam usadas para Retry, CircuitBreakers, etc.
Para obter mais informações, consulte Iniciar solicitações HTTP.
Kestrel configuração de transporte libuv
Com o lançamento do ASP.NET Core 2.1, Kestrelo transporte padrão do não é mais baseado no Libuv, mas sim em soquetes gerenciados. Para obter mais informações, consulte Kestrel Implementação do servidor Web: Configuração de transporte do Libuv.
Construtor de host genérico
O Construtor de Host Genérico (HostBuilder) foi introduzido. Este construtor pode ser usado para aplicativos que não processam solicitações HTTP (mensagens, tarefas em segundo plano, etc.).
Para obter mais informações, consulte .NET Generic Host.
Modelos de SPA atualizados
Os modelos de aplicativo de página única para Angular e React são atualizados para usar as estruturas de projeto padrão e sistemas de compilação para cada estrutura.
O modelo Angular é baseado na CLI Angular e o modelo React é baseado em create-react-app.
Para obter mais informações, consulte:
Razor Páginas de pesquisa de Razor ativos
Em 2.1, Razor as Páginas pesquisam Razor ativos (como layouts e parciais) nos seguintes diretórios na ordem listada:
- Pasta Páginas atuais.
- /Páginas/Compartilhado/
- /Visualizações/Compartilhada/
Razor Páginas numa área
Razor Páginas agora áreas de suporte. Para ver um exemplo de áreas, crie um novo Razor aplicativo Web Páginas com contas de usuário individuais. Uma Razor aplicação Web Páginas com contas de utilizador individuais inclui /Areas/Identity/Pages.
Versão de compatibilidade MVC
O SetCompatibilityVersion método permite que um aplicativo opte ou desative alterações de comportamento potencialmente perturbadoras introduzidas no ASP.NET Core MVC 2.1 ou posterior.
Para obter mais informações, consulte Versão de compatibilidade do ASP.NET Core MVC.
Migrar da versão 2.0 para a 2.1
Consulte Migrar do ASP.NET Core 2.0 para o 2.1.
Alterações de grande impacto
Use os artigos em Alterações significativas no .NET para encontrar alterações significativas que podem ser aplicadas ao atualizar um aplicativo para uma versão mais recente do .NET.
Recursos adicionais
Para obter a lista completa de alterações, consulte as Notas de versão do ASP.NET Core 2.1.