<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Developer Experience | The .NET Blog</title><link>https://thedotnetblog.com/pt/tags/developer-experience/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>pt</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Sun, 21 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/pt/tags/developer-experience/index.xml" rel="self" type="application/rss+xml"/><item><title>Revisar pull requests dentro do Visual Studio é exatamente o tipo de redução de atrito que eu gosto</title><link>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/visual-studio-pull-request-review-inside-the-ide/</link><pubDate>Sun, 21 Jun 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/visual-studio-pull-request-review-inside-the-ide/</guid><description>O Visual Studio agora pode revisar pull requests de ponta a ponta sem sair do IDE. Pode soar incremental, mas para equipes que passam o dia inteiro no Visual Studio, isso remove muito context switching desnecessário.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Este artigo foi traduzido automaticamente. Leia o original &lt;a href="https://thedotnetblog.com/pt/news/emiliano-montesdeoca/visual-studio-pull-request-review-inside-the-ide/"&gt;aqui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;O navegador roubou por tempo demais uma parte grande demais do workflow de code review.&lt;/p&gt;
&lt;p&gt;Por isso fico muito feliz em ver o Visual Studio avançando mais rumo à &lt;strong&gt;revisão end-to-end de pull requests dentro do IDE&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Este é um daqueles recursos que talvez não gere manchetes enormes, mas que pode melhorar de forma real o desenvolvimento diário.&lt;/p&gt;
&lt;h2 id="o-valor-principal-é-simples-menos-context-switching"&gt;O valor principal é simples: menos context switching&lt;/h2&gt;
&lt;p&gt;Quando o seu loop de review vive em parte no IDE e em parte no navegador, o atrito se acumula:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;abra o PR em outro lugar&lt;/li&gt;
&lt;li&gt;inspecione as mudanças em uma ferramenta&lt;/li&gt;
&lt;li&gt;volte para a solution para investigar melhor&lt;/li&gt;
&lt;li&gt;troque outra vez para comentar ou aprovar&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Isso não é catastrófico. É só ineficiente.&lt;/p&gt;
&lt;p&gt;Se o Visual Studio permitir abrir, inspecionar, comentar, aprovar e fazer merge no mesmo ambiente de trabalho, isso é um ganho real de produtividade.&lt;/p&gt;
&lt;h2 id="a-opção-de-review-sem-checkout-é-especialmente-boa"&gt;A opção de &amp;ldquo;review sem checkout&amp;rdquo; é especialmente boa&lt;/h2&gt;
&lt;p&gt;Uma parte que eu particularmente gosto é a possibilidade de revisar sem fazer checkout do branch do PR.&lt;/p&gt;
&lt;p&gt;Isso pode parecer pequeno, mas é perfeito para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;passadas rápidas de review&lt;/li&gt;
&lt;li&gt;pedidos de feedback interrompidos&lt;/li&gt;
&lt;li&gt;manter seu branch atual e o estado local intactos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esse é exatamente o tipo de flexibilidade que boas ferramentas de code review precisam.&lt;/p&gt;
&lt;h2 id="minha-opinião"&gt;Minha opinião&lt;/h2&gt;
&lt;p&gt;Isso não é um recurso revolucionário.&lt;/p&gt;
&lt;p&gt;É algo melhor: algo prático.&lt;/p&gt;
&lt;p&gt;Para equipes que passam a maior parte do dia no Visual Studio, um suporte mais forte a PR review significa menos interrupções no workflow e um caminho mais suave da inspeção à ação.&lt;/p&gt;
&lt;p&gt;Na minha visão, essa é uma melhoria que vale a pena.&lt;/p&gt;
&lt;p&gt;Publicação original: &lt;a href="https://devblogs.microsoft.com/visualstudio/review-pull-requests-without-leaving-visual-studio/"&gt;Revise pull requests sem sair do Visual Studio&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>Harnesses de Agentes Importam Porque Prompts Não São Suficientes</title><link>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/agent-harness-claw-why-the-runtime-shell-matters/</link><pubDate>Sat, 20 Jun 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/agent-harness-claw-why-the-runtime-shell-matters/</guid><description>O novo passo a passo de claw e harness do Microsoft Agent Framework é um lembrete útil de que agentes de verdade precisam de uma camada de runtime ao redor do modelo: ferramentas, planejamento, memória, sessões e um loop de execução prático.</description><content:encoded>&lt;p&gt;Um dos erros mais fáceis de cometer no desenvolvimento de agentes é achar que o prompt é o produto.&lt;/p&gt;
&lt;p&gt;Não é.&lt;/p&gt;
&lt;p&gt;O novo passo a passo de &lt;strong&gt;agent harness e claw&lt;/strong&gt; da equipe do Microsoft Agent Framework é valioso porque mantém o foco na parte que realmente determina se um agente parece utilizável: a camada de runtime ao redor do modelo.&lt;/p&gt;
&lt;p&gt;Isso inclui:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ferramentas&lt;/li&gt;
&lt;li&gt;planejamento&lt;/li&gt;
&lt;li&gt;estado de sessão&lt;/li&gt;
&lt;li&gt;memória&lt;/li&gt;
&lt;li&gt;modos de execução&lt;/li&gt;
&lt;li&gt;um console ou interface utilizável para iteração&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;É aí que os agentes deixam de ser demos inteligentes e passam a parecer software de verdade.&lt;/p&gt;
&lt;h2 id="o-padrão-de-harness-é-prático"&gt;O padrão de harness é prático&lt;/h2&gt;
&lt;p&gt;O que eu gosto aqui é o quão acessível a ideia é.&lt;/p&gt;
&lt;p&gt;Você começa com um chat client.&lt;/p&gt;
&lt;p&gt;Depois envolve isso em um harness com instruções e ferramentas.&lt;/p&gt;
&lt;p&gt;Depois roda tudo através de um shell que suporta planejamento, todos, sessões e interação em streaming.&lt;/p&gt;
&lt;p&gt;Esse é um padrão saudável porque separa claramente as responsabilidades:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;o modelo cuida do raciocínio&lt;/li&gt;
&lt;li&gt;o harness cuida do comportamento em tempo de execução&lt;/li&gt;
&lt;li&gt;a aplicação decide quais ferramentas e experiências importam&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="isso-combina-muito-bem-com-a-forma-como-desenvolvedores-net-constroem-sistemas"&gt;Isso combina muito bem com a forma como desenvolvedores .NET constroem sistemas&lt;/h2&gt;
&lt;p&gt;A ideia do harness também mapeia bem para a mentalidade .NET.&lt;/p&gt;
&lt;p&gt;Geralmente nos saímos melhor quando o comportamento em runtime é explícito e composável. Middleware, pipelines, options, providers e adapters são todos naturais nesse mundo.&lt;/p&gt;
&lt;p&gt;É por isso que acho que o Agent Framework tem uma boa chance de agradar aos desenvolvedores .NET. Ele não força todo mundo em uma única abstração mágica. Ele te dá peças estruturadas de runtime que você pode conectar entre si.&lt;/p&gt;
&lt;h2 id="minha-opinião"&gt;Minha opinião&lt;/h2&gt;
&lt;p&gt;A parte mais útil deste post é o lembrete de que agentes precisam de mais do que um bom modelo e uma string de instrução inteligente.&lt;/p&gt;
&lt;p&gt;Eles precisam de uma camada de runtime que dê a eles estrutura, memória, acesso a ferramentas, planejamento e um loop de desenvolvimento viável.&lt;/p&gt;
&lt;p&gt;É isso que o harness te dá.&lt;/p&gt;
&lt;p&gt;E, honestamente, é por isso que esse padrão vale a pena acompanhar.&lt;/p&gt;
&lt;p&gt;Post original: &lt;a href="https://devblogs.microsoft.com/agent-framework/meet-your-agent-harness-and-claw/"&gt;Meet your agent harness and claw&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>Aspire no VS Code 13.4 Aperta o Ciclo de Desenvolvimento nos Lugares Certos</title><link>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/aspire-vscode-13-4-developer-loop/</link><pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/aspire-vscode-13-4-developer-loop/</guid><description>Aspire no VS Code 13.4 não é apenas uma atualização de recursos. É uma melhoria real no ciclo diário de desenvolvimento, com depuração melhor, visibilidade de recursos, integração de painel e suporte ao TypeScript AppHost.</description><content:encoded>&lt;p&gt;As melhores atualizações de ferramentas são aquelas que você sente depois de alguns dias, não as que só parecem boas nas notas de lançamento.&lt;/p&gt;
&lt;p&gt;É assim que &lt;strong&gt;Aspire no VS Code 13.4&lt;/strong&gt; me parece.&lt;/p&gt;
&lt;p&gt;Esta atualização é toda sobre apertar o loop interno: criar projetos mais rápido, depurar recursos multilíngues de forma mais natural, expor saúde e comandos diretamente no editor, e manter o dashboard por perto sem torná-lo o único lugar onde você pode trabalhar.&lt;/p&gt;
&lt;p&gt;Essa é uma direção muito boa.&lt;/p&gt;
&lt;h2 id="a-grande-vitória-é-menos-troca-de-contexto"&gt;A grande vitória é menos troca de contexto&lt;/h2&gt;
&lt;p&gt;Se você usa o Aspire com seriedade, geralmente está transitando entre várias superfícies:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;código do AppHost&lt;/li&gt;
&lt;li&gt;terminal&lt;/li&gt;
&lt;li&gt;dashboard&lt;/li&gt;
&lt;li&gt;logs&lt;/li&gt;
&lt;li&gt;sessões de depuração&lt;/li&gt;
&lt;li&gt;endpoints de serviço&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;O que o 13.4 faz bem é reduzir o atrito entre essas superfícies.&lt;/p&gt;
&lt;p&gt;A nova experiência no VS Code torna mais do estado da aplicação visível exatamente onde você já está trabalhando:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;saúde dos recursos no editor&lt;/li&gt;
&lt;li&gt;comandos ao lado das declarações de recursos&lt;/li&gt;
&lt;li&gt;acesso mais fácil ao dashboard&lt;/li&gt;
&lt;li&gt;acesso a logs a partir do contexto do AppHost&lt;/li&gt;
&lt;li&gt;um painel que continua útil mesmo antes de iniciar a depuração completa&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Isso parece pequeno até você fazer isso todos os dias.&lt;/p&gt;
&lt;h2 id="depurar-stacks-mistas-importa-mais-do-que-as-pessoas-pensam"&gt;Depurar stacks mistas importa mais do que as pessoas pensam&lt;/h2&gt;
&lt;p&gt;Uma das partes mais fortes desta atualização é a história mais natural para depurar &lt;strong&gt;C#, TypeScript, Python, Go, aplicações de navegador e Azure Functions&lt;/strong&gt; em um único fluxo orientado pelo Aspire.&lt;/p&gt;
&lt;p&gt;Isso reflete a forma real das aplicações modernas muito melhor do que fingir que tudo vive em um único runtime.&lt;/p&gt;
&lt;p&gt;Para desenvolvedores .NET especialmente, isso é valioso porque muitos de nós agora estamos construindo sistemas que misturam projetos de API, front-ends, workers e serviços adjacentes a IA em linguagens diferentes.&lt;/p&gt;
&lt;p&gt;O fato de o Aspire estar tornando isso mais unificado dentro do VS Code é uma melhoria muito prática.&lt;/p&gt;
&lt;h2 id="o-suporte-ao-typescript-apphost-chegar-ao-ga-também-é-significativo"&gt;O suporte ao TypeScript AppHost chegar ao GA também é significativo&lt;/h2&gt;
&lt;p&gt;Eu não ignoraria o lado do TypeScript AppHost neste lançamento.&lt;/p&gt;
&lt;p&gt;O Aspire se tornando mais natural tanto para C# quanto para TypeScript amplia quem pode trabalhar no mesmo modelo de sistema sem fluxos de trabalho estranhos de segunda classe. Isso importa para equipes onde código de plataforma, código de front-end e orquestração de serviços vivem próximos.&lt;/p&gt;
&lt;h2 id="minha-opinião"&gt;Minha opinião&lt;/h2&gt;
&lt;p&gt;Aspire 13.4 no VS Code não é sobre uma única funcionalidade matadora. É sobre suavizar as arestas do loop diário:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;iniciar mais rápido&lt;/li&gt;
&lt;li&gt;ver mais estado onde você programa&lt;/li&gt;
&lt;li&gt;depurar de forma mais natural&lt;/li&gt;
&lt;li&gt;pular para logs e dashboard só quando necessário&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;É exatamente assim que boas ferramentas deveriam evoluir.&lt;/p&gt;
&lt;p&gt;Se você já usa o Aspire, esta atualização parece valer a pena instalar. Se você ainda está se perguntando se o VS Code é um lar sério para desenvolvimento baseado em Aspire, a resposta está ficando cada vez mais óbvia.&lt;/p&gt;
&lt;p&gt;Post original: &lt;a href="https://devblogs.microsoft.com/aspire/aspire-vscode-extension-13-4/"&gt;Aspire in VS Code: the 13.4 developer loop&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>O novo Plan agent no Visual Studio resolve um problema muito real de workflow de IA</title><link>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/visual-studio-plan-agent-build-before-code/</link><pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/visual-studio-plan-agent-build-before-code/</guid><description>O novo Plan agent do Visual Studio importa porque cria uma etapa estruturada de planejamento antes da implementação, que é exatamente o que recursos maiores e refatorações costumam precisar.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Este artigo foi traduzido automaticamente. Leia o original &lt;a href="https://thedotnetblog.com/pt/news/emiliano-montesdeoca/visual-studio-plan-agent-build-before-code/"&gt;aqui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Um dos workflows de programação com IA mais frustrantes é quando a implementação começa rápido demais.&lt;/p&gt;
&lt;p&gt;O código pode até estar tecnicamente certo, mas está resolvendo a versão errada do problema que você tinha em mente.&lt;/p&gt;
&lt;p&gt;Você queria uma refatoração. Virou um rewrite.
Você queria uma melhoria com escopo definido. Tocou metade do projeto.
Você queria discutir opções. Foi direto para mudanças em arquivos.&lt;/p&gt;
&lt;p&gt;É por isso que o novo &lt;strong&gt;Plan agent&lt;/strong&gt; no Visual Studio é uma adição tão útil.&lt;/p&gt;
&lt;h2 id="isso-resolve-um-problema-real-de-workflow-não-apenas-um-problema-cosmético"&gt;Isso resolve um problema real de workflow, não apenas um problema cosmético&lt;/h2&gt;
&lt;p&gt;A publicação original descreve uma situação muito familiar: &amp;ldquo;&lt;strong&gt;O código não está errado&amp;hellip; ele só não é o que você queria.&lt;/strong&gt;&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Essa frase é perfeita.&lt;/p&gt;
&lt;p&gt;Porque o ponto fraco de muito desenvolvimento assistido por IA não é se o modelo consegue produzir código. O problema é se o workflow cria espaço suficiente para combinar a forma pretendida do trabalho antes de começar a implementação.&lt;/p&gt;
&lt;p&gt;Isso importa especialmente para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;recursos grandes&lt;/li&gt;
&lt;li&gt;codebases desconhecidas&lt;/li&gt;
&lt;li&gt;refatorações não triviais&lt;/li&gt;
&lt;li&gt;mudanças sensíveis à arquitetura&lt;/li&gt;
&lt;li&gt;trabalho que precisa de review do time antes de começar a editar&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nessas situações, pular direto para a implementação costuma ser o movimento errado.&lt;/p&gt;
&lt;h2 id="planejamento-não-é-overhead-quando-a-tarefa-é-real"&gt;Planejamento não é overhead quando a tarefa é real&lt;/h2&gt;
&lt;p&gt;Acho que os times às vezes subestimam quanto tempo perdem quando começam a implementar cedo demais.&lt;/p&gt;
&lt;p&gt;Se o agent:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tocar nos arquivos errados&lt;/li&gt;
&lt;li&gt;escolher a abordagem errada&lt;/li&gt;
&lt;li&gt;ignorar uma restrição importante&lt;/li&gt;
&lt;li&gt;deixar passar um edge case necessário&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;então o começo &amp;ldquo;rápido&amp;rdquo; vira, no fim, um workflow mais lento no geral.&lt;/p&gt;
&lt;p&gt;Por isso eu gosto desse recurso.&lt;/p&gt;
&lt;p&gt;Ele cria espaço para:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;perguntas de esclarecimento&lt;/li&gt;
&lt;li&gt;elaboração do plano&lt;/li&gt;
&lt;li&gt;editar o plano diretamente&lt;/li&gt;
&lt;li&gt;compartilhar o plano antes de começarem as mudanças de código&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Isso não é burocracia. Muitas vezes é apenas boa engenharia.&lt;/p&gt;
&lt;h2 id="o-arquivo-de-plano-em-markdown-é-uma-escolha-inteligente"&gt;O arquivo de plano em markdown é uma escolha inteligente&lt;/h2&gt;
&lt;p&gt;Um detalhe que eu gosto especialmente é que cada plano é salvo em &lt;code&gt;.copilot/plans/plan-{title}.md&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Isso torna a etapa de planejamento tangível.&lt;/p&gt;
&lt;p&gt;Quer dizer que o plano não fica preso dentro de um transcript de chat. Ele vira algo que você pode:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;revisar&lt;/li&gt;
&lt;li&gt;editar&lt;/li&gt;
&lt;li&gt;versionar mentalmente&lt;/li&gt;
&lt;li&gt;discutir com o time&lt;/li&gt;
&lt;li&gt;passar para a implementação de forma mais deliberada&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Isso faz o recurso parecer muito mais sério do que um simples preâmbulo temporário antes da geração de código.&lt;/p&gt;
&lt;h2 id="é-aqui-que-os-workflows-de-ia-começam-a-respeitar-o-processo-do-time"&gt;É aqui que os workflows de IA começam a respeitar o processo do time&lt;/h2&gt;
&lt;p&gt;Acho que esse é um dos sinais mais fortes de que essas ferramentas estão amadurecendo.&lt;/p&gt;
&lt;p&gt;Os melhores workflows de IA para desenvolvedores não são os que eliminam todas as etapas intermediárias. São os que melhoram as etapas intermediárias certas.&lt;/p&gt;
&lt;p&gt;E planejamento é uma dessas etapas.&lt;/p&gt;
&lt;p&gt;Se o plano é forte, implementar fica mais fácil.
Se o plano é fraco, a implementação fica barulhenta.&lt;/p&gt;
&lt;p&gt;Esse recurso reconhece isso diretamente.&lt;/p&gt;
&lt;h2 id="minha-opinião"&gt;Minha opinião&lt;/h2&gt;
&lt;p&gt;Isso não é só uma gentileza de IA.&lt;/p&gt;
&lt;p&gt;É uma melhoria de workflow.&lt;/p&gt;
&lt;p&gt;E, para recursos reais e refatorações reais, é exatamente o tipo de melhoria que pode economizar muito churn desnecessário, ruído de review e rework do tipo &amp;ldquo;isso não é o que eu quis dizer&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Acho que cada vez mais experiências com agents vão acabar precisando de algo assim.&lt;/p&gt;
&lt;p&gt;O Visual Studio chegou lá antes, de um jeito que parece útil.&lt;/p&gt;
&lt;p&gt;Publicação original: &lt;a href="https://devblogs.microsoft.com/visualstudio/plan-before-you-build-introducing-the-plan-agent-in-visual-studio/"&gt;Planeje antes de construir: apresentando o Plan agent no Visual Studio&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>O seu dev loop está cheio de conhecimento implícito, e o Aspire tem a resposta certa</title><link>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/tribal-knowledge-dev-loop-aspire/</link><pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/tribal-knowledge-dev-loop-aspire/</guid><description>Um novo post sobre o Aspire faz um ponto muito forte: muitos times não carecem de ferramentas, carecem de um modelo de aplicação consistente que transforme o conhecimento operacional oculto em algo que humanos, scripts e agentes possam realmente usar.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Este artigo foi traduzido automaticamente. Leia o original &lt;a href="https://thedotnetblog.com/pt/news/emiliano-montesdeoca/tribal-knowledge-dev-loop-aspire/"&gt;aqui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Este pode ser um dos posts mais importantes sobre Aspire para entender &lt;em&gt;por que&lt;/em&gt; o produto importa.&lt;/p&gt;
&lt;p&gt;Não porque ele anuncie uma grande funcionalidade nova.&lt;/p&gt;
&lt;p&gt;Mas porque nomeia um problema que quase toda equipe de engenharia já sentiu e nem toda equipe conseguiu descrever bem:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;o dev loop está cheio de conhecimento implícito.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Essa frase pega porque é verdade.&lt;/p&gt;
&lt;h2 id="o-problema-não-é-falta-de-ferramentas"&gt;O problema não é falta de ferramentas&lt;/h2&gt;
&lt;p&gt;O argumento central do artigo original é excelente: times muitas vezes não carecem de infraestrutura, scripts, dashboards ou comandos.&lt;/p&gt;
&lt;p&gt;O que lhes falta é um modelo coerente que transforme todo o conhecimento operacional oculto em torno da aplicação em algo visível e repetível.&lt;/p&gt;
&lt;p&gt;A verdadeira arquitetura de muitas apps vive em:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;shell history&lt;/li&gt;
&lt;li&gt;scripts espalhados&lt;/li&gt;
&lt;li&gt;trechos de README&lt;/li&gt;
&lt;li&gt;threads do Slack&lt;/li&gt;
&lt;li&gt;aquele único senior engineer que sabe a ordem das operações&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Isso não é um dev loop sustentável para humanos.&lt;/p&gt;
&lt;p&gt;E definitivamente não é para agents.&lt;/p&gt;
&lt;h2 id="a-citação-que-na-minha-opinião-resume-o-post-inteiro"&gt;A citação que, na minha opinião, resume o post inteiro&lt;/h2&gt;
&lt;p&gt;Há uma frase no artigo original que acho que captura muito bem o ponto geral:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;&lt;strong&gt;As aplicações já existem como sistemas. O Aspire torna esses sistemas explícitos, porque sistemas explícitos escalam melhor do que conhecimento implícito.&lt;/strong&gt;&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Essa é a tese inteira em uma linha.&lt;/p&gt;
&lt;p&gt;E, sinceramente, é uma das melhores explicações do Aspire em uma frase que eu já vi até agora.&lt;/p&gt;
&lt;h2 id="por-que-isso-importa-mais-agora-do-que-há-um-ano"&gt;Por que isso importa mais agora do que há um ano&lt;/h2&gt;
&lt;p&gt;Acho que este post encaixa especialmente bem no momento atual porque o desenvolvimento assistido por IA muda o custo da ambiguidade.&lt;/p&gt;
&lt;p&gt;Os humanos conseguem compensar sistemas incompletos de forma surpreendente.&lt;/p&gt;
&lt;p&gt;Lembramos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;qual script executar primeiro&lt;/li&gt;
&lt;li&gt;qual variável de ambiente é secretamente necessária&lt;/li&gt;
&lt;li&gt;qual terminal geralmente mostra os logs úteis&lt;/li&gt;
&lt;li&gt;qual serviço precisa ser reiniciado duas vezes por razões que ninguém documentou&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Os agents são muito piores nesse tipo de folclore operacional oculto.&lt;/p&gt;
&lt;p&gt;Então, se queremos que agents sejam realmente úteis em repositórios reais, precisamos tornar o sistema mais explícito, não menos.&lt;/p&gt;
&lt;p&gt;É por isso que acho esse framing do Aspire importante.&lt;/p&gt;
&lt;h2 id="o-valor-real-do-aspire-não-é-só-orchestration"&gt;O valor real do Aspire não é só orchestration&lt;/h2&gt;
&lt;p&gt;Um erro comum com Aspire é pensar nele apenas como um launcher de app distribuído ou um auxiliar de orchestration local.&lt;/p&gt;
&lt;p&gt;Esse enquadramento é pequeno demais.&lt;/p&gt;
&lt;p&gt;A proposta de valor mais forte é que o Aspire dá à aplicação:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;um modelo&lt;/li&gt;
&lt;li&gt;uma forma&lt;/li&gt;
&lt;li&gt;recursos nomeados&lt;/li&gt;
&lt;li&gt;dependências explícitas&lt;/li&gt;
&lt;li&gt;superfícies de health e operations&lt;/li&gt;
&lt;li&gt;comandos que humanos e automação conseguem entender&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Isso muda o dev loop mais do que às vezes se percebe.&lt;/p&gt;
&lt;p&gt;Porque, quando a app deixa de ser uma pilha de convenções implícitas e passa a ser um sistema com um modelo real, várias coisas ficam mais fáceis ao mesmo tempo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;onboarding&lt;/li&gt;
&lt;li&gt;debugging&lt;/li&gt;
&lt;li&gt;setup repetível&lt;/li&gt;
&lt;li&gt;consistência de CI&lt;/li&gt;
&lt;li&gt;workflows assistidos por IA&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Isso é muita alavanca a partir de uma única decisão de design.&lt;/p&gt;
&lt;h2 id="gosto-especialmente-do-ângulo-comandos-como-operações-de-primeira-classe"&gt;Gosto especialmente do ângulo &amp;ldquo;comandos como operações de primeira classe&amp;rdquo;&lt;/h2&gt;
&lt;p&gt;Outro ponto do post original que acho que merece mais atenção é a passagem de instruções em README para comandos ligados a recursos.&lt;/p&gt;
&lt;p&gt;É uma mudança enganosamente grande.&lt;/p&gt;
&lt;p&gt;Em vez de dizer:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;execute este script, depois aquele, e talvez este outro se o primeiro falhar&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;você pode modelar as operações diretamente no contexto da aplicação.&lt;/p&gt;
&lt;p&gt;Isso significa que humanos podem descobri-las mais facilmente.&lt;/p&gt;
&lt;p&gt;E significa que agents não precisam adivinhar a intenção a partir de prosa.&lt;/p&gt;
&lt;p&gt;É o tipo de coisa que transforma uma aplicação de &amp;ldquo;operável se você já a conhece&amp;rdquo; em &amp;ldquo;operável por design&amp;rdquo;.&lt;/p&gt;
&lt;h2 id="o-que-eu-tiraria-disso-como-team-lead"&gt;O que eu tiraria disso como team lead&lt;/h2&gt;
&lt;p&gt;Se eu olhasse o dev loop do meu time por essa lente, faria algumas perguntas diretas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;quanto da nossa configuração depende da memória?&lt;/li&gt;
&lt;li&gt;quantas ações críticas de desenvolvimento existem apenas em docs ou threads de chat?&lt;/li&gt;
&lt;li&gt;com que frequência novos colaboradores travam em um comportamento invisível do sistema?&lt;/li&gt;
&lt;li&gt;uma ferramenta de automação ou um coding agent conseguiria entender a topologia da nossa app apenas pelo repo?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Se a resposta para a última for &amp;ldquo;nem perto&amp;rdquo;, então este post deve tocar um ponto sensível de forma útil.&lt;/p&gt;
&lt;h2 id="minha-opinião"&gt;Minha opinião&lt;/h2&gt;
&lt;p&gt;Este é um framing muito forte do valor real do Aspire.&lt;/p&gt;
&lt;p&gt;Não é só orchestration.&lt;/p&gt;
&lt;p&gt;É tornar o modelo da aplicação explícito o suficiente para que o sistema fique mais fácil de operar, entender e automatizar.&lt;/p&gt;
&lt;p&gt;Isso importa para pessoas.
Isso importa para times.
E importa ainda mais agora que grande parte do desenvolvimento moderno está se movendo para workflows assistidos por agents.&lt;/p&gt;
&lt;p&gt;Este é exatamente o tipo de artigo que ajuda a explicar por que o Aspire parece cada vez mais relevante para além do rótulo de marketing de .NET.&lt;/p&gt;
&lt;p&gt;Publicação original: &lt;a href="https://devblogs.microsoft.com/aspire/dev-loop-tribal-knowledge/"&gt;O seu dev loop está cheio de conhecimento implícito&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>Os testes end-to-end herméticos do Aspire são o tipo de padrão que mais equipes deveriam adotar</title><link>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/hermetic-aspire-tests-why-this-pattern-matters/</link><pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/pt/news/emiliano-montesdeoca/hermetic-aspire-tests-why-this-pattern-matters/</guid><description>O artigo do Azure Chaos Studio sobre testes mostra um padrão muito prático: ambientes end-to-end herméticos e efêmeros baseados em Aspire que melhoram a confiabilidade tanto para pessoas quanto para o desenvolvimento assistido por IA.</description><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Este post foi traduzido automaticamente. Para a versão original, &lt;a href="https://thedotnetblog.com/pt/news/emiliano-montesdeoca/hermetic-aspire-tests-why-this-pattern-matters/"&gt;clique aqui&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Testes end-to-end instáveis são caros de um jeito que nem sempre aparece em um dashboard.&lt;/p&gt;
&lt;p&gt;Eles não apenas falham. Eles treinam lentamente o time a parar de confiar no loop de feedback.&lt;/p&gt;
&lt;p&gt;Por isso este artigo sobre &lt;strong&gt;Azure Chaos Studio + Aspire&lt;/strong&gt; me chamou atenção imediatamente. Não é um anúncio de produto chamativo. É uma história de engenharia pé no chão sobre como fazer testes end-to-end pararem de parecer uma negociação com a sorte.&lt;/p&gt;
&lt;p&gt;E, sinceramente? Acho que mais equipes deveriam adotar esse padrão.&lt;/p&gt;
&lt;h2 id="a-ideia-central-é-simples-mas-o-ganho-é-enorme"&gt;A ideia central é simples, mas o ganho é enorme&lt;/h2&gt;
&lt;p&gt;O passo-chave é dar a cada teste seu próprio &lt;strong&gt;ambiente hermético e efêmero&lt;/strong&gt;, com serviços reais, dependências reais e um startup explícito baseado em saúde.&lt;/p&gt;
&lt;p&gt;Isso parece óbvio quando você lê em uma frase. Em sistemas reais, é muito mais difícil, principalmente quando dependências de nuvem, ambientes compartilhados e serviços distribuídos entram na jogada.&lt;/p&gt;
&lt;p&gt;O artigo original descreve o problema com muita clareza: ambientes de teste compartilhados trazem &amp;ldquo;&lt;strong&gt;cross-talk, flaky behavior e mensagens de grupo do tipo &amp;lsquo;quem quebrou o staging?&amp;rsquo;&lt;/strong&gt;&amp;rdquo; como custo operacional.&lt;/p&gt;
&lt;p&gt;Essa frase é engraçada porque dói.&lt;/p&gt;
&lt;p&gt;Equipe demais aceita esse acordo como algo normal. Eu não acho que deveria ser assim.&lt;/p&gt;
&lt;h2 id="por-que-esse-padrão-importa-além-dos-testes"&gt;Por que esse padrão importa além dos testes&lt;/h2&gt;
&lt;p&gt;O que eu mais gosto aqui é que o artigo não diz apenas: &amp;ldquo;tornamos nossos testes mais confiáveis&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Ele está dizendo algo maior:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;se o seu sistema distribuído é difícil de reproduzir, difícil de isolar e difícil de verificar, todo o seu ciclo de engenharia desacelera.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Isso afeta mais do que CI.&lt;/p&gt;
&lt;p&gt;Afeta:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;o quanto os desenvolvedores se sentem confiantes para refatorar&lt;/li&gt;
&lt;li&gt;a rapidez com que regressões são diagnosticadas&lt;/li&gt;
&lt;li&gt;quão seguro é tentar mudanças arquiteturais maiores&lt;/li&gt;
&lt;li&gt;o quanto o time confia na validação automatizada&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;E, em 2026, também afeta o quão útil o desenvolvimento assistido por IA pode se tornar.&lt;/p&gt;
&lt;h2 id="a-citação-mais-importante-do-post"&gt;A citação mais importante do post&lt;/h2&gt;
&lt;p&gt;Há uma linha no artigo que acho que vale repetir:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;&lt;strong&gt;Agents não precisam ser perfeitos. Eles precisam ser verificáveis.&lt;/strong&gt;&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Esse é um framing excelente.&lt;/p&gt;
&lt;p&gt;As pessoas passam muito tempo perguntando se os agents de código com IA são confiáveis o suficiente para ajudar em trabalho não trivial. Acho que a pergunta melhor é se &lt;strong&gt;nossos sistemas são testáveis o suficiente para julgar esse trabalho corretamente&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Se um agent propõe um refactor relevante e o seu único sinal de segurança é uma pilha de checks end-to-end frágeis e semi-aleatórios rodando em um ambiente compartilhado, então o problema não está só no agent.&lt;/p&gt;
&lt;p&gt;O problema está no seu modelo de validação.&lt;/p&gt;
&lt;p&gt;Esse padrão Aspire melhora isso drasticamente.&lt;/p&gt;
&lt;h2 id="o-que-torna-essa-implementação-especialmente-boa"&gt;O que torna essa implementação especialmente boa&lt;/h2&gt;
&lt;p&gt;Vários elementos da história original fazem disso muito mais do que um post vago de &amp;ldquo;melhoramos nossos testes&amp;rdquo;.&lt;/p&gt;
&lt;h3 id="1-grafo-de-serviços-real-não-teatro-de-mocks-falsos"&gt;1. Grafo de serviços real, não teatro de mocks falsos&lt;/h3&gt;
&lt;p&gt;Os testes não são construídos em cima de um monte de mocks desconectados fingindo ser validação end-to-end.&lt;/p&gt;
&lt;p&gt;Eles executam os &lt;strong&gt;binários reais&lt;/strong&gt;, conectam emuladores onde possível e usam o mesmo application model usado no desenvolvimento local.&lt;/p&gt;
&lt;p&gt;Isso importa.&lt;/p&gt;
&lt;p&gt;Porque, no momento em que os testes end-to-end viram teatro de mock contra mock, eles deixam de dizer algo confiável sobre a composição real.&lt;/p&gt;
&lt;h3 id="2-startup-baseado-em-health-em-vez-de-sleeps-mágicos"&gt;2. Startup baseado em health em vez de sleeps mágicos&lt;/h3&gt;
&lt;p&gt;Essa parte é maior do que parece.&lt;/p&gt;
&lt;p&gt;O artigo deixa claro que os testes esperam health real com &lt;code&gt;WaitForResourceHealthyAsync&lt;/code&gt;, em vez de depender de palpites arbitrários de tempo.&lt;/p&gt;
&lt;p&gt;Isso faz uma diferença enorme.&lt;/p&gt;
&lt;p&gt;Uma suite que diz &amp;ldquo;durma 30 segundos e torça pelo melhor&amp;rdquo; está, na prática, documentando incerteza. Uma suite que espera readiness real está documentando a intenção do sistema.&lt;/p&gt;
&lt;h3 id="3-o-mesmo-modelo-impulsiona-desenvolvimento-local-e-testes"&gt;3. O mesmo modelo impulsiona desenvolvimento local e testes&lt;/h3&gt;
&lt;p&gt;Eu gosto muito disso porque encaixa bem nas histórias mais fortes do Aspire em geral.&lt;/p&gt;
&lt;p&gt;O mesmo application model impulsiona:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;desenvolvimento local&lt;/li&gt;
&lt;li&gt;wiring de serviços&lt;/li&gt;
&lt;li&gt;dependências emuladas&lt;/li&gt;
&lt;li&gt;health checks&lt;/li&gt;
&lt;li&gt;orquestração de testes herméticos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Isso reduz drift, e drift é um dos assassinos silenciosos da confiança.&lt;/p&gt;
&lt;h2 id="esse-tipo-de-investimento-em-devex-costuma-ser-subestimado"&gt;Esse tipo de investimento em devex costuma ser subestimado&lt;/h2&gt;
&lt;p&gt;Um dos motivos pelos quais eu queria que este post fosse mais longo do que uma reação rápida é que acho que esse tipo de melhoria de engenharia costuma ser subestimado.&lt;/p&gt;
&lt;p&gt;Não é chamativo.&lt;/p&gt;
&lt;p&gt;Não demo como uma nova funcionalidade de IA.&lt;/p&gt;
&lt;p&gt;E nem sempre vira um slide que empolga executivos.&lt;/p&gt;
&lt;p&gt;Mas, com o tempo, cria algo muito mais valioso: &lt;strong&gt;um time que consegue se mover mais rápido sem mentir para si mesmo sobre qualidade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Isso é grande.&lt;/p&gt;
&lt;p&gt;O artigo diz que eles agora executam cerca de &lt;strong&gt;90 testes herméticos&lt;/strong&gt;, incluindo cenários como queda de zona, falha de DNS e falha de replicação geográfica. Isso não é só uma higiene de testes melhor. É um modelo de confiança muito mais forte para uma plataforma distribuída.&lt;/p&gt;
&lt;h2 id="o-que-eu-tiraria-disso-se-estivesse-operando-um-sistema-net-distribuído"&gt;O que eu tiraria disso se estivesse operando um sistema .NET distribuído&lt;/h2&gt;
&lt;p&gt;Se você trabalha hoje com serviços distribuídos, Aspire e pipelines de CI/CD, eu tiraria isso imediatamente:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;pare de normalizar flakiness em ambientes compartilhados&lt;/li&gt;
&lt;li&gt;migre para gates de startup baseados em health sempre que possível&lt;/li&gt;
&lt;li&gt;trate o AppHost como código real de orquestração de nível production&lt;/li&gt;
&lt;li&gt;construa checks end-to-end que validem a composição de serviços, e não apenas a correção de cada serviço isoladamente&lt;/li&gt;
&lt;li&gt;se você estiver adotando desenvolvimento assistido por IA, invista primeiro em &lt;strong&gt;checkability&lt;/strong&gt; antes de correr atrás de mais amplitude de automação&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Esse último ponto é o que mais equipes precisam ouvir.&lt;/p&gt;
&lt;h2 id="minha-opinião"&gt;Minha opinião&lt;/h2&gt;
&lt;p&gt;Este é um dos posts mais fortes sobre Aspire deste lote porque resolve um problema muito prático.&lt;/p&gt;
&lt;p&gt;Ele não tenta impressionar com abstração. Mostra como deixar testes end-to-end mais determinísticos, mais úteis e mais confiáveis em um sistema distribuído real.&lt;/p&gt;
&lt;p&gt;E, assim que você enxerga a conexão com desenvolvimento assistido por agents, o padrão fica ainda mais convincente.&lt;/p&gt;
&lt;p&gt;Se a sua história de testes end-to-end ainda depende de ambientes compartilhados, conhecimento escondido de setup e um pouco de oração, vale muito a pena estudar isso.&lt;/p&gt;
&lt;p&gt;Post original: &lt;a href="https://devblogs.microsoft.com/aspire/hermetic-aspire-tests-chaos-studio/"&gt;How Azure Chaos Studio ships with hermetic Aspire end-to-end tests&lt;/a&gt;&lt;/p&gt;</content:encoded></item></channel></rss>