www.dotnetconf.net
.net core2.1
DOWNLOAD
HTTPS://AKA.MS/DOTNETCORE21
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
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
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)
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
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)
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
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
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]
SimplificandooretornodaapicomActionResult<T>
 Trata as ações da controladora da API
 Permite retornar um tipo derivado ou um tipo específico
Melhor controlecom httpclientusando
IHttpClientFactory
 Gerencia de melhor as múltiplas conexões de HttpClient
 Fábrica com options para criação de instâncias do HttpClient
 Configurações em um único só lugar
Named clients
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


Updated ASP.NET Core SPAtemplates
.NET
.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.
2.6MM
599K
97K
2.9MM
662K
216K
-
500,000
1,000,000
1,500,000
2,000,000
2,500,000
3,000,000
Plaintext JSON Fortunes (data access)
RUNTIME PERFORMANCE
.NET Core 2.0 .NET Core 2.1
Data sourced from tests in our labs on same hardware as TechEmpower
ASP.NET Core 2 com quase 7 milhões de
requests
ASP.NET Core 2.1 #dotnetconf

ASP.NET Core 2.1 #dotnetconf

  • 1.
  • 2.
  • 3.
    ASP.NET CORESIGNALR  Afeature 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çãodo 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
  • 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 deHTTPS(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 paraa 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]
  • 14.
    SimplificandooretornodaapicomActionResult<T>  Trata asações da controladora da API  Permite retornar um tipo derivado ou um tipo específico
  • 15.
    Melhor controlecom httpclientusando IHttpClientFactory Gerencia de melhor as múltiplas conexões de HttpClient  Fábrica com options para criação de instâncias do HttpClient  Configurações em um único só lugar
  • 17.
  • 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
  • 19.
  • 20.
    .NET Core2.1 isFast “Usingthe 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.
  • 21.
    2.6MM 599K 97K 2.9MM 662K 216K - 500,000 1,000,000 1,500,000 2,000,000 2,500,000 3,000,000 Plaintext JSON Fortunes(data access) RUNTIME PERFORMANCE .NET Core 2.0 .NET Core 2.1 Data sourced from tests in our labs on same hardware as TechEmpower
  • 22.
    ASP.NET Core 2com quase 7 milhões de requests

Notas do Editor

  • #12  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)
  • #22 21
  • #23 22
  • #24 23