Retrospectiva .NET 2021

Marcio Nizzola
4 min readDec 30, 2021

--

Retrospectiva de melhorias .NET 2021

Caminhando para o final de 2021, é momento de fazer uma retrospectiva do que mudou na nossa stack do .NET !

Tivemos um grande crescimento na adoção de .NET elevando a participação no mercado e consequentemente o número de profissionais requisitados só vem aumentando.

Tudo isso se deve à estabilidade e às inovações da linguagem que em 2021 teve o lançamento de diversas features, então para fazer essa retrospectiva, fiz este post relembrando os principais itens que .NET nos trouxe a partir deste ano !

Cada vez mais o .NET se consolida para oferecer soluções para todas as plataformas !

Então vamos às novidades que apareceram ou foram destaque neste ano:

Tipos Record (registro)

Um dos recursos novos disponibilizados com a versão do C# 9 é o tipo Record.

Este tipo cumpre com algumas funções úteis — é um tipo de referência, mas possui um item que ajudará muitos desenvolvedores, que é a comparação de igualdade entre dois “record”, quando seus campos forem considerados iguais. Além disso, possui uma forma simples e fácil de definir suas propriedades em comparação com uma classe completa.

Record em C#

Saiba mais em: Uma nova feature do C# 9: tipos “Record”. | by Marcio Nizzola | Medium

Tipos de dados DateOnly e TimeOnly !

Quem já programou com .NET e precisou armazenar uma data, sempre se deparou com a necessidade bizarra de ter somente o tipo “DateTime” com a necessidade de armazenar a hora junto, assim como o contrário. Não sei por que demorou tanto para trazer isso, mas finalmente está aqui. Portanto, agora você pode especificar tipos como apenas data ou única hora.

Global Usings

Agora com o C# 10, não precisamos mais mencionar em cada classe os comandos “using” mais comuns, é possível fazer isso de uma única vez em um único arquivo e eles se tornarão acessíveis em toda classe daquele projeto !

global usings no C#

MaxBy/MinBy

Os métodos Max e Min já existentes retornam os valores mínimo e máximo em uma coleção, mas e se quisermos obter o objeto de aluno com pontuação máxima em vez de apenas pontuação? Bem, os métodos MinBy e MaxBy fazem exatamente isso. Em vez de emitir o valor máximo da propriedade, agora retorna o objeto que possui a propriedade com valor máximo.

comandos MinBy e MaxBy disponíveis no C#

Valores Default ou Métodos em LINQ

Agora podemos definir valores padrão para métodos LINQ OrDefault como FirstOrDefault (), SingleOrDefault () e LastOrDefault (). Por exemplo, temos uma lista de inteiros e aplicamos o método FirstOrDefault a ela de forma que, se nenhum registro corresponder à condição, em vez de retornar 0, podemos retornar qualquer valor inteiro que desejarmos.

Valores default em seleções com LINQ no C#

Por que não pensaram nisso antes ?

Minimal API

Para mim a melhor coisa rumo á simplificação da criação de API´s, foi o conceito de “Minimal API”, onde podemos criar os métodos da api sem a necessidade de escrever controllers com vários pré-requisitos como as “annotations” indicando se o método era get ou post, ou outros detalhes como as suas rotas.

.NET Minimal API Exemplos

Vejam meus posts específicos deste tema, onde há maiores detalhes:

O que são Minimal API´s no .NET 6? | by Marcio Nizzola | Nov, 2021 | Medium

Organizando melhor a sua Minimal Api no .NET 6 | by Marcio Nizzola | Dec, 2021 | Medium

File Scoped Namespaces

Mais uma etapa à caminho da simplificação do nosso código, o uso de chaves para delimitar o namespace num arquivo não é mais obrigatório, agora podemos simplesmente escrever o namespace e colocar um ponto e vírgula !

File Scoped Namespaces

E muito mais

Além dessas melhorias que de fato podemos usar imediatamente em nossos projetos, ainda tem aí o Blazor e Maui que são promessas fortes para ocupar outros nichos onde o C# estava de fora ultimamente.

Outros itens evoluíram também, como o LINQ e o Entity Framework Core, tornando a cada dia uma linguagem muito mais simples e fácil de se utilizar.

Parafraseando o lendário “Macoratti”, vou adaptar a famosa frase que ele citava relativa ao VB: “Eu sei é apenas .NET, mas eu gosto…”

--

--

Marcio Nizzola
Marcio Nizzola

Written by Marcio Nizzola

Microsoft MVP | Software Architect na CI&T | Prof. da Etec Itu | Membro Fundador da Comunidade Itu Developers.

No responses yet