<?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>Development-Workflow | The .NET Blog</title><link>https://thedotnetblog.com/tags/development-workflow/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>en</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Tue, 25 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/tags/development-workflow/index.xml" rel="self" type="application/rss+xml"/><item><title>Making Agents Practical for Real-World Development</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/vscode-making-agents-practical/</link><pubDate>Tue, 25 Aug 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/vscode-making-agents-practical/</guid><description>VS Code's agent improvements address scale, memory, steering, hooks, browser verification, and reusable skills for multi-turn development work.</description><content:encoded>&lt;h1 id="making-agents-practical-for-real-world-development"&gt;Making Agents Practical for Real-World Development&lt;/h1&gt;
&lt;p&gt;Original source: &lt;a href="https://code.visualstudio.com/blogs/2026/03/05/making-agents-practical-for-real-world-development"&gt;Making agents practical for real-world development&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The gap between an impressive agent demo and a useful Thursday afternoon is mostly operational. Real repositories have large outputs, accumulated conventions, interruptions, failed commands, and decisions that need to survive more than one chat turn.&lt;/p&gt;
&lt;p&gt;VS Code&amp;rsquo;s recent agent work is aimed at that gap. The useful story is not one spectacular capability. It is the collection of small controls that make an agent easier to supervise across a real development loop.&lt;/p&gt;
&lt;h2 id="scale-the-output-without-flooding-the-session"&gt;Scale the Output Without Flooding the Session&lt;/h2&gt;
&lt;p&gt;Large terminal output and generated files can overwhelm a context window. VS Code now streams large outputs to temporary files and makes terminal output collapsible, so the conversation can remain focused on the decision rather than displaying every line.&lt;/p&gt;
&lt;p&gt;That is relevant to .NET projects with verbose restores, test runs, generated migrations, and build logs. The agent can work with the result without turning the conversation into a wall of output.&lt;/p&gt;
&lt;p&gt;Streaming does not solve architectural discovery. An agent still needs the relevant project structure, domain rules, and design constraints. If a migration touches a large model, point the agent to the schema and tests that define the intended behavior. Output management helps the context window; it does not create missing context.&lt;/p&gt;
&lt;p&gt;A good practice is to keep large artifacts inspectable and named. Ask the agent to summarize the result, identify the file containing the full output, and state which lines or failures drove its next action.&lt;/p&gt;
&lt;h2 id="memory-needs-human-direction"&gt;Memory Needs Human Direction&lt;/h2&gt;
&lt;p&gt;Agent memory can carry useful lessons across sessions, but the developer still needs to decide what matters. Manual context compaction lets you preserve specific decisions instead of trusting an automatic summary to retain every important detail.&lt;/p&gt;
&lt;p&gt;For a long-running .NET feature, write instructions such as preserving the authentication flow decision or the database transaction boundary when compacting. Then verify the next response against the actual code. Memory should reduce repetition, not become an invisible source of truth.&lt;/p&gt;
&lt;p&gt;The same principle applies to the repository. If a convention is important, encode it in tests, documentation, or project instructions. A chat memory can help today; source control is what the whole team can inspect tomorrow.&lt;/p&gt;
&lt;h2 id="redirect-without-throwing-away-the-work"&gt;Redirect Without Throwing Away the Work&lt;/h2&gt;
&lt;p&gt;An agent that takes the wrong direction creates an awkward choice: wait for it to finish, cancel it, or start over. Steering and message queueing make that choice less costly. You can redirect the next step while allowing the current operation to finish when it is safe, or queue a follow-up when the plan is still sound.&lt;/p&gt;
&lt;p&gt;Forking a chat session is useful when an architectural question has multiple plausible answers. Explore one dependency injection or data-access approach in a fork, keep the original available, and compare the resulting plans before changing the repository.&lt;/p&gt;
&lt;p&gt;These controls do not make generated decisions correct. They make supervision cheaper, which is a more durable improvement.&lt;/p&gt;
&lt;h2 id="hooks-encode-team-standards"&gt;Hooks Encode Team Standards&lt;/h2&gt;
&lt;p&gt;Hooks run at lifecycle points such as session start, before edits, or after tool calls. They turn a repeated reminder into a repository-level guardrail. A hook can request formatting, block a sensitive file change, or trigger a validation action.&lt;/p&gt;
&lt;p&gt;For a .NET team, use hooks carefully. A formatting check may be a good default. Blocking edits to a deployment file may also be sensible. A hook that runs a long integration suite before every small edit will frustrate developers and encourage them to disable the whole system.&lt;/p&gt;
&lt;p&gt;Keep the policy close to the risk. Make the hook&amp;rsquo;s failure message actionable, and ensure the command works in the same environment as the agent. Hooks are automation, so they deserve the same review as build scripts.&lt;/p&gt;
&lt;h2 id="browser-tools-verify-the-running-result"&gt;Browser Tools Verify the Running Result&lt;/h2&gt;
&lt;p&gt;Browser agent tools can navigate, interact with, and capture screenshots of a running web application. For ASP.NET Core and Blazor developers, that provides a path from generated UI code to an observable result inside the editor.&lt;/p&gt;
&lt;p&gt;Use it for bounded checks: does the route load, does the component display the expected test data, does a form show the validation state? Keep authentication, real customer data, and destructive actions outside the experiment. A browser screenshot is evidence of one state, not a replacement for automated tests or accessibility review.&lt;/p&gt;
&lt;h2 id="skills-make-good-workflows-repeatable"&gt;Skills Make Good Workflows Repeatable&lt;/h2&gt;
&lt;p&gt;Reusable skills package procedures that teams otherwise restate in every session. A .NET team might define one for preparing an Entity Framework migration, another for adding OpenAPI documentation, and another for reviewing asynchronous code.&lt;/p&gt;
&lt;p&gt;The best skill has a narrow trigger, known inputs, and a validation command. Start with a procedure that is repetitive but not ambiguous. A skill should make team knowledge easier to apply, not hide a complicated decision behind a slash command.&lt;/p&gt;
&lt;h2 id="the-practical-recommendation"&gt;The Practical Recommendation&lt;/h2&gt;
&lt;p&gt;Adopt these capabilities in layers. First make large outputs and session steering comfortable. Then add one hook and one project-specific skill. Finally, try browser verification for a local web workflow.&lt;/p&gt;
&lt;p&gt;Measure the result by review effort and recovery time, not by how autonomous the agent appears. Practical agents are the ones a team can understand, redirect, and validate when the happy path ends.&lt;/p&gt;</content:encoded></item><item><title>VS Code 1.110: Making Agents Practical for Complex Tasks</title><link>https://thedotnetblog.com/news/emiliano-montesdeoca/vscode-1-110-agent-improvements/</link><pubDate>Mon, 24 Aug 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/news/emiliano-montesdeoca/vscode-1-110-agent-improvements/</guid><description>The February release brings better agent visibility, session persistence, browser verification, and extensibility to long-running .NET development workflows.</description><content:encoded>&lt;h1 id="vs-code-1110-making-agents-practical-for-complex-tasks"&gt;VS Code 1.110: Making Agents Practical for Complex Tasks&lt;/h1&gt;
&lt;p&gt;Original source: &lt;a href="https://code.visualstudio.com/updates/v1_110"&gt;February 2026 (version 1.110)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;VS Code 1.110 focuses on the part of agent development that demos tend to skip: operating an agent once the task is large, multi-step, and connected to a real codebase. The release adds more visibility into execution, better ways to preserve context, browser tools for verification, and extensibility that can be packaged for reuse.&lt;/p&gt;
&lt;p&gt;For .NET developers, that changes the question from &amp;ldquo;can an agent generate this?&amp;rdquo; to &amp;ldquo;can I supervise this workflow without guessing what happened?&amp;rdquo;&lt;/p&gt;
&lt;h2 id="more-visibility-into-agent-execution"&gt;More Visibility Into Agent Execution&lt;/h2&gt;
&lt;p&gt;The Agent Debug panel replaces the older diagnostics-oriented experience with a view of the session&amp;rsquo;s activity. It shows which prompt files, skills, hooks, and custom configurations were loaded, along with the order of important events and tool calls.&lt;/p&gt;
&lt;p&gt;That is useful even when the agent appears to be behaving correctly. If a custom instruction did not load, a tool received an unexpected parameter, or a hook ran at the wrong point, the debug view gives you evidence instead of a vague failure. For a .NET repository with project instructions, analyzers, and multiple services, that distinction matters.&lt;/p&gt;
&lt;p&gt;Use the panel when developing custom agents or skills. Confirm the intended files were loaded, inspect the tool boundary, and keep a record of what the session actually did. It is especially valuable when two agents are running in parallel and their results seem inconsistent.&lt;/p&gt;
&lt;p&gt;The permission model is also easier to control from a session. Commands such as &lt;code&gt;/autoApprove&lt;/code&gt; and &lt;code&gt;/disableAutoApprove&lt;/code&gt; make the autonomy decision explicit in the conversation. That convenience comes with a serious warning: skipping confirmations allows terminal commands and edits to proceed without an approval pause. Enable it only after the task and repository boundary are clear.&lt;/p&gt;
&lt;h2 id="browser-verification-closes-a-loop"&gt;Browser Verification Closes a Loop&lt;/h2&gt;
&lt;p&gt;The release adds agentic browser tools for navigating, interacting with, and taking screenshots of web pages from the editor. An agent can make a change, inspect the running application, and use what it sees to guide the next iteration.&lt;/p&gt;
&lt;p&gt;For ASP.NET Core and Blazor work, this can shorten the distance between a generated UI change and a verified result. A developer can ask an agent to implement a component, start the local application, and inspect the rendered page rather than relying only on markup and compiler output.&lt;/p&gt;
&lt;p&gt;The feature is experimental, and organization administrators can control it. Browser support also depends on the model and tool configuration. Treat it as a verification aid, not as permission to skip human review. A screenshot can show that a page renders; it does not prove that authorization, accessibility, data validation, or error handling are correct.&lt;/p&gt;
&lt;p&gt;Keep browser checks bounded. Use test data, avoid real production sessions, and make the expected state explicit. The more powerful the browser tool becomes, the more important the environment boundary is.&lt;/p&gt;
&lt;h2 id="preserve-context-without-losing-control"&gt;Preserve Context Without Losing Control&lt;/h2&gt;
&lt;p&gt;Long-running sessions become easier to manage with plan memory, manual &lt;code&gt;/compact&lt;/code&gt; control, and chat forking. Instead of relying entirely on automatic compaction, a developer can decide what should survive a context reduction. Forking lets you explore an alternative design without destroying the original conversation.&lt;/p&gt;
&lt;p&gt;That is a good fit for multi-day .NET work. Preserve decisions about a database schema or API contract, fork before exploring a different dependency injection approach, and keep the original session available as a reference.&lt;/p&gt;
&lt;p&gt;Memory is not a substitute for durable project documentation. If a decision matters after the chat is gone, put it in the repository: an ADR, a design note, a test, or a project instruction. Session memory is useful for continuity; source control remains the durable record.&lt;/p&gt;
&lt;h2 id="plugins-and-skills-make-repetition-explicit"&gt;Plugins and Skills Make Repetition Explicit&lt;/h2&gt;
&lt;p&gt;Agent plugins package skills, commands, agents, MCP servers, and hooks. The release also supports creating customizations from chat through commands such as &lt;code&gt;/create-prompt&lt;/code&gt;, &lt;code&gt;/create-skill&lt;/code&gt;, &lt;code&gt;/create-agent&lt;/code&gt;, and &lt;code&gt;/create-hook&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;For .NET teams, this opens a practical path for repeatable work: a skill for adding an Entity Framework migration, a hook that runs formatting checks, or an agent that reviews an ASP.NET endpoint against local conventions. Start with a workflow you already repeat and make its inputs and outputs explicit.&lt;/p&gt;
&lt;p&gt;Do not package a vague instruction and call it automation. A useful skill states what it may inspect, what it may change, and which validation command must pass.&lt;/p&gt;
&lt;h2 id="recommendations-for-net-developers"&gt;Recommendations for .NET Developers&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Use the Agent Debug panel when building custom skills or troubleshooting an unexpected tool call.&lt;/li&gt;
&lt;li&gt;Try browser tools against a local ASP.NET or Blazor app with non-sensitive test data.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;/compact&lt;/code&gt; deliberately and record durable architectural decisions in the repository.&lt;/li&gt;
&lt;li&gt;Keep auto-approval scoped to trusted, disposable environments and bounded tasks.&lt;/li&gt;
&lt;li&gt;Turn repeated .NET workflows into small skills with explicit validation.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;VS Code 1.110 is a maturity release. The headline is not that agents can do more; it is that developers can see, interrupt, preserve, and verify more of what agents do.&lt;/p&gt;</content:encoded></item></channel></rss>