SlideShare uma empresa Scribd logo
.NET 6 Uma nova forma de
construir Apis
Júnior Porfirio
Arquiteto Software - CI&T
COMPILERS LANGUAGES
RUNTIME COMPONENTS
COMMON BASE LIBARIES/APIs
INFRASTRUCTURE
.NET 6
TOOLS
Visual Studio Code
CLI
Visual Studio
Visual Studio for Mac
WEB MOBILE GAMING IoT AI
ASP.NET
Blazor
.NET MAUI
Xamarin
Unity ARM32
ARM64
ML.NET
.NET for
Apache Spark
DESKTOP
.NET MAUI
WPF
WinForms
CLOUD
Azure
.NET – Plataforma unificada
ECOSYSTEM
NuGet
GitHub
Components,
tools, library
vendors
.NET 6
Sources: insights.stackoverflow.com/survey/2019#most-loved-dreaded-and-wanted;
insights.stackoverflow.com/survey/2020#most-loved-dreaded-and-wanted;
insights.stackoverflow.com/survey/2021#section-most-loved-dreaded-and-wanted-other-frameworks-and-libraries;
www.cncf.io/blog/2021/08/02/update-on-cncf-and-open-source-project-velocity-2020/
Highest velocity OSS project since 2017
github.com/dotnet
Most Loved Framework (2019, 20,
21)
.NET Core / .NET 5
.NET developers 
In Visual Studio family
5.4M #1 Top 30
.NET
>6.9K
Community
contributors
>21K
Community
contributions
.NET 6 Performance
https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=plaintext
>10X faster than Node.js
ASP.NET Core web framework
https://www.techempower.com/benchmarks/#section=test&runid=3fc99e53-f60d-428e-9937-e809880d3da2&hw=ph&test=fortune&a=2&o=e
Sources
:
+92%
Entity Framework Core Performance
RELEASED
.NET 6
●Bibliotecas de base comum e SDK unificados
●Desempenho líder da indústria
●Desenvolvimento simplificado, mais fácil de começar
●Novo C# 10, F# 6 releases
●Apple Silicon (Arm64) support
●Long-Term Support Release
get.dot.net/6
Visual Studio 2022
Desenvolvimento Moderno
Crie aplicativos modernos e inovadores usando .NET 6, GitHub e
Azure com ferramentas integradas
Produtividade pessoal e para times
Live Share, Hot reload em todos lugares, Web live preview, IntelliCode,
ferramentas de teste e debugging melhoradas
Escale para projetos de qualquer tamanho
Uma UI moderna e otimizada numa arquitetura 64 bits para suportar os
maiores e mais complexos workflows e bases de código
VisualStudio.com/download
RELEASED
RELEASED
.NET Upgrade Assistant
●Reduza o tempo e a dificuldade de modernizar
bases de código .NET mais antigas
●Experiência guiada passo a passo
●Vários tipos de projeto suportados
●C# & VB.NET linguagens
●Suporta .NET 6
aka.ms/dotnet-upgrade-assistant
RELEASED
+40K
preview
downloads
Mais modelos, SDK unificado
Hot reload via dotnet watch
Suporte nativo para máquinas Arm64
Único arquivo EXEs para todas plataformas
.NET CLI
dotnet new <anything>
dotnet watch run
dotnet build –a arm64
Hot reload
Acelera seu desenvolvimento, chega de F5
Menos tempo reiniciando, mais tempo codificando
Disponível no CLI & Visual Studio 2022
Todos os tipos de projetos, e todas as versões .NET
4.6+
Melhor com .NET 6
Simplificando seu código C# 10
global using Model; // Global usings aplicado globalmente no projeto
// using System; // Implicit usings para vários tipos de projeto
namespace Model; // File-scope namespace, sem indentação
// Records podem ser structs ou classes
public record struct Order(Customer Customer, string Kind, int Items);
public record class Customer(string Name, string Address);
// Lambdas possuí tipos implícitos
var parse = (string s) => int.Parse(s); // Func<string, int>
APIs leves, de arquivo único e nativas da nuvem
Sem Cerimônias
Fácil para iniciar
Sem controllers
Ideal para aplicações em microservices / Faas
Minimal APIs
var app = WebApplication.Create(args);
 
app.MapGet("/", () => "Hello World!");
 
app.Run();
Mínimo código para mínimo apps
Sem Filters do MVC
Não tem suporte API Versioning.
Sem validações IModelValidator por padrão
Sem suporte a binding Forms IFormFile
Sem suporte a OData
Diferenças do Minimal APIs para MVC
var app = WebApplication.Create(args);
 
app.MapGet("/", () => "Hello World!");
 
app.Run();
Simples como deve ser !
Suporte a Data Annotations
Suporte a FluentValidation
MinimalApis.Validators
var app = WebApplication.Create(args);
 
app.MapGet("/customer", (Customer customer) =>
Results.Created("", customer)).WithValidator<Customer>();
 
app.Run();
record Customer(
[property:Required] string Name,
[property:Required] string Email
);
https://github.com/juniorporfirio/MinimalApis.Validators
Resolve esse problema nos testes unitários
Suporta todos os StatusCode
Versão preview
Fácil de implementar, ex: Results.Extensions.Ok(object)
Pacote do Damian Edwards
Agradecimento especial por resolver rápido Issues.
MinimalApis.Extensions
internal sealed class OkObjectResult : ObjectResult
{
public OkObjectResult(object? value)
: base(value, StatusCodes.Status200OK)
{
}
}
● https://github.com/dotnet/aspnetcore/blob/main/src/Http/Http.Results/src/OkObjectResult.cs
● https://github.com/DamianEdwards/MinimalApis.Extensions
Minimal APIs Simples
=
Demo –
Minimal APIs
Minimal APIs, C# 10
Referências
var app = WebApplication.Create(args);
 
app.MapGet("documentacao", () => "https://minimal-apis.github.io/");
app.MapGet("codigoprojeto", () => "https://github.com/juniorporfirio/DevPira21-NET6-MInimalAPIs");
app.Run();
Dúvidas?
Este é o momento
Obrigado
Até a próxima !

Mais conteúdo relacionado

Mais procurados

Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
Laís Lima
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
saido_embalo1980
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
Letticia Nicoli
 
Xamarin em 7 minutos
Xamarin em 7 minutosXamarin em 7 minutos
Xamarin em 7 minutos
akamud
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
Gregorio Melo
 
Devops CI/CD: Obtendo qualidade de vida para o time de desenvolvimento
Devops CI/CD: Obtendo qualidade de vida para o time de desenvolvimentoDevops CI/CD: Obtendo qualidade de vida para o time de desenvolvimento
Devops CI/CD: Obtendo qualidade de vida para o time de desenvolvimento
Thiago Ferreira
 
Unit Test JavaScript
Unit Test JavaScriptUnit Test JavaScript
Unit Test JavaScript
Dan Vitoriano
 
Escalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLIDEscalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLID
Ruben Marcus Luz Paschoarelli
 
Testes com xUnit + Coding Dojo
Testes com xUnit + Coding DojoTestes com xUnit + Coding Dojo
Testes com xUnit + Coding Dojo
Letticia Nicoli
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem
Fernando Henriques
 
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
MVP ShowCast
 
Introdução ao Github actions - TDC Connections
Introdução ao Github actions - TDC ConnectionsIntrodução ao Github actions - TDC Connections
Introdução ao Github actions - TDC Connections
Guillaume Falourd
 
Comparando as Hypes - React & Vue
Comparando as Hypes - React & VueComparando as Hypes - React & Vue
Comparando as Hypes - React & Vue
Herbert Henrique
 
TDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataforma
TDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataformaTDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataforma
TDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataforma
tdc-globalcode
 
Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021
Erik Cruz
 
Performance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsPerformance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.js
Waldyr Felix
 
O novo Visual Studio 2012
O novo Visual Studio 2012O novo Visual Studio 2012
O novo Visual Studio 2012
Rodrigo Kono
 
O Futuro do ASP.NET
O Futuro do ASP.NETO Futuro do ASP.NET
O Futuro do ASP.NET
Eduardo Pires
 
ASP.NET Core com Linux, Docker e Azure
ASP.NET Core com Linux, Docker e AzureASP.NET Core com Linux, Docker e Azure
ASP.NET Core com Linux, Docker e Azure
Giovanni Bassi
 
Machine Learning para devs com ML.NET
Machine Learning para devs com ML.NETMachine Learning para devs com ML.NET
Machine Learning para devs com ML.NET
Letticia Nicoli
 

Mais procurados (20)

Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
Xamarin em 7 minutos
Xamarin em 7 minutosXamarin em 7 minutos
Xamarin em 7 minutos
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
Devops CI/CD: Obtendo qualidade de vida para o time de desenvolvimento
Devops CI/CD: Obtendo qualidade de vida para o time de desenvolvimentoDevops CI/CD: Obtendo qualidade de vida para o time de desenvolvimento
Devops CI/CD: Obtendo qualidade de vida para o time de desenvolvimento
 
Unit Test JavaScript
Unit Test JavaScriptUnit Test JavaScript
Unit Test JavaScript
 
Escalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLIDEscalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLID
 
Testes com xUnit + Coding Dojo
Testes com xUnit + Coding DojoTestes com xUnit + Coding Dojo
Testes com xUnit + Coding Dojo
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem
 
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
Aplicações e serviços Web interoperáveis com o padrão Cross-Origin Resource S...
 
Introdução ao Github actions - TDC Connections
Introdução ao Github actions - TDC ConnectionsIntrodução ao Github actions - TDC Connections
Introdução ao Github actions - TDC Connections
 
Comparando as Hypes - React & Vue
Comparando as Hypes - React & VueComparando as Hypes - React & Vue
Comparando as Hypes - React & Vue
 
TDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataforma
TDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataformaTDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataforma
TDC2016POA | Trilha .NET - O novo ASP.NET Core 1.0 multiplataforma
 
Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021
 
Performance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsPerformance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.js
 
O novo Visual Studio 2012
O novo Visual Studio 2012O novo Visual Studio 2012
O novo Visual Studio 2012
 
O Futuro do ASP.NET
O Futuro do ASP.NETO Futuro do ASP.NET
O Futuro do ASP.NET
 
ASP.NET Core com Linux, Docker e Azure
ASP.NET Core com Linux, Docker e AzureASP.NET Core com Linux, Docker e Azure
ASP.NET Core com Linux, Docker e Azure
 
Machine Learning para devs com ML.NET
Machine Learning para devs com ML.NETMachine Learning para devs com ML.NET
Machine Learning para devs com ML.NET
 

Semelhante a DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs

.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais
akamud
 
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataformaTDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
Rogério Moraes de Carvalho
 
Cebraspe 2016: .NET Core e ASP.NET Core
Cebraspe 2016: .NET Core e ASP.NET CoreCebraspe 2016: .NET Core e ASP.NET Core
Cebraspe 2016: .NET Core e ASP.NET Core
Rogério Moraes de Carvalho
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual Basic
Ricardo Guerra Freitas
 
Um novo .NET multiplataforma: ASP.NET Core, .NET Core e Entity Framework Core
Um novo .NET multiplataforma:ASP.NET Core, .NET Core e Entity Framework CoreUm novo .NET multiplataforma:ASP.NET Core, .NET Core e Entity Framework Core
Um novo .NET multiplataforma: ASP.NET Core, .NET Core e Entity Framework Core
Rogério Moraes de Carvalho
 
dotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
dotnetConf 2016 Goiânia: .NET Core | ASP.NET CoredotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
dotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
Rogério Moraes de Carvalho
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente Mainframe
Alessandro Binhara
 
1º FasS2B 2010
1º FasS2B 20101º FasS2B 2010
1º FasS2B 2010
Tadeu Matos
 
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Renato Groff
 
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Renato Groff
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
Giovanni Bassi
 
O Futuro do ASP.NET (vNext)
O Futuro do ASP.NET (vNext)O Futuro do ASP.NET (vNext)
O Futuro do ASP.NET (vNext)
Fabrício Lopes Sanchez
 
Microsoft .NET Framework
Microsoft .NET FrameworkMicrosoft .NET Framework
Microsoft .NET Framework
Fernando Cordeiro
 
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
Renato Groff
 
.NET Open Source
.NET Open Source.NET Open Source
.NET Open Source
Pedro Alves Jr.
 
DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - Introdução
Lorival Smolski Chapuis
 
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile ServicesConstruindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
William S. Rodriguez
 
Desenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual Studio
Geovani Ferreira Gonçalves
 
Introdução C#
Introdução C#Introdução C#
Introdução C#
Luis Fernando Marques
 
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
Renato Groff
 

Semelhante a DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs (20)

.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais.NET 2015, ASP.NET 5, C# 6 e tudo mais
.NET 2015, ASP.NET 5, C# 6 e tudo mais
 
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataformaTDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
TDC 2016 POA: O novo ASP.NET Core 1.0 multiplataforma
 
Cebraspe 2016: .NET Core e ASP.NET Core
Cebraspe 2016: .NET Core e ASP.NET CoreCebraspe 2016: .NET Core e ASP.NET Core
Cebraspe 2016: .NET Core e ASP.NET Core
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual Basic
 
Um novo .NET multiplataforma: ASP.NET Core, .NET Core e Entity Framework Core
Um novo .NET multiplataforma:ASP.NET Core, .NET Core e Entity Framework CoreUm novo .NET multiplataforma:ASP.NET Core, .NET Core e Entity Framework Core
Um novo .NET multiplataforma: ASP.NET Core, .NET Core e Entity Framework Core
 
dotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
dotnetConf 2016 Goiânia: .NET Core | ASP.NET CoredotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
dotnetConf 2016 Goiânia: .NET Core | ASP.NET Core
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente Mainframe
 
1º FasS2B 2010
1º FasS2B 20101º FasS2B 2010
1º FasS2B 2010
 
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
 
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
O Futuro do ASP.NET (vNext)
O Futuro do ASP.NET (vNext)O Futuro do ASP.NET (vNext)
O Futuro do ASP.NET (vNext)
 
Microsoft .NET Framework
Microsoft .NET FrameworkMicrosoft .NET Framework
Microsoft .NET Framework
 
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
 
.NET Open Source
.NET Open Source.NET Open Source
.NET Open Source
 
DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - Introdução
 
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile ServicesConstruindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
Construindo Aplicativos móveis conectados com Xamarin e Azure Mobile Services
 
Desenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual Studio
 
Introdução C#
Introdução C#Introdução C#
Introdução C#
 
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
ASP.NET Core e Linux: Explorando novas fronteiras - Araras Dev - Julho/2017
 

Último

AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL EMPREENDEDORISMO CORPORATIVO UNICES...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL EMPREENDEDORISMO CORPORATIVO UNICES...AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL EMPREENDEDORISMO CORPORATIVO UNICES...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL EMPREENDEDORISMO CORPORATIVO UNICES...
Consultoria Acadêmica
 
Segurança nos trabalhos em altura, normas SST
Segurança nos trabalhos em altura, normas SSTSegurança nos trabalhos em altura, normas SST
Segurança nos trabalhos em altura, normas SST
ClaudioArez
 
ÁREAS DE ATUAÇÃO DO ENGENHEIRO CIVIL.pdf
ÁREAS DE ATUAÇÃO DO ENGENHEIRO CIVIL.pdfÁREAS DE ATUAÇÃO DO ENGENHEIRO CIVIL.pdf
ÁREAS DE ATUAÇÃO DO ENGENHEIRO CIVIL.pdf
RoemirPeres
 
SFE SSO PROC 03 Bloqueio e sinalização de energias perigosas 1(Comentado).docx
SFE SSO PROC 03 Bloqueio e sinalização de energias perigosas 1(Comentado).docxSFE SSO PROC 03 Bloqueio e sinalização de energias perigosas 1(Comentado).docx
SFE SSO PROC 03 Bloqueio e sinalização de energias perigosas 1(Comentado).docx
bentosst
 
Dimensionamento de eixo. estudo de caso.pdf
Dimensionamento de eixo. estudo de caso.pdfDimensionamento de eixo. estudo de caso.pdf
Dimensionamento de eixo. estudo de caso.pdf
RodrigoQuintilianode1
 
Simbologia e Terminologia de Instrumentação da Norma ISA 5.1 - Simbologia_ISA...
Simbologia e Terminologia de Instrumentação da Norma ISA 5.1 - Simbologia_ISA...Simbologia e Terminologia de Instrumentação da Norma ISA 5.1 - Simbologia_ISA...
Simbologia e Terminologia de Instrumentação da Norma ISA 5.1 - Simbologia_ISA...
pereiramarcossantos0
 
Apresentação concreto autodesempenho 123
Apresentação concreto autodesempenho 123Apresentação concreto autodesempenho 123
Apresentação concreto autodesempenho 123
GabrielGarcia356832
 
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL COMUNICAÇÃO ASSERTIVA E INTERPESSOA...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL COMUNICAÇÃO ASSERTIVA E INTERPESSOA...AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL COMUNICAÇÃO ASSERTIVA E INTERPESSOA...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL COMUNICAÇÃO ASSERTIVA E INTERPESSOA...
Consultoria Acadêmica
 
Apostila SAP.PM para PCM, para indústria e depósitos
Apostila SAP.PM para PCM, para indústria e  depósitosApostila SAP.PM para PCM, para indústria e  depósitos
Apostila SAP.PM para PCM, para indústria e depósitos
Sandro Marques Solidario
 
AULA LEI DOS SENOS OU COSSENOS - parte final (3) (1).pdf
AULA LEI DOS SENOS OU COSSENOS - parte final (3) (1).pdfAULA LEI DOS SENOS OU COSSENOS - parte final (3) (1).pdf
AULA LEI DOS SENOS OU COSSENOS - parte final (3) (1).pdf
MaxwellBentodeOlivei1
 
Incêndios em correia transportadora.pptx
Incêndios em correia transportadora.pptxIncêndios em correia transportadora.pptx
Incêndios em correia transportadora.pptx
RafaelDantas32562
 

Último (11)

AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL EMPREENDEDORISMO CORPORATIVO UNICES...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL EMPREENDEDORISMO CORPORATIVO UNICES...AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL EMPREENDEDORISMO CORPORATIVO UNICES...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL EMPREENDEDORISMO CORPORATIVO UNICES...
 
Segurança nos trabalhos em altura, normas SST
Segurança nos trabalhos em altura, normas SSTSegurança nos trabalhos em altura, normas SST
Segurança nos trabalhos em altura, normas SST
 
ÁREAS DE ATUAÇÃO DO ENGENHEIRO CIVIL.pdf
ÁREAS DE ATUAÇÃO DO ENGENHEIRO CIVIL.pdfÁREAS DE ATUAÇÃO DO ENGENHEIRO CIVIL.pdf
ÁREAS DE ATUAÇÃO DO ENGENHEIRO CIVIL.pdf
 
SFE SSO PROC 03 Bloqueio e sinalização de energias perigosas 1(Comentado).docx
SFE SSO PROC 03 Bloqueio e sinalização de energias perigosas 1(Comentado).docxSFE SSO PROC 03 Bloqueio e sinalização de energias perigosas 1(Comentado).docx
SFE SSO PROC 03 Bloqueio e sinalização de energias perigosas 1(Comentado).docx
 
Dimensionamento de eixo. estudo de caso.pdf
Dimensionamento de eixo. estudo de caso.pdfDimensionamento de eixo. estudo de caso.pdf
Dimensionamento de eixo. estudo de caso.pdf
 
Simbologia e Terminologia de Instrumentação da Norma ISA 5.1 - Simbologia_ISA...
Simbologia e Terminologia de Instrumentação da Norma ISA 5.1 - Simbologia_ISA...Simbologia e Terminologia de Instrumentação da Norma ISA 5.1 - Simbologia_ISA...
Simbologia e Terminologia de Instrumentação da Norma ISA 5.1 - Simbologia_ISA...
 
Apresentação concreto autodesempenho 123
Apresentação concreto autodesempenho 123Apresentação concreto autodesempenho 123
Apresentação concreto autodesempenho 123
 
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL COMUNICAÇÃO ASSERTIVA E INTERPESSOA...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL COMUNICAÇÃO ASSERTIVA E INTERPESSOA...AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL COMUNICAÇÃO ASSERTIVA E INTERPESSOA...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL COMUNICAÇÃO ASSERTIVA E INTERPESSOA...
 
Apostila SAP.PM para PCM, para indústria e depósitos
Apostila SAP.PM para PCM, para indústria e  depósitosApostila SAP.PM para PCM, para indústria e  depósitos
Apostila SAP.PM para PCM, para indústria e depósitos
 
AULA LEI DOS SENOS OU COSSENOS - parte final (3) (1).pdf
AULA LEI DOS SENOS OU COSSENOS - parte final (3) (1).pdfAULA LEI DOS SENOS OU COSSENOS - parte final (3) (1).pdf
AULA LEI DOS SENOS OU COSSENOS - parte final (3) (1).pdf
 
Incêndios em correia transportadora.pptx
Incêndios em correia transportadora.pptxIncêndios em correia transportadora.pptx
Incêndios em correia transportadora.pptx
 

DevPira Festival 21 - .NET6 Uma nova forma de construir apis MinimalAPIs

  • 1. .NET 6 Uma nova forma de construir Apis Júnior Porfirio Arquiteto Software - CI&T
  • 2. COMPILERS LANGUAGES RUNTIME COMPONENTS COMMON BASE LIBARIES/APIs INFRASTRUCTURE .NET 6 TOOLS Visual Studio Code CLI Visual Studio Visual Studio for Mac WEB MOBILE GAMING IoT AI ASP.NET Blazor .NET MAUI Xamarin Unity ARM32 ARM64 ML.NET .NET for Apache Spark DESKTOP .NET MAUI WPF WinForms CLOUD Azure .NET – Plataforma unificada ECOSYSTEM NuGet GitHub Components, tools, library vendors
  • 4. .NET 6 Performance https://www.techempower.com/benchmarks/#section=data-r20&hw=ph&test=plaintext >10X faster than Node.js ASP.NET Core web framework https://www.techempower.com/benchmarks/#section=test&runid=3fc99e53-f60d-428e-9937-e809880d3da2&hw=ph&test=fortune&a=2&o=e Sources : +92% Entity Framework Core Performance
  • 5. RELEASED .NET 6 ●Bibliotecas de base comum e SDK unificados ●Desempenho líder da indústria ●Desenvolvimento simplificado, mais fácil de começar ●Novo C# 10, F# 6 releases ●Apple Silicon (Arm64) support ●Long-Term Support Release get.dot.net/6
  • 6. Visual Studio 2022 Desenvolvimento Moderno Crie aplicativos modernos e inovadores usando .NET 6, GitHub e Azure com ferramentas integradas Produtividade pessoal e para times Live Share, Hot reload em todos lugares, Web live preview, IntelliCode, ferramentas de teste e debugging melhoradas Escale para projetos de qualquer tamanho Uma UI moderna e otimizada numa arquitetura 64 bits para suportar os maiores e mais complexos workflows e bases de código VisualStudio.com/download RELEASED
  • 7. RELEASED .NET Upgrade Assistant ●Reduza o tempo e a dificuldade de modernizar bases de código .NET mais antigas ●Experiência guiada passo a passo ●Vários tipos de projeto suportados ●C# & VB.NET linguagens ●Suporta .NET 6 aka.ms/dotnet-upgrade-assistant RELEASED +40K preview downloads
  • 8. Mais modelos, SDK unificado Hot reload via dotnet watch Suporte nativo para máquinas Arm64 Único arquivo EXEs para todas plataformas .NET CLI dotnet new <anything> dotnet watch run dotnet build –a arm64
  • 9. Hot reload Acelera seu desenvolvimento, chega de F5 Menos tempo reiniciando, mais tempo codificando Disponível no CLI & Visual Studio 2022 Todos os tipos de projetos, e todas as versões .NET 4.6+ Melhor com .NET 6
  • 10. Simplificando seu código C# 10 global using Model; // Global usings aplicado globalmente no projeto // using System; // Implicit usings para vários tipos de projeto namespace Model; // File-scope namespace, sem indentação // Records podem ser structs ou classes public record struct Order(Customer Customer, string Kind, int Items); public record class Customer(string Name, string Address); // Lambdas possuí tipos implícitos var parse = (string s) => int.Parse(s); // Func<string, int>
  • 11. APIs leves, de arquivo único e nativas da nuvem Sem Cerimônias Fácil para iniciar Sem controllers Ideal para aplicações em microservices / Faas Minimal APIs var app = WebApplication.Create(args);   app.MapGet("/", () => "Hello World!");   app.Run(); Mínimo código para mínimo apps
  • 12. Sem Filters do MVC Não tem suporte API Versioning. Sem validações IModelValidator por padrão Sem suporte a binding Forms IFormFile Sem suporte a OData Diferenças do Minimal APIs para MVC var app = WebApplication.Create(args);   app.MapGet("/", () => "Hello World!");   app.Run();
  • 13. Simples como deve ser ! Suporte a Data Annotations Suporte a FluentValidation MinimalApis.Validators var app = WebApplication.Create(args);   app.MapGet("/customer", (Customer customer) => Results.Created("", customer)).WithValidator<Customer>();   app.Run(); record Customer( [property:Required] string Name, [property:Required] string Email ); https://github.com/juniorporfirio/MinimalApis.Validators
  • 14. Resolve esse problema nos testes unitários Suporta todos os StatusCode Versão preview Fácil de implementar, ex: Results.Extensions.Ok(object) Pacote do Damian Edwards Agradecimento especial por resolver rápido Issues. MinimalApis.Extensions internal sealed class OkObjectResult : ObjectResult { public OkObjectResult(object? value) : base(value, StatusCodes.Status200OK) { } } ● https://github.com/dotnet/aspnetcore/blob/main/src/Http/Http.Results/src/OkObjectResult.cs ● https://github.com/DamianEdwards/MinimalApis.Extensions