.NET

Cloud Native e Cloud Agnostic

para rodar .NET em qualquer Cloud
ou sem Cloud sempre de forma profissional!

Últimas publicações

Aqui estão os últimos 12 posts de mais de 500…

Oragon.RabbitMQ 1.1 – Reduzindo Alocações

Oragon.RabbitMQ 1.1 – Reduzindo Alocações

Então esse foi o dia que queimei a lingua! Uma das criticas que faço às publicações que falam sobre ganhos absurdos de 50%, 80% e até mais de 100% de performance onde todas as variáveis se mantiveram as mesmas, é que afinal: Ganhamos 100% ou deixamos de perder 50%? Como o velho ditado "A...

ler mais
Implementando Delay no RabbitMQ com Oragon.RabbitMQ sem Delayed Exchange

Implementando Delay no RabbitMQ com Oragon.RabbitMQ sem Delayed Exchange

Um assunto recorrente quando falamos de RabbitMQ é a implementação de delay. Embora tenhamos o delayed exchange, existem questões relacionadas a cluster que precisam ser consideradas e por isso não é algo que aborde, além de ser algo instalado à parte. Existem muitos motivos para evitarmos esse...

ler mais
A fábrica de engrenagens

A fábrica de engrenagens

Estava escrevendo sobre .NET Aspire, porém, no meio do texto fui tomado por um acesso de raiva ao retratar o caminho que nós, como comunidade técnica e como sociedade, estamos tomando. Quero compartilhar essa reflexão, pois a forma fragmentada como desenvolvedores querem ser responsáveis por cada...

ler mais
6 Semanas com .NET Aspire

6 Semanas com .NET Aspire

Estamos na semana 43 de 2024, faltam 9 semanas para o réveillon. Desde a semana 38 estou trabalhando com ASPIRE e quero falar sobre essa experiência. Contexto O primeiro ponto para a contextualização é que o Academia Pay não é um projeto para ser comercializado, vendido, ou ter clientes reais,...

ler mais

Fique por dentro e não perca nada

Menos de 10% da audiência recebe o conteúdo publicado

A newsletter é o meio mais eficiente de furar o bloqueio dos algoritmos das redes sociais e fazer o conteúdo chegar até você.

Assim evitamos poluir as comunidades com chamadas para eventos e lives.

Essa é forma mais eficiente de receber meu conteúdo.

Somos mais de 6k inscritos

Projetos Open Source

projetos ativos e projetos antigos disponíveis para estudo

Nenhum resultado encontrado

A página que você solicitou não foi encontrada. Tente refinar sua pesquisa, ou use a navegação acima para localizar a postagem.

Entender | Analisar | Projetar | Desenvolver | Implantar | Manter

A segurança que você busca não está em um tutorial

Para entender uma tecnologia é importante entender o que influenciou sua criação, o que ela faz de fato, como ela faz. Para que então se sinta seguro e confiante a respeito das decisões que está prestes a tomar.

De um lado precisamos compreender o que está sendo feito por baixo dos panos para descobrir como extrair o máximo de uma tecnologia ou, ao menos, não atrapalhar o bom funcionamento dela.

O Cloud Native .NET é uma jornada de descoberta sobre tecnologias e patterns que fazem parte da maioria dos softwares que usamos, que somos usuários e que suportam e toleram altas cargas de trabalho, de forma eficaz, eficiente e sustentável.

 

É primeiro entendendo o que eles fazem, que podemos descobrir oportunidades e evoluir no que fazemos…

Conteúdo

A fábrica de engrenagens

A fábrica de engrenagens

Estava escrevendo sobre .NET Aspire, porém, no meio do texto fui tomado por um acesso de raiva ao retratar o caminho que nós, como comunidade técnica e como sociedade, estamos tomando. Quero compartilhar essa reflexão, pois a forma fragmentada como desenvolvedores querem ser responsáveis por cada...

ler mais
6 Semanas com .NET Aspire

6 Semanas com .NET Aspire

Estamos na semana 43 de 2024, faltam 9 semanas para o réveillon. Desde a semana 38 estou trabalhando com ASPIRE e quero falar sobre essa experiência. Contexto O primeiro ponto para a contextualização é que o Academia Pay não é um projeto para ser comercializado, vendido, ou ter clientes reais,...

ler mais
Projetando um Chat Server para a escala com .NET

Projetando um Chat Server para a escala com .NET

Arquitetura é estratégia. Projetar uma arquitetura envolve muito mais do que escolher tecnologias, implica em compreender como os conectar pontos e principalmente como lidar com limitações e restrições. Em um mundo utópico, sem escassez, não precisaríamos nos preocupar com arquitetura, toda...

ler mais
Cache-Aside Wins

Cache-Aside Wins

O uso de caching em sistemas distribuídos tornou-se uma prática essencial para melhorar a performance e a escalabilidade de aplicações. A escolha da estratégia de caching adequada é um desafio que muitos enfrentam. Com diversas abordagens disponíveis, é fácil se perder entre as opções e acabar...

ler mais

Conheça nosso Podcast

DevShow Podcast

Em 2019 resolvemos criar um podcast, o DevShow Podcast, desde lá são mais de 40 episódios com muito assunto legal, sempre com essa pegada pessoal, falando coisas sérias, mas sem o menor compromisso com a formalidade.

Saiba mais...

.NET

O custo real das exceptions – 02 –  Estamos olhando para o lugar certo?

O custo real das exceptions – 02 – Estamos olhando para o lugar certo?

Sem sombra de dúvidas, o principal argumento que sustenta a ideia de que exceptions são ruins é o custo. Afinal, ninguém quer colar em si uma placa dizendo que “optou pelo caminho mais lento“.

Ao mesmo tempo, as discussões acaloradas transformam o debate em uma rinha onde cada qual adota uma postura que desqualifica toda e qualquer opinião contrária.

Mas afinal, quanto custa uma exception?

Este artigo não pretende fornecer respostas definitivas, mas levantar questionamentos importantes:

Será que estamos ignorando alguma peça fundamental nessa discussão? A aversão às exceptions é justificada por dados concretos ou apenas uma tendência emergente sem embasamento empírico suficiente?

ler mais…
O custo real das exceptions – 01 – A série

O custo real das exceptions – 01 – A série

O uso de exceptions no .NET tem sido um tópico de debates acalorados na comunidade. Para alguns, exceptions representam um custo desnecessário, um vestígio de práticas antiquadas que poderiam ser substituídas por abordagens mais eficientes. Para outros, são um pilar essencial para a robustez e previsibilidade do software moderno.

Se exceptions realmente fossem um problema significativo, por que ainda são adotadas de forma unilateral, em todo lugar, principalmente nos componentes centrais do ecossistema .NET, no ASP.NET, no Entity Framework e em diversas bibliotecas e fundações da própria Microsoft?

Será que há questões que não estamos considerando?

Antes de abraçar qualquer lado, é fundamental analisar a questão de forma técnica e pragmática.

Esta série de artigos pretende fornecer respostas, e levantar questionamentos importantes.

ler mais…
Vai criar um IConfiguration? Não esqueça as variáveis de ambiente!

Vai criar um IConfiguration? Não esqueça as variáveis de ambiente!

Quando construímos aplicações em .NET (especialmente .NET Core e posteriores), temos acesso a um pipeline de configuração bastante poderoso, que permite combinar diversas fontes de configuração: arquivos JSON, variáveis de ambiente, User Secrets, Azure Key Vault, entre outras.

Entretanto, não é tão raro esbarrar projetos que utilizem exclusivamente arquivos appsettings.json (e suas variações, como appsettings.Development.json, appsettings.Production.json, etc.) e inadvertidamente não só se ignorem o uso de variáveis de ambiente, mas também impossibilitem sua utilização.

O inferno tem um lugar especial para quem faz isso intencionalmente.

ler mais…
Sobre MediatR

Sobre MediatR

Nos últimos anos, o MediatR tornou-se amplamente utilizado na comunidade .NET. Muitos projetos são construídos a partir de templates que o incorporam, resultando em uma adoção generalizada. No entanto, poucas pessoas questionam a necessidade real de sua utilização.

Em algumas ocasiões, fui questionado sobre os motivos para não usar MediatR. Para muitos desenvolvedores, sua presença em um projeto é considerada um padrão inevitável, algo que não precisa de justificativa ou debate.

Neste artigo, quero explorar essa ferramenta sob uma ótica mais crítica e avaliar seu impacto real na arquitetura de software.

ler mais…
Voltando do .NET Aspire para o Docker Compose

Voltando do .NET Aspire para o Docker Compose

Já faz algum tempo que publiquei um post contando sobre minha experiência com o .NET Aspire. Depois de mais de 14 semanas com .NET Aspire chegou a hora de dizer “até logo”.

Neste texto, vamos discutir a viabilidade de usar o .NET Aspire em projetos baseados em Docker Compose e também mostrar o processo de migração do .NET Aspire de volta para o Docker Compose.

ler mais…

Arquitetura

Voltando do .NET Aspire para o Docker Compose

Voltando do .NET Aspire para o Docker Compose

Já faz algum tempo que publiquei um post contando sobre minha experiência com o .NET Aspire. Depois de mais de 14 semanas com .NET Aspire chegou a hora de dizer “até logo”.

Neste texto, vamos discutir a viabilidade de usar o .NET Aspire em projetos baseados em Docker Compose e também mostrar o processo de migração do .NET Aspire de volta para o Docker Compose.

ler mais…
Oragon.RabbitMQ 1.1 – Reduzindo Alocações

Oragon.RabbitMQ 1.1 – Reduzindo Alocações

Então esse foi o dia que queimei a lingua!

Uma das criticas que faço às publicações que falam sobre ganhos absurdos de 50%, 80% e até mais de 100% de performance onde todas as variáveis se mantiveram as mesmas, é que afinal: Ganhamos 100% ou deixamos de perder 50%?

Como o velho ditado “A estatística é a arte de torturar os números até que eles confessem o que você quer demonstrar”.

Bem, eu não passei batido à minha própria critica! Hoje vou falar sobre a redução nas alocações de respostas.

ler mais…
Microsserviços vs Componentes

Microsserviços vs Componentes

Uma dúvida frequente na adoção de microserviços é sobre a diferenciação entre o “microserviços” e os “componentes” que ele pode conter.

Muitas pessoas imaginam que um microserviço seja apenas uma API, implementada em um projeto monolítico, mas a realidade (e a prática) mostram que ele pode sim ser composto por diversos elementos internos (como APIs, workers, jobs em segundo plano etc.) desde que todos compartilhem o mesmo propósito de negócio/bounded context.

ler mais…
Monorepo vs Multirepo?

Monorepo vs Multirepo?

Gerenciar configurações em projetos de software vai muito além de uma simples questão técnica — é algo que realmente faz diferença na maturidade da equipe e na eficiência do desenvolvimento.

Se você já trabalhou com repositórios cheios de serviços diferentes, sabe bem que decidir como implantar, versionar e coordenar tudo é o que separa um sistema tranquilo de um pesadelo de dependências quebradas.

Neste artigo, quero compartilhar com você algumas estratégias práticas para garantir que cada implantação seja consistente e rastreável. Além disso, vamos conversar sobre os desafios e como lidar quando precisamos gerenciar serviços de forma separada. Vamos nessa?

ler mais…

Containers

RabbitMQ Operators | Entendendo Kubernetes Operators

RabbitMQ Operators | Entendendo Kubernetes Operators

Embora não seja comum ver conteúdo sobre o assunto, Operators está no coração do Kubernetes e esse definitivamente é um dos temas mais legais na minha opinião no que diz respeito ao projeto.

Nessa série composta por 3 posts, vamos abordar step-by-step os 2 operators do RabbitMQ, mas hoje vamos primeiro elucidar o que são Operators e CRD’s.

ler mais…
Além das 3 camadas | Containers

Além das 3 camadas | Containers

Docker está para o desenvolvimento de software como o IPOD esteve para a indústria da música. Não inventou a música portátil, mas revolucionou a experiência dos usuários.

Se você trabalha com algum backend, java, .NET, node, python, ruby… e docker não está no teu radar, meu amigo… você tá ferrado!

ler mais…
Docker Desktop pago? Agora é o fim! Só pode! Será mesmo?

Docker Desktop pago? Agora é o fim! Só pode! Será mesmo?

Toda notícia ao redor da Docker Inc gera um transtorno absurdo. A equipe de comunicação e marketing está de parabéns! Com uma gestão imagem que beira o nulo. Na vez passada o não suporte ao dockershim, pela equipe do Kubernetes, respingou sobre a Docker como se o Kubernetes perdesse suporte à containers, ou como se esse ecosssitema fosse frágil o suficiente para uma possível morte da Docker significar alguma coisa. Agora a novidade é a notícia do Docker Desktop pago!

Está na hora de entendermos o que tudo isso significa.

ler mais…

Mensageria

Filas exclusivas e autodelete

Filas exclusivas e autodelete

Nem sempre as demandas exigem filas que durem aos restarts da sua aplicação. Há casos de uso significativos em que você quer que a fila nasça com a instância da sua aplicação e morra junto com ela.

Embora seja um conceito trivial, em mais de 10 anos usando RabbitMQ, essa foi a primeira vez que tive de fato essa a necessidade de adotar essa abordagem.

ler mais…
10 anos com RabbitMQ — O que aprendi sobre – parte 1

10 anos com RabbitMQ — O que aprendi sobre – parte 1

Uma das ferramentas que mudou minha carreira foi sem dúvidas o RabbitMQ.

RabbitMQ, embora tenha Coelho no nome, se comporta mais como um cavalo selvagem e arisco.

Mensageria, Aplicações assíncronas e Aplicações distribuídas são mais complexas, mas dão um poder que poucos no mercado conseguem compreender, e hoje quero trazer um pouco dessa experiência acumulada ao longo de uma década usando RabbitMQ em produção em projetos de todos os tamanhos.

Hoje é dia de falarmos de RabbitMQ.

ler mais…

Conteúdo e Posicionamento

.NET + Cloud Native + Cloud Agnostic

.NET | DevOps | Microservices | Containers | Continuous Delivery

.NET muito além do .NET

O mínimo de infra que todo dev e/ou arquiteto deveria saber

Aplicações distribuídas e comunicação entre serviços (RabbitMQ / gRPC)

Containers, Docker e Kubernetes

+

RabbitMQ e Mensageria e comunicação assíncrona entre aplicações e serviços

Arquitetura de Software e Arquitetura de Solução com foco no melhor aproveitamento em projetos .NET

Nossos números

Desde 2002 trabalhando com desenvolvimento de software

Desde 2002 ajudando outros devs

Desde 2010 trabalhando exclusivamente como arquiteto

Contas atingidas no telegram/facebook

Alunos

Microsoft MVP

2018-2020

2020-2021

2021-2022

2022-2023

2023-2024

2024-2025

Conteúdo Gratuito

Tudo que está aqui no gaGO.io é conteúdo gratuito, feito para ajudar desenvolvedores dos mais variados níveis.

Cursos

Tenho também alguns programas de acompanhamento. Esses programas tem a função de ajudar desenvolvedores em áreas específicas ou de forma mais abrangente na jornada do arquiteto.