Novidades do ASP.NET 5: suporte a Records

Renato Groffe
3 min readNov 22, 2020

--

Uma das principais novidades que integram o C# 9.0, Records são estruturas que facilitam em muito a implementação de objetos imutáveis em .NET (através de sua combinação com Init-Only Properties). Já abordei inclusive a utilização de Records no seguinte artigo:

Novidades do C# 9: Records

O próprio ASP.NET 5 já conta com o suporte a Records, possibilitando inclusive o seu uso com Data Annotations para fins de validação. É o que foi demonstrado a seguir na definição do tipo Mensagem, em que notamos a presença dos atributos Required e Range:

O record type Mensagem foi então utilizado nas Actions Get e Post de MensagensController, de maneira idêntica e sem quaisquer restrições em relação a uma classe convencional:

A seguir podemos observar nesta API um exemplo de cadastramento com sucesso de uma mensagem:

De uma consulta em que os dados cadastrados no passo anterior foram retornados:

E finalmente de uma tentativa de cadastramento com dados inválidos; notam-se aqui os alertas correspondentes ao uso de Data Annotations:

Este exemplo foi disponibilizado no seguinte repositório do GitHub:

ASP.NET 5 + REST API + Records + Cadastro de Mensagens

Temos ainda a possibilidade de implementações com Records em aplicações baseadas em MVC e Razor Pages, conforme anunciado em um post do blog oficial da plataforma ASP.NET:

E concluo este artigo com um convite…

Vem aí a edição 2020 do DevWeek, evento ONLINE e GRATUITO realizado pelo Canal .NET. Esse ano teremos novamente 9 palestras entregues ao longo de 3 dias de evento: 30/Novembro (segunda), 01/Dezembro (terça) e 02/Dezembro (quarta), sempre a partir das 20:00 — horário de Brasília.

Junte-se a nós e venha aprender mais sobre tendências, boas práticas, ferrmentas e técnicas de desenvolvimento de software.

Para efetuar sua inscrição clique no link:

https://bit.ly/canaldotnet-devweek-2020

--

--

Renato Groffe

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker