.NET 8 Novidades: coleções imutáveis com FrozenSet. Em um artigo anterior abordei o uso de instâncias baseadas no tipo FrozenDictionary, uma nova…
we are developers

- Publicou110Artigo(s)
- Visualizados1210000Vezes
- Desde2016


Na imagem abaixo temos um exemplo de execução de um pipeline do Azure DevOps automatizando testes (com Postman + Newman) de uma API REST criada com .NET 7 + ASPNET Core e que faz uso do SQL Server (em um container Docker) + Migrations do Entity Framework Core. Incluí aqui também a geração de um…

O C# 12 e o .NET 8 também trazem agora uma alternativa que busca oferecer uma maior performance na manipulação de arrays baseados em tipos primitivos: trata-se do atributo InlineArray. Implementado a partir do tipo InlineArrayAttribute (namespace System.Runtime.CompilerServices), esta nova opção pode ser utilizada em arrays que contem com um tamanho previamente definido. Essa e…

Versionar os endpoints de uma API REST tem se tornado um tipo de demanda cada vez mais frequente, sobretudo em cenários nos quais aplicações deste tipo são consumidas por diferentes sistemas. Uma simples alteração para atender a um projeto específico pode gerar a necessidade de manter múltiplos endpoints para uma mesma funcionalidade, garantindo assim sua…

O trabalho com arrays e spans pode levar à necessidade de embaralhar os diferentes itens que compõem estruturas desse tipo, com uma reorganização que aconteça de forma randômica. Existe inclusive um algoritmo para isto, conhecido como Fisher-Yates shuffle ou Knuth shuffle. Funcionalidades para sorteio e testes aleatórios constituem bons exemplos desta implementação. Com o .NET…

Capacidade antes restrita ao uso de Records, com o C# 12 podemos agora também empregar Primary Constructors na implementação de classes e structs. Parâmetros podem ser definidos na declaração de uma classe ou struct, viabilizando com isto a utilização dos mesmos no corpo dessas estruturas. Na próxima listagem temos um exemplo deste tipo de implementação…

As palavras-chave/keywords do C# são identificadores especiais do ponto de vista do compilador dessa linguagem, estando normalmente associadas a implementações básicas como declarações de estruturas, desvios condicionais e manipulação de valores. Uma característica comum a todas as keywords está no fato de que a escrita das mesmas sempre se dá em letras minúsculas, devendo-se ressaltar…

Neste artigo apresento um exemplo de uso de Mock Objects em .NET 7, tomando como base um projeto criado originalmente em versões anteriores do .NET e detalhado em um artigo publicado há algum tempo no meu blog: Testes de Software com .NET 5: exemplos de utilização A implementação em questão utilizou o Moq como alternativa…

Em um artigo anterior sobre novidades do .NET 8 abordei a utilização do tipo AllowedValuesAttribute, uma Data Annotation que integra o namespace System.ComponentModel.DataAnnotations e que permite definir os valores permitidos para uma propriedade: Novidades do .NET 8: definindo valores possíveis com AllowedValuesAttribute Neste novo post dou continuidade à série que cobre novos recursos recursos do…

Nem toda automação de processos de negócio se resume a um simples envio de requisição HTTP a um endpoint previamente existente ou, até mesmo, a uma fila/tópico de uma solução de mensageria. E obviamente teremos todo um fluxo a seguir, com uma coreografia envolvendo o sequenciamento das tarefas dentro daquele contexto. Diante disso, há um caminho para implementarmos soluções deste tipo…