ASP.NET Core apresentado no dotnetconf. Apresentado o 2.1 que é o runtime de produção atual, o runtime 2.2 que no momento deste upload está em preview, foi falado na track de overview.
3. ASP.NET CORESIGNALR
A feature mais aguardada do ASP.NET Core até o momento
Reescrito e modelo mais simplificado
Novo cliente JavaScript que não depende do jQuery
Não é compatível com o ASP.NET SignalR
Gerencia conexões automaticamente
Funciona perfeitamente com o novo Azure SignalR Service
4. Azure SignalRservice
Implementação do SignalR de maneira mais fácil.
O host é fornecido no Azure
Cada serviço suporta 1000 conexões de clientes
https://aka.ms/signalr_service
5.
6.
7.
8. Razor class libraries
UI como biblioteca
Páginas, Models e Controllers podem ser encapsulados
Tem precedência sobre views, partial views ou razor pages
São referenciados por Nuget ou via Project Reference
Não é possível acessar ou comunicar com o conteúdo fora
do RCL (somente dentro do contexto)
9. Identity UI library& scaffolding
ASP.NET CORE Identity fornecido como RCL
Aplicações que usam Identity podem fazer uso do Scaffold
Aplicações que não têm autenticação podem usar Scaffold
Após uso do Scaffold obtém-se um TXT com infos para
finalização do procedimento
10. Forçando ouso de HTTPS(HSTS)
Forma de forçar o uso de HTTPS
Implementa HSTS
Para fazer redirecionamento de HTTP para HTTPS
Não use RequireHttpsAttribute (pode não obedecer ou responder a instrução)
Use UseHttpsRedirection
Caso esteja usando useHsts, a instrução precisa vir antes do
UseHttpsRedirection
Atenção para não usá-lo em desenvolvimento. Por padrão, o UseHsts
exclui o endereço de loopback local (127.0.0.1, localhost, [::1] "do IPv6)
11. GDPR
Suporte para a aplicação da política de privacidade
e uso de cookies
Cookies com consentimento do usuário
Podem ser setados cookies essenciais que passam
direto pelo filtro.
No template Identity existe uma page manipuladora
12. Testes deintegraçãoem memória
Garantia de funcionamento ponta a ponta
Junção do framework de testes de unidade + TestHost +
TestServer (testes em memória)
É preciso implementar WebApplicationFactory <TEntryPoint>.
TEntryPoint é a classe de ponto de partida (geralmente Startup)
WebHost é customizável
Precisa implementar CustomWebApplicationFactory
Classes de teste implementam a interface IClassFixture
13. APIs maiscleans comApiController
Notação que atribui uma classe aos comportamentos de
uma APIController
Geralmente acoplado ao ControllerBase
Actions são inacessíveis pelas rotas convencionais (useMVC)
Manipula erros de badrequest (retorna 400)
Infere tipos complexos sem o uso de [FromBody]
18. Kestrel via socket
O transporte padrão não é mais baseado no Libuv, mas em
Manage Sockets.
Atenção 1: ASP.NET Core 2.0 que fazem upgrade para o 2.1 e
que chamam o WebHostBuilderLibuvExtensions.UseLibuv:
Microsoft.AspNetCore.Server.Kestrel
Microsoft.AspNetCore.App
Atenção 2: ASP.NET Core 2.1 ou posterior que usam o
metapacote Microsoft.AspNetCore.App e requerem o uso de
Libuv
Solução
20. .NET Core2.1 isFast
“Using the same-size server, we were able to go from 1,000 requests per
second per node with Node.js to 20,000 requests per second with .NET Core.“
— Raygun
https://www.microsoft.com/net/customers
Data sourced from official tests available at TechEmpower Round 14.
Esta é uma forma de como exigir para que em todas as solicitações seja usado o protocolo https.
Ou seja, mesmo que o http seja chamado, o browser irá direcionar para o canal https.
Cuidado ao usar o RequireHttpsAttribute para fazer redirecionamento de http para https. Podem não entender ou obedecer esta instrução.
De toda forma, o recomendável é não escutar na HTTP, fechar a conexão retornando 400 (bad request) e não atender a solução.
No ASP.NET Core, agora, você vai usar UseHttpsRedirection para fazer o redirecionamento de HTTP para HTTPS. Somente atentar para caso, você esteja chamando UseHsts na aplicação (Startup.cs), essa instrução precisa vir antes do UseHttpsRedirection.
O HSTS é um aprimoramento de segurança direcionado pela OWASP e que o ASP.NET Core 2.1 implementa.
Uma vez tratada a conexão com o server e direcionado ao https, o navegador irá impedir que qualquer comunicação seja realizada via HTTP.
Ou seja, ele força a utilização do HTTPS, impedindo que sites sejam acessados usando o protocolo HTTP ou que parte do código de um site que está usando HTTPS seja executada em servidores usando o HTTP.
Somente atenção para não usá-lo em desenvolvimento. Por padrão, o UseHsts exclui o endereço de loopback local (127.0.0.1, localhost, [::1] "do IPv6)