• Microsoft Most Valuable Professional (MVP)
• Multi-Plataform Technical Audience
Contributor (MTAC)
• Mais de 15 anos de experiência na área de
Tecnologia
• Autor Técnico e Palestrante
• Um dos organizadores do Canal .NET e do
.NET São Paulo
Renato Groffe
h t t p s : / / m e d i u m . c o m / @ re n a t o . g rof f e /
Renato Groffe - Contatos
h t t p s : / / m e d i u m . c o m / @ re n a t o . g rof f e /
/renatogroffe /in/renatogroffe
/canaldotnet
/renatogroffe
/canaldotnet
/renatogroff
Agenda
• Dicas
• Exemplos práticos
ASP.NET Core – Visão Geral
• Atualmente na versão 2.1
• Aplicações Web mais leves e rápidas
• Multiplataforma (execução em
Windows, Linux e Mac)
• Suporte a Docker
Qual o objetivo das dicas a seguir
• Simplificar o desenvolvimento
• Escrever menos código
• Implementar soluções mais elegantes
• Empregar padrões de mercado
Suporte a JSON no SQL 2017
• Evitar a escrita de várias classes para retorno de
informações e operações de transformação de
dados
github.com/renatogroffe/Dapper-DotNetCore2.1
Organizando o código na classe Startup
• Extensões (Extension Methods) contribuem para
um código mais limpo, além de promover o reuso
github.com/renatogroffe/ASPNETCore2.1_JWT-Identity
Configurando a cultura
• Evitar problemas na conversão de dados que
podem acontecer com a mudança de ambientes
github.com/renatogroffe/Selenium-DotNetCore2.1-xUnit-VSCode
Documentando/Testes com Swagger
• Geração de um site documentando APIs com
pouquíssimo código, além de contar com
funcionalidades para testes
github.com/renatogroffe/ASPNETCore2.1_Swagger
Removendo valores nulos no retorno de APIs
• Diminuição do tamanho das respostas geradas
por APIs
github.com/renatogroffe/ASPNETCore2.1_Compressao-RemocaoNulls
Comprimindo a resposta no retorno de APIs
• Maior redução do tamanho das respostas geradas
por APIs (GZip, Brotli)
github.com/renatogroffe/ASPNETCore2.1_Compressao-RemocaoNulls
Mensageria
• Evitando processamentos demorados com o uso
de filas
github.com/renatogroffe/RabbitMQ-DotNetCore2.1
Simplificando validações com ApiController
• Novo atributo que integra o ASP.NET Core 2.1
• Associado a um Controller
• APIs com um código mais limpo
• Geração de erro automático do tipo 400 ao encontrar
problemas de validação
• Capacidade de inferir tipos complexos sem o uso de atributos
como [FromBody]
github.com/renatogroffe/RabbitMQ-DotNetCore2.1
Razor Class Libraries: reaproveitamento de elementos visuais
• Elementos de UI disponibilizados como biblioteca a ser
consumida por outros projetos
• Capacidade de encapsular Razor Pages, Views e Controllers
• Possibilidade de publicação como um pacote do NuGet
• Conteúdos de arquivos .cshtml podem ser customizados no
projetos que consomem uma biblioteca
github.com/renatogroffe/ASPNETCore2.1_RazorClassLibrary
IHttpClientFactory: centralizando o código de acesso a APIs REST
• Configuração de HttpClients de forma centralizada
• Acesso aos clients via injeção de dependências
• Typed clientes são a opção mais simples
github.com/renatogroffe/ASPNETCore2.1_IHttpClientFactory
medium.com/@renato.groffe/

10 dicas úteis para simplificar o desenvolvimento em ASP.NET Core - ASP.NET Core Night #2 - Outubro-2018

  • 2.
    • Microsoft MostValuable Professional (MVP) • Multi-Plataform Technical Audience Contributor (MTAC) • Mais de 15 anos de experiência na área de Tecnologia • Autor Técnico e Palestrante • Um dos organizadores do Canal .NET e do .NET São Paulo Renato Groffe h t t p s : / / m e d i u m . c o m / @ re n a t o . g rof f e /
  • 3.
    Renato Groffe -Contatos h t t p s : / / m e d i u m . c o m / @ re n a t o . g rof f e / /renatogroffe /in/renatogroffe /canaldotnet /renatogroffe /canaldotnet /renatogroff
  • 4.
  • 5.
    ASP.NET Core –Visão Geral • Atualmente na versão 2.1 • Aplicações Web mais leves e rápidas • Multiplataforma (execução em Windows, Linux e Mac) • Suporte a Docker
  • 6.
    Qual o objetivodas dicas a seguir • Simplificar o desenvolvimento • Escrever menos código • Implementar soluções mais elegantes • Empregar padrões de mercado
  • 7.
    Suporte a JSONno SQL 2017 • Evitar a escrita de várias classes para retorno de informações e operações de transformação de dados github.com/renatogroffe/Dapper-DotNetCore2.1
  • 8.
    Organizando o códigona classe Startup • Extensões (Extension Methods) contribuem para um código mais limpo, além de promover o reuso github.com/renatogroffe/ASPNETCore2.1_JWT-Identity
  • 9.
    Configurando a cultura •Evitar problemas na conversão de dados que podem acontecer com a mudança de ambientes github.com/renatogroffe/Selenium-DotNetCore2.1-xUnit-VSCode
  • 10.
    Documentando/Testes com Swagger •Geração de um site documentando APIs com pouquíssimo código, além de contar com funcionalidades para testes github.com/renatogroffe/ASPNETCore2.1_Swagger
  • 11.
    Removendo valores nulosno retorno de APIs • Diminuição do tamanho das respostas geradas por APIs github.com/renatogroffe/ASPNETCore2.1_Compressao-RemocaoNulls
  • 12.
    Comprimindo a respostano retorno de APIs • Maior redução do tamanho das respostas geradas por APIs (GZip, Brotli) github.com/renatogroffe/ASPNETCore2.1_Compressao-RemocaoNulls
  • 13.
    Mensageria • Evitando processamentosdemorados com o uso de filas github.com/renatogroffe/RabbitMQ-DotNetCore2.1
  • 14.
    Simplificando validações comApiController • Novo atributo que integra o ASP.NET Core 2.1 • Associado a um Controller • APIs com um código mais limpo • Geração de erro automático do tipo 400 ao encontrar problemas de validação • Capacidade de inferir tipos complexos sem o uso de atributos como [FromBody] github.com/renatogroffe/RabbitMQ-DotNetCore2.1
  • 15.
    Razor Class Libraries:reaproveitamento de elementos visuais • Elementos de UI disponibilizados como biblioteca a ser consumida por outros projetos • Capacidade de encapsular Razor Pages, Views e Controllers • Possibilidade de publicação como um pacote do NuGet • Conteúdos de arquivos .cshtml podem ser customizados no projetos que consomem uma biblioteca github.com/renatogroffe/ASPNETCore2.1_RazorClassLibrary
  • 16.
    IHttpClientFactory: centralizando ocódigo de acesso a APIs REST • Configuração de HttpClients de forma centralizada • Acesso aos clients via injeção de dependências • Typed clientes são a opção mais simples github.com/renatogroffe/ASPNETCore2.1_IHttpClientFactory
  • 18.