Tipos de Valor e Tipos de Referência em C#: Cópia Profunda e Cópia Superficial
Tipos de valor armazenam diretamente seus valores, enquanto tipos de referência armazenam endereços de memória. Essa distinção impacta significtaivamente como os dados são gerenciados na memória.
Tipos de valor são armazenados na pilha, enquanto tipos de referência possuem seu conteúdo na heap. A diferença principle está no local de alocação e ...
Publicado em 10-8 09:34
Métodos de Extensão em C#: Estendendo Funcionalidades de Tipos Existentes
Os métodos em C# podem ser categorizados da seguinte forma:
Métodos estáticos (declarados com o modificador static)
Métodos de instância
Métodos virtuais (declarados com o modificador virtual)
Métodos sobrescritos (declarados com o modificador override)
Métodos selados (declarados com o modificador sealed)
Métodos abstratos (declarados com o m ...
Publicado em 9-28 12:16
Soluções de Problemas Comuns no Projeto IdGen
IdGen é um gerador de IDs distribuído inspirado no projeto Twitter Snowflake, projetado para produzir IDs com baixa latência, sem coordenação, ordenados por tempo, compactos e altamente disponíveis. Desenvolvido em C# para a plataforma .NET, oferece flexibilidade para ajustar a estrutura dos IDs conforme as necessidades específicas e pode ser i ...
Publicado em 9-22 17:35
Renderização de Indicadores de Progresso Circulares no WPF
Para construir um indicador de progresso circular no WPF, a estratégia recomendada envolve substituir o modelo de controle padrão por um ControlTemplate personalizado e vincular a propriedade Value a um conversor de valores. Esse conversor traduz o dado numérico em instruções de desenho vetorial, retornando um DrawingBrush que é aplicado direta ...
Publicado em 9-7 21:00
O Padrão Template Method: Definição de Algoritmos e Reuso de Código
O padrão Template Method é classificado como um padrão de projeto comportamental. Sua principal função é estabelecer a estrutura fundamental de um algoritmo em uma superclasse, delegando a execução de etapas específicas para suas subclasses. Essa abordagem permite que as classes derivadas modifiquem partes do comportamento sem alterar a arquite ...
Publicado em 9-7 14:48
Programação Orientada a Aspectos: Conceitos e Implementação
Introdução à Modularização Transverasl
A Programação Orientada a Aspectos (AOP) representa um paradigma focado na separação de preocupações transversais (cross-cutting concerns). Diferente das abordagens tradicionais, o AOP permite isolar funcionalidades que afetam múltiplos pontos do sistema, como logging, segurança e transações, sem poluir a ...
Publicado em 8-27 11:33
Implementação de Sharding com EF Core
Ao instanciar um contexto DbContext, cada operação CRUD invoca sequencialmente os métodos OnConfiguring() e OnModelCreating().
OnConfiguring() será utilizado para substituir implementações de serviço, permitindo a operação com tabelas particionadas
OnModelCreating() será empregado para redefinir o mapeamento entre entidades e tabelas do banco ...
Publicado em 8-22 16:55
Polimorfismo em C#: Implementações Estáticas e Dinâmicas
Cnoceito de Polimorfismo
O polimorfismo é um pilar fundamental da programação orientada a objetos que permite que uma única ação ou método se comporte de maneiras diferentes dependendo do objeto ou contexto em que é aplicado. Em termos simples, representa o princípio de "uma interface, múltiplas implementações".
Em C#, o polimorfismo ...
Publicado em 7-21 18:43
Otimizando o Uso das Diretivas `global using` em C# 10: Melhores Práticas e Armadilhas Potenciais
Introdução às Diretivas global using no C# 10
O C# 10 introduziu um recurso de linguagem significativo: as diretivas global using. Essa funcionalidade permite que os desenvolvedores declarem namespaces que são válidos em todo o projeto, eliminando a necessidade de repetir as mesmas declarações using em cada arquivo-fonte. Essa adição melhora no ...
Publicado em 7-21 11:26
Exportando Arquivos Excel com Múltiplas Planilhas usando NPOI no C# .NET 8
Enstalação do NPOI 2.7.2
Classe utilitário ConversorTabelaDado.cs, para converter listas em DataTables
using System.Collections;
using System.Data;
using System.Reflection;
namespace Utilidades.Comum
{
public static class ConversorTabelaDado
{
/// <summary>
/// Converte uma lista para DataTable
/ ...
Publicado em 7-18 14:20