惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Last Watchdog
The Last Watchdog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
GbyAI
GbyAI
Y
Y Combinator Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
The GitHub Blog
The GitHub Blog
博客园_首页
小众软件
小众软件
I
InfoQ
J
Java Code Geeks
月光博客
月光博客
S
Secure Thoughts
Microsoft Security Blog
Microsoft Security Blog
V
Visual Studio Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Stack Overflow Blog
Stack Overflow Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
N
News and Events Feed by Topic
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
The Cloudflare Blog
T
Threat Research - Cisco Blogs
A
About on SuperTechFans
H
Help Net Security
MongoDB | Blog
MongoDB | Blog
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Latest news
Latest news
G
GRAHAM CLULEY
IT之家
IT之家
C
Cisco Blogs
Last Week in AI
Last Week in AI
Engineering at Meta
Engineering at Meta
L
LangChain Blog
The Register - Security
The Register - Security
SecWiki News
SecWiki News
M
MIT News - Artificial intelligence
NISL@THU
NISL@THU
T
Tenable Blog
博客园 - Franky
美团技术团队
I
Intezer
U
Unit 42
雷峰网
雷峰网
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
SegmentFault 最新的问题
C
Cyber Attacks, Cyber Crime and Cyber Security

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
Claude Code para desarrolladores .NET: De cero a productivo en VS Code y Visual Studio
Juan Gómez · 2026-06-16 · via DEV Community

Claude Code para desarrolladores .NET: De cero a productivo en VS Code y Visual Studio

Las herramientas de IA se sienten mágicas los primeros días. Le preguntas algo, te responde bien, y piensas: "esto va a cambiar todo". Luego pasan unas semanas, el contexto se confunde, las respuestas se vuelven genéricas, y empiezas a sentir que estás teniendo una conversación con alguien que tiene amnesia selectiva.

El problema no es la IA. El problema es que nadie te explicó cómo funciona realmente.

Este artículo desmitifica Claude Code para desarrolladores .NET. No es un tutorial de "mira qué cool es esto" — es una guía práctica de cómo funciona, por qué funciona así, y cómo sacarle el máximo provecho en proyectos C# reales, tanto en VS Code como en Visual Studio 2022/2026.

Qué es Claude Code (y qué no es)

Claude Code no es una ventana de chat glorificada. Es una CLI (interfaz de línea de comandos) que corre directamente en tu terminal y tiene acceso real a tu sistema de archivos, puede ejecutar comandos, leer y editar archivos, y mantener contexto sobre tu proyecto.

La diferencia con "preguntarle a Claude en el navegador" es enorme:

  • En el navegador, pegas código manualmente, pierdes contexto entre sesiones, y Claude no sabe nada de tu proyecto más allá de lo que tú le dices.
  • Con Claude Code, Claude vive en tu repositorio. Lee archivos, ejecuta dotnet build, corre tus tests, y entiende la arquitectura de tu solución.

Además de la CLI, existe una extensión para VS Code que integra Claude Code directamente en el editor — con contexto automático de lo que tienes abierto y seleccionado. Para Visual Studio, la historia es diferente (y la contaremos honestamente más adelante).

Instalación y setup

Prerrequisitos

  • Node.js 22 LTS o superior
  • Una cuenta en claude.ai con acceso a Claude Code

Instalar la CLI

npm install -g @anthropic-ai/claude-code

Verifica la instalación:

claude --version

Para iniciar una sesión interactiva en tu proyecto, navega al directorio raíz y ejecuta:

claude

VS Code — integración completa

Instala la extensión oficial desde el Marketplace:

  • Nombre: Claude Code
  • ID: anthropic.claude-code
  • Requiere VS Code 1.98 o superior

Una vez instalada, Claude Code aparece en la barra lateral. La integración es profunda: cuando tienes un archivo abierto o código seleccionado, Claude lo recibe automáticamente como contexto. No necesitas copiar y pegar nada.

JetBrains Rider también cuenta con integración completa a través de su plugin oficial — si tu equipo usa Rider, el workflow es muy similar al de VS Code.

Visual Studio 2022/2026 — la verdad sin rodeos

Visual Studio ha sido el rey del desarrollo .NET por décadas. Simplemente aún no se ha enterado de que existe Claude.

A junio de 2026, no existe una extensión oficial de Claude Code para Visual Studio. Punto. No hay workaround mágico que cambie eso.

Lo que sí funciona, y funciona bien, es usar la terminal integrada de Visual Studio:

  1. Ve a Ver > Terminal (o Ctrl+\, Ctrl+`)
  2. Navega al directorio raíz de tu solución (normalmente ya estás ahí)
  3. Ejecuta claude

Claude lee tu repositorio exactamente igual que en VS Code. La diferencia es que no tienes el contexto visual automático — tendrás que mencionar archivos explícitamente con @ (lo veremos en detalle más adelante). Para muchas tareas de refactoring, generación de código y revisión de arquitectura, la terminal es más que suficiente.

Muchos desarrolladores .NET tienen ambos IDEs abiertos en paralelo: Visual Studio para debugging avanzado, diseñadores de formularios, y herramientas de profiling; VS Code para trabajar con Claude Code.

CLAUDE.md — el cerebro de la operación

Aquí está el insight más importante del artículo, así que léelo despacio.

Claude Code no funciona como un chatbot con memoria persistente. Cada vez que inicias una sesión, parte de cero. Entonces, ¿cómo "conoce" tu proyecto? A través de un archivo llamado CLAUDE.md.

Cómo Claude descubre CLAUDE.md

Cuando ejecutas claude desde un directorio, Claude realiza un recorrido del filesystem hacia arriba desde tu directorio de trabajo actual (CWD), buscando archivos CLAUDE.md. Además, carga CLAUDE.md de los subdirectorios de forma lazy a medida que accede a ellos.

Esto significa dos cosas importantes:

  1. No está basado en archivos de proyecto — Claude no lee tu .csproj para descubrir CLAUDE.md. Lo descubre por ubicación en el filesystem. Si tu CLAUDE.md está en la raíz del repo y ejecutas claude desde ahí, se carga. Si lo ejecutas desde un subdirectorio, también lo cargará (porque sube hacia arriba).

  2. En Visual Studio, CLAUDE.md no aparece en el Explorador de Soluciones — porque no está referenciado en ningún .csproj. Pero Claude sí lo carga. No necesitas agregarlo al proyecto. De hecho, es mejor que no lo hagas — es un archivo de contexto para la IA, no un recurso de tu aplicación.

Verificar qué está cargado

Puedes verificar en cualquier momento qué archivos CLAUDE.md tiene cargados Claude con el comando:

/memory

Esto muestra el contenido actual de memoria, incluyendo todos los CLAUDE.md activos en la sesión.

Generar un CLAUDE.md inicial

Si tu proyecto no tiene CLAUDE.md, Claude puede generarlo leyendo el repo:

/init

Esto analiza tu código, estructura de carpetas, y archivos de configuración, y produce un CLAUDE.md base que puedes refinar.

Ejemplo práctico: CLAUDE.md para un proyecto .NET

Aquí un ejemplo completo y realista para una API de e-commerce en .NET 10:

# ECommerceApi — Contexto para Claude Code

## Descripción del proyecto
API REST para gestión de catálogo y órdenes de compra.
Stack: .NET 10, C# 14, Entity Framework Core 9, PostgreSQL, MassTransit (RabbitMQ).
Arquitectura: Clean Architecture con CQRS via MediatR.

## Comandos esenciales

### Build y tests
dotnet build ECommerceApi.sln
dotnet test ECommerceApi.sln --logger "console;verbosity=normal"
dotnet test --filter "Category=Unit"
dotnet test --filter "Category=Integration"

### Migraciones EF Core
cd src/ECommerceApi.Infrastructure
dotnet ef migrations add <NombreMigracion> --startup-project ../ECommerceApi.Api
dotnet ef database update --startup-project ../ECommerceApi.Api

### Ejecución local
cd src/ECommerceApi.Api
dotnet run

## Estructura del proyecto
src/
  ECommerceApi.Api/           # Controllers, middleware, DI setup
  ECommerceApi.Application/   # Commands, queries, DTOs, validators
  ECommerceApi.Domain/        # Entities, value objects, domain events
  ECommerceApi.Infrastructure/ # EF Core, repositories, external services
tests/
  ECommerceApi.UnitTests/
  ECommerceApi.IntegrationTests/

## Convenciones de código
- Usa records para DTOs y value objects
- Usa init-only properties en domain entities cuando sea posible
- Pattern matching exhaustivo en switches sobre discriminated unions
- Nullable reference types habilitados — sin supresiones con !
- No uses var — tipado explícito siempre
- Nombres en inglés para código, comentarios pueden ser en español

## Decisiones de arquitectura importantes
- Los controllers SOLO llaman a MediatR.Send() — lógica cero en controllers
- Validaciones con FluentValidation en el pipeline de MediatR (no en controllers)
- Los domain events se despachan DESPUÉS de SaveChanges (outbox pattern)
- Los integration tests levantan PostgreSQL en Docker via Testcontainers

## Lo que NO hacer
- No agregar lógica de negocio en Infrastructure
- No inyectar DbContext directamente en Application — solo via repositorios
- No usar AutoMapper — mappings explícitos con métodos ToDto() / ToDomain()

Este archivo transforma a Claude de "asistente genérico de C#" a "colega que conoce tu proyecto". La diferencia en calidad de respuestas es notable.

Dando contexto a Claude

Tener un buen CLAUDE.md es el 50% del trabajo. El otro 50% es saber cómo dar contexto durante la sesión.

Menciones con @

La sintaxis @ te permite referenciar archivos y directorios específicos:

@Program.cs                    # Archivo completo
@src/Application/              # Directorio entero
@appsettings.json#1-20         # Líneas 1 a 20 del archivo
@src/Domain/Entities/Order.cs  # Archivo en ruta relativa

Ejemplos de uso en conversación:

Revisa @src/Application/Orders/Commands/CreateOrderCommand.cs
y dime si hay algo que mejorar con los nuevos features de C# 14.

Tengo un bug en @src/Infrastructure/Repositories/OrderRepository.cs#45-80.
El método GetPendingOrders() devuelve órdenes canceladas. ¿Ves el problema?

Contexto automático en VS Code

En VS Code con la extensión instalada, el archivo que tienes abierto en el editor activo se comparte automáticamente como contexto. Si seleccionas un bloque de código, solo ese bloque se incluye. Esto elimina mucho del trabajo manual de menciones @.

En Visual Studio (terminal), necesitas ser explícito con @ — lo cual en realidad te obliga a ser más preciso sobre qué quieres mostrarle a Claude, lo cual no es necesariamente malo.

Gestionar el contexto largo con /compact

Las sesiones largas tienen un límite de tokens. Cuando el contexto se alarga demasiado, Claude puede empezar a "olvidar" cosas del inicio de la conversación.

El comando /compact resume el historial de la sesión actual, preservando los puntos clave pero reduciendo el tamaño del contexto:

/compact

Úsalo proactivamente cuando llevas un rato en la misma sesión, antes de llegar al límite. Es como hacer un checkpoint.

Skills — comandos personalizados para tu flujo

Los Skills son la característica más poderosa de Claude Code para equipos y proyectos recurrentes. Un Skill es esencialmente un comando personalizado que encapsula un flujo de trabajo completo.

Dónde viven los Skills

Hay dos ubicaciones:

Ubicación Alcance Ruta
Personal Solo tú, todos tus proyectos ~/.claude/skills/<nombre>/SKILL.md
Proyecto Todo el equipo, este repo .claude/skills/<nombre>/SKILL.md

Los Skills de proyecto se versiona junto al código — cuando alguien hace git clone, obtiene los Skills también. Ideal para workflows específicos del equipo.

Cómo invocar un Skill

Simplemente escribe /nombre-del-skill en Claude Code:

/dotnet-test
/csharp-review
/ef-migrate

Claude lee el archivo SKILL.md correspondiente y ejecuta el flujo definido en él.

Ejemplo 1: /dotnet-test

Crea el archivo .claude/skills/dotnet-test/SKILL.md:

# dotnet-test

Ejecuta la suite de tests del proyecto y presenta los resultados de forma clara.

## Pasos

1. Ejecuta `dotnet test ECommerceApi.sln --logger "console;verbosity=normal"`
2. Si hay fallos, muestra SOLO los tests fallidos con:
   - Nombre completo del test
   - El mensaje de error
   - La línea del código donde falló
3. Si todos pasan, confirma con un resumen: total de tests, tiempo de ejecución
4. Si hay errores de compilación, muéstralos primero antes de hablar de tests

## Notas
- No muestres los tests que pasaron a menos que el usuario lo pida
- Si el build falla, no intentes interpretar qué tests fallaron

Ejemplo 2: /csharp-review

Crea .claude/skills/csharp-review/SKILL.md:

# csharp-review

Revisa código C# buscando oportunidades de modernización con C# 14 / .NET 10.

## Qué revisar

### Records y tipos de valor
- ¿Se puede reemplazar una clase inmutable con un record?
- ¿Los DTOs usan record en vez de class?
- ¿Se usan init-only properties donde corresponde?

### Pattern matching
- ¿Hay cadenas de if/else que se pueden reemplazar con switch expressions?
- ¿Los switches son exhaustivos sobre discriminated unions?
- ¿Se usa list patterns donde aplica?

### Nullable reference types
- ¿Hay supresiones con ! sin justificación?
- ¿Los parámetros nullable están correctamente anotados?

### field keyword (C# 14)
- ¿Hay propiedades con backing fields explícitos que se pueden simplificar con field?

### Async/await
- ¿Hay .Result o .Wait() que deberían ser await?
- ¿Se usa ConfigureAwait correctamente en librerías?

## Formato de respuesta
Para cada issue encontrado:
- Código original
- Código mejorado
- Una línea explicando por qué es mejor

No reportes lo que ya está bien — solo oportunidades de mejora.

Ejemplo 3: /ef-migrate

Crea .claude/skills/ef-migrate/SKILL.md:

# ef-migrate

Guía para agregar una migración de Entity Framework Core al proyecto.

## Pasos

1. Ejecuta `dotnet ef migrations list --project src/ECommerceApi.Infrastructure --startup-project src/ECommerceApi.Api`
   para mostrar las migraciones existentes

2. Pregunta al usuario:
   - ¿Qué cambio hiciste en el modelo de dominio?
   - ¿Qué nombre quieres para la migración? (sugerencia: usa PascalCase descriptivo, ej: AddOrderShippingAddress)

3. Ejecuta:
   `dotnet ef migrations add <NombreMigracion> --project src/ECommerceApi.Infrastructure --startup-project src/ECommerceApi.Api`

4. Lee el archivo de migración generado y verifica:
   - Que el Up() tiene el cambio esperado
   - Que el Down() revierte correctamente
   - Que no hay columnas `nvarchar(max)` donde debería haber un tamaño específico

5. Si el usuario quiere aplicar la migración:
   `dotnet ef database update --project src/ECommerceApi.Infrastructure --startup-project src/ECommerceApi.Api`

## Notas
- Nunca ejecutes database update en producción desde aquí — solo desarrollo local
- Si hay conflictos de migración, muestra el error completo antes de sugerir soluciones

Estos tres Skills solos ya justifican el setup. Imagina tener un equipo de 10 personas donde todos invocan /csharp-review y obtienen el mismo estándar de revisión.

MCP — conectando herramientas externas

MCP (Model Context Protocol) es el mecanismo que permite a Claude Code conectarse con servicios externos como si fueran herramientas nativas.

En términos simples: un servidor MCP expone capacidades (leer PRs, consultar tickets, buscar documentación) y Claude puede usarlas durante la sesión.

Dos ejemplos relevantes para equipos .NET:

GitHub MCP — Claude puede leer los PRs abiertos del repo, ver los comentarios de revisión, y ayudarte a resolverlos sin que copies nada manualmente:

¿Qué cambios pendientes tengo en el PR #247?

Azure DevOps MCP — Claude puede ver el contexto del sprint actual, las user stories asignadas, y entender qué estás construyendo sin que tengas que explicarlo:

¿Cuáles son los criterios de aceptación de la historia US-1089?

Los servidores MCP se configuran en ~/.claude/mcp.json o .claude/mcp.json a nivel de proyecto. La documentación oficial de Claude Code tiene la lista de servidores MCP disponibles y cómo configurarlos.

Cuándo usar VS Code vs Visual Studio

La pregunta que todo desarrollador .NET acaba haciendo. La respuesta honesta:

Criterio VS Code + Claude Code Visual Studio 2022/2026
Integración con Claude Code Completa — contexto automático, extensión nativa Funcional — terminal integrada, sin extensión
Debugging de aplicaciones .NET Bueno (con extensión C#) Excelente — el mejor de la industria
IntelliSense y refactoring Bueno Excepcional — Roslyn completo
Diseñadores visuales (WinForms, WPF, MAUI) No disponible Completos
Profiling y diagnósticos Limitado Herramientas de clase mundial
Startup y rendimiento del IDE Rápido Lento en proyectos grandes
Desarrollo multiplataforma Ideal Limitado
Trabajo con soluciones grandes (50+ proyectos) Puede ser lento Optimizado
Skills y workflows de equipo Integración nativa Via terminal

Recomendación práctica: No elijas uno. Úsalos en paralelo.

Visual Studio sigue siendo insustituible para debugging pesado, profiling de memoria, y diseñadores de UI de escritorio. VS Code con Claude Code es donde vas a escribir código más rápido, refactorizar más limpio, y entender más fácil código ajeno.

Muchos equipos .NET han adoptado el siguiente flujo: VS Code para el día a día con Claude Code activo, Visual Studio cuando necesitan el debugger avanzado o las herramientas de diagnóstico. Los dos conviven perfectamente apuntando al mismo proyecto.

Puntos clave

  • CLAUDE.md es tu punto de partida — sin él, Claude no conoce tu proyecto. Con él, se convierte en un colaborador que entiende tu arquitectura, tus convenciones y tus decisiones técnicas. Ejecuta /init para generarlo y refínalo con el tiempo.

  • La integración de VS Code es completa; Visual Studio usa la terminal — en VS Code, la extensión anthropic.claude-code (requiere 1.98+) te da contexto automático. En Visual Studio, usa Ver > Terminal y corre claude ahí. Funciona igual de bien para la mayoría de tareas.

  • Las menciones @ son tu herramienta de precisión@archivo.cs, @directorio/, y @archivo.cs#10-40 te permiten dar a Claude exactamente el contexto que necesita. En VS Code, el archivo activo se comparte automáticamente; en Visual Studio, sé explícito.

  • Los Skills son tu ventaja de equipo — crea Skills en .claude/skills/ y versiónalos junto al código. Un /csharp-review consistente para todo el equipo es más valioso que cualquier guideline de código que nadie lee.

  • Gestiona el contexto activamente — usa /compact antes de que se alargue demasiado la sesión, y usa /memory para verificar qué CLAUDE.md tiene cargado. Entender cómo Claude descubre el contexto (recorrido del filesystem, no archivos de proyecto) elimina mucha confusión.


Claude Code no reemplaza tu conocimiento de .NET — lo amplifica. La diferencia entre usarlo mediocremente y usarlo bien está en esas tres cosas: un buen CLAUDE.md, contexto preciso con @, y Skills que encapsulan tu flujo de trabajo. Con eso, la magia deja de parecer aleatoria.