Pragmatischer Claude Code Einsatz für C# Entwickler auf Mac
Eine pragmatische Empfehlung für die Praxis: Anwendungen mit langfristiger Wartungsperspektive in C# / .NET realisieren.
Einführung
TLDR: Claude Code funktioniert hervorragend für C#/.NET-Entwicklung auf dem Mac – trotz des Python/TypeScript-Fokus der Coding-LLMs. Der Schlüssel liegt in gezieltem Context Engineering: Skills für C#-Code-Standards, PRD-basierter Workflow (Planen → Generieren → Kodieren), Git Worktrees für paralleles Arbeiten und MCP Server für externe Tool-Anbindung. Ergebnis: mindestens 50% Zeitersparnis, die ambitionierte Projekte als Ein-Personen-Team realisierbar macht.
Wer als Software-Entwickler morgens seinen RSS-Feed öffnet, in YouTube schaut oder die aktuellen Newsletter liest, könnte den Eindruck gewinnen, er sei versehentlich in einem Teilchenbeschleuniger gelandet: Täglich kollidieren neue AI-Tools, Frameworks und "revolutionäre" Workflows miteinander – und jedes einzelne will natürlich sofort ausprobiert werden. Die Realität sieht anders aus. Zwischen Sprint-Meetings, Code-Reviews und der Pflege bestehender Systeme bleibt oft wenig Zeit für ausgedehnte Evaluierungszyklen.
Gleichzeitig ist KI-gestützte Entwicklung kein vorübergehender Hype mehr. Teams, die AI-Coding-Tools effektiv einsetzen, berichten von erheblichen Produktivitätssteigerungen – vorausgesetzt, der Einarbeitungsaufwand bleibt beherrschbar. Genau hier setzt dieser Artikel an: Ein pragmatischer Ansatz, der gute Ergebnisse bei vertretbarem Setup- und Lernaufwand liefert. Kein "hier sind 47 Tools die du alle kennen musst", sondern ein erprobtes Setup, das sich im täglichen .NET-Entwicklungsalltag auf dem Mac bewährt hat.
Alle in diesem Artikel erwähnten Skills, Custom Commands und Subagent-Konfigurationen stehen im begleitenden GitHub-Repository zur Verfügung.
C# / .NET Coding mit AI Support
Die großen Coding-LLMs wurden überwiegend mit Python, TypeScript und JavaScript Codebases trainiert. Das merkt man: Fragt man Claude, GPT oder Gemini nach einer Lösung, kommt häufig idiomatisches Python – bei C# hingegen landet man gelegentlich bei Patterns, die eher an C# 8 als an C# 14 erinnern. Besonders aktuelle Sprachfeatures wie Primary Constructors, Collection Expressions oder das field Keyword werden von Coding-LLMs nicht automatisch verwendet, wenn man sie nicht explizit dazu anleitet.
Die Frage, die sich etablierte .NET-Entwicklungsteams daher stellen: Funktioniert AI-gestützte Entwicklung auch mit unserem Tech-Stack? Und wenn ja, wie gut?
Die kurze Antwort: Ja, es funktioniert – und zwar besser als man erwarten würde. Der Schlüssel liegt darin, dem LLM den notwendigen Kontext über die eigenen Code-Standards, bevorzugte Sprachfeatures und projektspezifische Patterns mitzugeben. Dafür stellt Claude Code mit Skills, CLAUDE.md und Custom Commands die richtigen Werkzeuge bereit (dazu mehr in den folgenden Abschnitten).
Eine pragmatische Empfehlung für die Praxis: Anwendungen mit langfristiger Wartungsperspektive in C# / .NET realisieren. Für temporäre Tooling-Aufgaben wie Datenmigrationen, Build-Scripts oder Analyseskripte spricht dagegen nichts gegen Python – sofern sie nicht unternehmenskritisch sind. Hier profitiert man vom stärkeren LLM-Training auf Python und der schnelleren Umsetzung.
Warum Claude Code?
Wir arbeiten mit VS Code als IDE auf dem Mac. Das ist für C#-Entwickler nicht zwingend aber naheliegend: Das C# Dev Kit mit seinem vollen Funktionsumfang ist an den Visual Studio Marketplace gebunden. IDE-Alternativen wie Cursor oder Windsurf verwenden einen alternativen Marketplace (ohne C# DevKit) und bieten deshalb nicht denselben .NET-Tooling-Komfort. JetBrains Rider ist eine valide Alternative, liegt aber preislich höher.
Der entscheidende Vorteil von Claude Code gegenüber IDE-integrierten AI-Assistenten: Es läuft im Terminal und blockiert die IDE nicht. Über Git Worktrees lässt sich parallel an einer anderen Branch in der IDE weiterarbeiten, während Claude Code eigenständig ein Feature implementiert. Das ist in der Praxis ein erheblicher Produktivitätsgewinn – man muss nicht "zusehen" wie der Agent arbeitet, sondern kann die Zeit sinnvoll nutzen.
Hinzu kommt, dass Anthropic bei der Integration neuer Möglichkeiten oft Vorreiter ist. Features wie Skills, Agent Teams oder das Plugin-System wurden in schneller Folge eingeführt und kontinuierlich verbessert. Die flexiblen Erweiterungs- und Anpassungsmöglichkeiten über MCP Server, Skills und Custom Commands ermöglichen es, Claude Code präzise an den eigenen Workflow anzupassen – ein Aspekt, der bei vielen Alternativen in dieser Tiefe nicht gegeben ist. Trotzdem sollten OpenAI's Codex oder Cursor von der Kommandozeile einen ähnlichen Komfort und Leistungsumfang bieten.
Hinweis: Die Verwendung der besprochenen Skills etc. und die empfohlene Vorgehensweise ist unter Windows genau so möglich.
Nutzen
Beispielprojekt
Die folgenden Erfahrungswerte basieren auf mehreren Projekten, ich möchte mich hier besonders auf ein konkretes Projekt beziehen: einer ASP.NET Razor Pages Website für einen Budo-Verein. Das Projekt eignet sich besonders gut als Referenz, weil es bei beschränktem Budget eine bemerkenswerte Feature-Dichte erforderte: Shop mit Warenkorbsystem, Rechnungsstellung und Bestellverwaltung, Seminarbuchung mit Verwaltungsoberfläche, Dojo-Verwaltung mit OpenStreetMap-Integration, Registrierung mit Benutzerprofilen, CMS-basierte Inhaltsseiten über Directus Headless CMS (für das kein offizielles C# SDK existiert – der Client wurde auf Basis der REST-API eigen- (bzw. teils KI :)) implementiert), Volltextsuche mit Vektor-Datenbank, ein eigener AI-Assistant ("Karate-Cat") auf Basis Microsoft Extensions AI, Blog- und News-Management mit Kommentarverwaltung und einiges mehr.
Fazit
Die Zeitersparnis durch den AI-gestützten Entwicklungsansatz liegt bei mindestens 50%, realistisch betrachtet wahrscheinlich deutlich darüber. Das macht Projekte realisierbar, die ohne AI-Unterstützung entweder gar nicht oder nur in deutlich abgespeckter Form umgesetzt werden könnten.
Besonders bemerkenswert: Features, für die man üblicherweise auf SaaS-Lösungen zurückgreifen würde (etwa ein Warenkorbsystem oder eine Seminarbuchung), konnten als integrierte, maßgeschneiderte Lösung implementiert werden. Das gesamte System – von der Datenbank bis zum Deployment – wird von einem einzelnen Entwickler über alle Ebenen bereitgestellt und gepflegt.
Ein oft unterschätzter Nebeneffekt: Schnelle Previews werden möglich, da Bilder, Texte und andere Inhalte bis zur Bereitstellung finaler Daten per AI generiert und bereitgestellt werden können. Das beschleunigt Feedback-Zyklen mit Stakeholdern erheblich.
Bei verantwortungsvoller Realisierung bleibt jedoch noch einiger manueller Aufwand:
- Konzeption und Architektur
- Planung (Verfassen der PRDs)
- Manueller Review des generierten Codes
- Endnutzer-Tests
- Stakeholder Kommunikation
- Laufende Optimierung der AI Konfiguration anhand der erzielten Ergebnisse (z.B. der Skills)
Viele von diesen Punkten sind nur relevant, wenn man eine Langzeitpflege sicherstellen möchte und entfallen bei einfachen Tools für Einmalverwendung, die per reinem "Vibe-Coding" (meist in Python) erstellt werden, z.B. für initiale Befüllung der DB, Erzeugen von Video-Transcripts und Vorschaubildern etc.
Setup
Die Installation von Claude Code selbst ist unkompliziert und in der offiziellen Dokumentation beschrieben. Für C#-Entwickler auf dem Mac sind darüber hinaus folgende Voraussetzungen relevant:
Grundvoraussetzungen:
- .NET SDK (aktuelle LTS oder STS Version)
- VS Code mit C# Dev Kit Extension
- Git (für Worktree-basiertes paralleles Arbeiten)
- Node.js (für MCP Server die via npx installiert werden)
- Optional: Python/uvx (für MCP Server wie Serena)
- Optional: Docker Desktop (für MCP-Installation via MCP Toolkit)
Claude Code Installation und Ersteinrichtung:
# Installation via npm
npm install -g @anthropic-ai/claude-code
# Projekt initialisieren (erstellt CLAUDE.md)
cd /path/to/your/project
claude /init
# Empfehlung: csharp-lsp Plugin installieren (Language Server Protocol)
claude /plugins
# → csharp-lsp auswählen
Das csharp-lsp Plugin verdient besondere Erwähnung: Es verbindet Claude Code über das Language Server Protocol mit dem C#-Sprachserver und ermöglicht damit IntelliSense-ähnliche Funktionalität, die das Coding-LLM bei der Codeanalyse und -generierung nutzen kann.
Nach der Erstinstallation sollte als nächstes die CLAUDE.md Datei mit den projektspezifischen Informationen befüllt und die für das Projekt relevanten MCP Server konfiguriert werden (siehe Abschnitte "CLAUDE.md" und "MCP").
Git Worktree für paralleles Arbeiten:
Ein besonders nützliches Pattern ist die Verwendung von Git Worktrees, um Claude Code auf einer separaten Branch arbeiten zu lassen, während man selbst in der IDE auf einer anderen Branch weiterentwickelt.
Seit kurzem bietet Claude Code dafür native Unterstützung über den --worktree (oder -w) Parameter:
# Claude Code in einem eigenen Worktree starten
claude --worktree feature/neues-feature
# Ohne Namen – Claude generiert automatisch einen
claude --worktree
cd ../mein-projekt-claude
claude
Claude Code übernimmt dabei die gesamte Verwaltung: Der Worktree wird unter .claude/worktrees/<name>/ angelegt, eine Branch worktree-<name> automatisch erstellt, und nach Beendigung wird aufgeräumt – bei Änderungen wird nachgefragt, ohne Änderungen wird der Worktree automatisch entfernt.
Der Vorteil gegenüber der manuellen Variante (git worktree add + cd + claude) liegt neben dem geringeren Aufwand vor allem in der Integration mit dem Session-Management: Worktree-Sessions erscheinen im Session-Picker und lassen sich jederzeit fortsetzen:
# Session fortsetzen (nach Name oder interaktiv)
claude --resume feature/neues-feature
claude --resume
In Kombination mit --tmux lassen sich so mehrere parallele Claude Code Sessions in getrennten Terminal-Tabs betreiben – z.B. ein Feature-Worktree und ein Bugfix-Worktree gleichzeitig.
Tipp: .claude/worktrees/ in die .gitignore aufnehmen, damit die Worktree-Inhalte nicht als Untracked Files erscheinen. Auch Subagenten können per isolation: worktree in ihrer Konfiguration automatisch in eigenen Worktrees arbeiten.
Vorgehen
Gute Erfahrungen haben wir mit der Aufteilung der Realisierung eines Features per AI Coding Tool in drei Phasen gemacht:
- Planerstellung – detaillierte Planung der Feature-Umsetzung auf Basis eines initialen PRDs (Product Requirements Document). Ausgabe der Planung als Markdown-Dokument in Form eines finalen PRD. Dazu den Planungsmodus von Claude Code (
/plan) nutzen. - Planumsetzung (Codierung) – Implementierung auf Basis des finalen PRD durch Claude Code.
- Review - Automatische / manuelle Prüfung des generierten Codes auf Vollständigkeit, Qualität sowie bezüglich der Einhaltung von Standards und Sicherheitskriterien
Die prinzipielle Idee dazu stammt von Colin Medin (siehe GitHub), der den Ansatz ursprünglich für Python entwickelt hat. Er hat sich im täglichen Einsatz als produktiv erwiesen. Hier die von uns auf die Verwendung mit .NET / C# angepassten Versionen als Custom Commands (siehe auch Abschnitt "Custom Commands"):
- generate-prd.md – Erzeugt aus einer Feature-Beschreibung ein vollständiges PRD
- execute-prd.md – Implementiert ein Feature auf Basis eines PRD
Das generate-prd.md Command verwendet dabei eine PRD-Vorlage (prd-base.md), die den Aufbau des PRD vorgibt: Ziel, Begründung, benötigter Kontext, Implementierungs-Blueprint, Validierungsschleifen und eine finale Checkliste. Generell geht es darum, dem Coding-LLM optimalen Kontext für die anstehende Aufgabe zu geben. Das sollte z.B. über die Bereitstellung von Beispielcode für typische Aufgaben und vertikale Funktionalitäten in einem /examples Verzeichnis erfolgen.
Wichtig beim PRD-basierten Vorgehen:
- Immer mehrstufig: Erst detaillierten Prompt erstellen, dann PRD generieren lassen, erst danach kodieren lassen. Umsetzung per Review prüfen.
- Inkrementelle Systemimplementierung – jedes PRD beschreibt ein abgegrenztes Feature, nicht das halbe System.
- PRD nach Erstellung kontrollieren: Nicht nur inhaltlich, sondern auch im Hinblick auf Einhaltung der Code-Standards, Performance und repetitiven Code in den enthaltenen Code-Samples.
Tipp für den PRD-Workflow: Mit claude --dangerously-skip-permissions lässt sich Claude Code ohne ständige Bestätigungsdialoge starten, was den Workflow bei der PRD-Ausführung deutlich flüssiger macht. Wie der Name suggeriert: Nur in vertrauenswürdigen Umgebungen verwenden und vorher sicherstellen, dass das PRD keine destruktiven Operationen enthält.
Beispiel für einen
- Prompt und das daraus generierte
- PRD
Claude Code konfigurieren
Claude Code unterstützt verschiedene Möglichkeiten, um die Codegenerierung an die eigenen Erfordernisse anzupassen. Die folgenden Abschnitte beschreiben die wichtigsten Stellschrauben.
Konfigurationsebenen
Claude Code unterscheidet mehrere Konfigurationsebenen, die bei der Organisation von Skills, MCP Servern und Settings relevant sind:
Projektebene (.claude/): Wird ins Repository eingecheckt und ist damit für das gesamte Team verfügbar. Hier gehören projektspezifische Skills, Custom Commands und MCP-Konfigurationen hin.
Benutzerebene (~/.claude/): Globale Einstellungen, die projektübergreifend gelten. Ideal für persönliche Präferenzen und Skills, die in allen Projekten verwendet werden sollen (z.B. dotnet-code-standards).
Weitergabe zwischen Projekten: Skills und Agents, die man zwischen verschiedenen Projekten auf dem eigenen Rechner teilen möchte, legt man am besten in ~/.claude/skills/ ab. Für die Weitergabe an Kollegen oder die Community empfiehlt sich die Verpackung als Plugin (siehe Abschnitt "Plugins").
Settings-Dateien: Neben CLAUDE.md und Skills steuert Claude Code sein Verhalten (z.B. Hooks, erlaubte Tools, MCP Server) über settings.json-Dateien auf drei Ebenen:
| Datei | Ebene | Zweck |
|---|---|---|
~/.claude/settings.json |
Benutzer | Gilt global für alle Projekte des Benutzers |
.claude/settings.json |
Projekt | Wird ins Repository eingecheckt und mit dem Team geteilt |
.claude/settings.local.json |
Projekt (lokal) | Projektspezifisch, aber nicht ins Git eingecheckt – für persönliche Overrides |
Die Einstellungen werden in dieser Reihenfolge zusammengeführt, wobei spezifischere Ebenen die allgemeineren überschreiben.
CLAUDE.md
CLAUDE.md ist das "Gedächtnis" des Coding-LLMs für das aktuelle Projekt. Opus 4.6 hat zwar ein sehr großes nutzbares Kontextfenster von 1 Mio. Token, aber nach jeder halbwegs komplexen Teilaufgabe ist dieses erschöpft und muss entweder zusammengefasst (/compact) oder gelöscht (/clear) werden.
Es ist daher essentiell, die Datei nach der Umsetzung jedes PRD updaten zu lassen. Ansonsten muss das Coding-LLM vor Umsetzung eines PRD jedesmal eine token- (und kosten-) intensive Analyse des Quellcode-Standes durchführen.
Hinweis: Es gibt aktuell eine Studie der ETH Zürich, welche die Verwendung einer CLAUDE.md als eher kontraproduktiv ansieht, die bezieht jedoch primär auf rein automatisch erstellte und überladene Dateien. Um so wichtiger ist der folgende Tipp:
Tipp: Statt alles in eine monolithische CLAUDE.md zu packen, empfiehlt es sich, diese mit Referenzen auf weitere Markdown-Dateien zu splitten. Claude Code folgt Dateireferenzen automatisch. So bleibt die Kontextbelastung gering, während trotzdem alle relevanten Informationen bei Bedarf verfügbar sind. Ist bereits eine komplexe CLAUDE.md vorhanden, Claude bitten diese entsprechend feature-basiert zu splitten, die eigentliche CLAUDE.md sollte nur immer relevante Informationen enthalten, wie Tech-Stack und vertikale Funktionalitäten.
Custom Commands
Claude Code stellt selbst viele Konfigurationsmöglichkeiten und Aktionen per "Slash"-Commands wie /init, /compact, /plugins etc. zur Verfügung (Übersicht mit /help). Neben diesen vordefinierten Commands ist es möglich, eigene "Custom" Commands hinzuzufügen, um zusätzlichen Kontext zum eigenen Prompt hinzuzufügen. Wir verwenden hier z.B.:
/generate-prdum ein Product Requirements Document zur Umsetzung eines Features zu definieren (Aufruf z.B./generate-prd prds/meine-vorgabe.md). Siehe generate-prd.md./execute-prdum den Implementierungsprozess auf Basis eines PRD zu starten. Siehe execute-prd.md./goals einfachen Shortcut-Command, der wiederkehrende MCP-Referenzen und CLAUDE.md-Kontextinstruktionen kapselt. Der Aufruf/go implementiere Feature Xerspart die wiederholte Eingabe von "nutze Serena, Context7, Sequential Thinking und lies die CLAUDE.md". Siehe go.md.
Mehr Informationen zum PRD-Workflow unter Punkt "Vorgehen".
Anmerkung: In den letzten Claude Code Versionen hat Anthropic Custom Commands und Skills zusammengeführt:
Custom slash commands have been merged into skills. A file at
.claude/commands/review.mdand a skill at.claude/skills/review/SKILL.mdboth create/reviewand work the same way. Your existing.claude/commands/files keep working. Skills add optional features: a directory for supporting files, frontmatter to control whether you or Claude invokes them, and the ability for Claude to load them automatically when relevant.
Ich halte die gedankliche Trennung zwischen der aktiver Ausführung (Präzisierung des eigenen Prompts per Custom Command) und der Bereitstellung zusätzlichen "Wissens" bzw. von Fähigkeiten zu bestimmten Bereichen per "Skills" - die automatisch vom Agenten nach Bedarf geladen werden - nach wie vor für sinnvoll, aber das ist natürlich jedem selbst überlassen.
Skills
Skills erweitern Claude Code mit Wissen und Kontext über bestimmte Tools (z.B. Datenbanken, CMS), Vorgehenskonzepte (bevorzugte Systemarchitektur, Quellcodeorganisation, Dateibenennung), bevorzugte Quellcode-Formatierung, Einsatz von bestimmten Sprachfeatures usw. Jeder Skill besteht aus YAML-Metainformationen (Name, Beschreibung) und detaillierten Anweisungen im Markdown-Format innerhalb einer Datei skills/skill-name/SKILL.md. Aufbau lt. Dokumentation z.B.
---
name: explain-code
description: Explains code with visual diagrams and analogies. Use when explaining how code works, teaching about a codebase, or when the user asks "how does this work?"
---
When explaining code, always include:
1. **Start with an analogy**: Compare the code to something from everyday life
2. **Draw a diagram**: Use ASCII art to show the flow, structure, or relationships
3. **Walk through the code**: Explain step-by-step what happens
4. **Highlight a gotcha**: What's a common mistake or misconception?
Keep explanations conversational. For complex concepts, use multiple analogies.
Wir setzen z.B. für die .NET Entwicklung folgende (eigenen) Skills ein:
- dotnet-code-standards: Unsere Vorgaben zur Umsetzung und Formatierung von C# Code – von Naming Conventions über Guard Clauses bis zur Verwendung moderner C# 12–14 Features wie Primary Constructors und Collection Expressions. Dieser Skill ist das zentrale Werkzeug, um dem Coding-LLM beizubringen, idiomatischen, aktuellen C#-Code zu erzeugen. Siehe dotnet-code-standards/SKILL.md mit zugehörigen Beispieldateien.
- [project-name]-design-guide: Projektspezifische UI-Vorgaben für ASP.NET Systeme, z.B. Tailwind CSS Klassen, Farbschema, Komponentenstruktur. Siehe beispielhaft project-xy-design-guide/SKILL.md.
- dotnet-colocated-localization: Vorgaben zur Lokalisierung von ASP.NET Projekten mit co-located Resource Files und URL-basierter Spracherkennung. Siehe dotnet-colocated-localization/SKILL.md.
- directus-dotnet-repository: Vorgaben zur Arbeit mit dem Directus CMS – Filtering, Pagination, CRUD-Operationen und Authentifizierung. Siehe directus-dotnet-repository/SKILL.md.
- evanto-paypal-client: Vorgaben für die Integration von PayPal in ASP.NET Systeme – Einmalzahlungen, Subscriptions, Webhooks. Siehe evanto-paypal-client/SKILL.md.
Erstellung von Skills
Statt dem manuellen Schreiben von Skills oder der ausschließlichen Verwendung vorgefertigter Skills lassen sich Skills sehr gut anhand einer existierenden Code-Basis mit dem gewünschten Feature per Claude Code extrahieren. Ein bei uns praktisch verwendeter Prompt lautet:
Please create me a Directus CMS skill based on ./src/Evanto.Directus.Client/EvDirectusClient.cs and repositories using this client like lib/XY.Infrastructure/Persistence/Repositories/XYVatRepository.cs. Cover the filtering via "using static Evanto.Directus.Client.Filters.EvDirectusFilter;". Include also samples for paging like in lib/XY.Infrastructure/Persistence/Repositories/XYVideoRepository.cs. Cover also the extension method in ./src/Evanto.Directus.Client/Extensions/EvDirectusExtensions.cs for adding the directus client to a project. Mention also the available secret providers like lib/XY.Infrastructure/Persistence/Providers/XYDirectusClaimSecretProvider.cs which handles the Directus authentication. Goal is, that a coding LLM understands what to do when creating new repositories based on the Directus client and adding Directus to new project. Mention also that any LLM should check the availability of the Directus MCP server to get direct access to structure and data in the connected database. Add the necessary skill files like SKILL.md and Code files / snippets for that. The reference for agent skills you can find via https://agentskills.io. You can validate the created skill with "./dev/agentskills/skills-ref/skills-ref validate [skill-dir]".
Der erstellte Skill sollte natürlich einem Review unterzogen und ggf. mit iterativen Prompts verbessert werden.
Tipps zu Skills
Lieber Skills als Subagenten: Skills belasten den Kontext weniger als Subagenten und sind für die meisten spezialisierten Aufgaben ausreichend. Subagenten erst einsetzen, wenn ein dediziertes Modell oder separate Tool-Zuordnung wirklich notwendig ist.
Übersicht behalten: Nicht wahllos Skill-Repositories klonen. Jeder Skill erweitert den Kontext, den das Coding-LLM verarbeiten muss. Fokus auf Skills, die tatsächlich regelmäßig benötigt werden.
Sicherheit bei Fremd-Skills: Nur Skills aus vertrauenswürdigen Quellen verwenden. Bei externen Skills explizit auf Prompt-Injection prüfen: Enthält die SKILL.md Anweisungen, die das LLM dazu bringen könnten, unerwünschte Aktionen auszuführen, z.B. Daten an externe URLs zu senden oder Systemdateien zu modifizieren? Besonders auf versteckte Instruktionen in Code-Beispielen oder "unsichtbarem" Text achten.
Skill-Validierung: Den Skill-Validierer einsetzen, um die Konformität mit der Skill-Spezifikation sicherzustellen.
Skills aus existierendem Code erstellen: Das ist der effizienteste Weg. Claude Code analysiert bestehende Implementierungen und extrahiert die Patterns, Conventions und Gotchas automatisch – wesentlich schneller und vollständiger als manuelles Dokumentieren.
MCP
MCP Server ermöglichen es dem Coding-LLM auf externe Ressourcen und Software-Tools zuzugreifen, z.B. Versionsverwaltung (GitHub, GitLab), Datenbanken, Dokumentationen und vieles mehr. Obwohl nahezu unendliche Möglichkeiten bestehen, ist wichtig zu beachten, dass jeder MCP Server Zugriff auf zahlreiche einzelne Tools bereitstellt (z.B. Lesen/Schreiben von Struktur und Daten bei einer Datenbank) – teilweise 30 bis 40 Einzelaufrufsmöglichkeiten für das Coding-LLM. Dies kann ein LLM schnell überfordern, wenn es zwischen mehreren hundert Tools für eine bestimmte Aufgabe auswählen muss. Daher MCP Server mit Bedacht auswählen, so dass möglichst eine Höchstzahl von ca. 100 Einzeltools nicht überschritten wird.
Folgende MCP Server verwenden wir bei der .NET Entwicklung:
- Context7 (Dokumentationsrecherche, GitHub): Vorteil gegenüber Dokumentationen, die das Coding-LLM im Web recherchieren kann, ist hier, dass die Informationen bereits speziell für LLMs aufbereitet sind.
claude mcp add --transport http context7 https://mcp.context7.com/mcp --header "CONTEXT7_API_KEY: 70777c30-a95f-41f8-be9d-9019a006ab70"
- Sequential Thinking (Zerlegung und schrittweises Lösen von Aufgaben, GitHub): Unterstützt das strukturierte "Denken" des Coding-LLMs und die Zerlegung von komplexen Aufgaben in Teilschritte.
claude mcp add sequential-thinking -s local -- npx -y @modelcontextprotocol/server-sequential-thinking
Playwright (Browser-Zugriff für das Coding-LLM, GitHub): Besonders nützlich zum UI-Test und zum Fix von UI-Problemen. Alternativ oder ergänzend: Claude for Chrome (noch komfortabler - wenn die Sicherheitsrichtlinien das zulassen).
claude mcp add playwright npx @playwright/mcp@latest
Serena (lokale, token-sparende semantische Code-Analyse, GitHub): Das Coding-LLM kann Serena zum Lesen und Analysieren von umfangreichen Code-Dateien verwenden – ohne dass "teure" Tokens durch das LLM selbst verbraucht werden.
claude mcp add serena -- uvx --from git+https://github.com/oraios/serena serena start-mcp-server --context ide-assistant --project $(pwd)
- NuGet: Zugriff auf NuGet Package Registry (Microsoft)
claude mcp add nuget -s local -- dnx NuGet.Mcp.Server --source https://api.nuget.org/v3/index.json --yes
- MS-SQL Server (offiziell): Noch nicht getestet
Die Installation der MCP Server kann auf verschiedenen Wegen erfolgen:
- Klassisch via Node.js/npm bzw. Python – setzt eine lokale Installation der jeweiligen Umgebung voraus
- Via Docker Desktop mit dem neuen "MCP Toolkit"-Feature – besonders einfaches Hinzufügen von Servern und One-Click-Verbindung zu Clients wie Claude Code
Hier Beispiele zur Installation / Entfernung weiterer MCP Server in Claude Code:
# Chrome DevTools
claude mcp add chrome-devtools -s local -- npx -y chrome-devtools-mcp@latest
# Auflisten der MCP Server
claude mcp list
# Entfernen, Beispiel
claude mcp remove "serena" -s local
Hooks
Hooks sind Pre- und Post-Execution-Scripts, die Claude Code automatisch vor oder nach bestimmten Tool-Aufrufen ausführt. Für .NET-Entwickler ist das besonders relevant, um Code-Qualität automatisch sicherzustellen. Ein typisches Beispiel: Nach jeder Dateiänderung an einer .cs-Datei automatisch dotnet format ausführen, so dass der generierte Code sofort den Formatierungsvorgaben entspricht.
Hooks werden in der Claude Code Konfiguration (.claude/settings.json) definiert. Details zur Konfiguration in der offiziellen Dokumentation.
Hier z.B. ein Hook, um automatisch dotnet format nach jedem Durchlauf auszuführen:
{
"hooks": {
"postToolExecution": [
{
"matcher": "Edit|Write",
"command": "dotnet format --include $FILE"
}
]
}
}
Subagents
Subagents sind autonom arbeitende, spezialisierte Agents für bestimmte Aufgaben. Claude Code verwendet z.B. eigene Subagents für Codeanalyse (via Haiku, da schneller und effizienter) und Planungsaufgaben (/plan Mode, z.B. per Opus). Der Vorteil gegenüber Skills: Subagenten kann ein eigenes Modell (Haiku, Sonnet, Opus – z.B. zur Kostenoptimierung) und spezielle, ausgewählte Tools (MCP Server) für die jeweilige Aufgabe zugeordnet werden.
Zu bedenken ist jedoch die Koordination zwischen Subagenten und dem Hauptagenten. Der Hauptagent hat keinen Einblick in den genauen Ablauf innerhalb des Subagenten und sieht nur die finalen Ergebnisse. Zwei mögliche Ansätze dazu:
- Protokolldatei-Ansatz: Subagenten protokollieren ihren Arbeitsablauf in eine festgelegte Datei, auf die der Hauptagent Zugriff hat.
- Plan-only-Ansatz: Subagenten planen nur, überlassen aber die Codierung final dem Hauptagenten.
Denkbare Einsatzzwecke für Subagenten in .NET-Projekten wären z.B. Frontend-Entwicklung fokussiert auf ein bestimmtes UI-Framework wie Tailwind CSS, SEO-Analyse und -Umsetzung, Code-Review oder Code-Formatierung und -Dokumentation. Im begleitenden Repository finden sich ein Beispiele:
- seo-optimization-expert: Ein SEO-Subagent auf Sonnet-Basis, der technische SEO-Audits durchführt, On-Page-Optimierungen vorschlägt und die Umsetzung über Playwright automatisiert verifiziert.
Aus der bisherigen Erfahrung heraus lassen sich die meisten spezialisierten Aufgaben jedoch mit Skills einfacher umsetzen, da selten die Zuordnung eines speziellen Modells wirklich notwendig ist.
Agent Teams
Agent Teams ist ein noch neues Feature und zum Zeitpunkt der Erstellung dieses Artikels als "experimental" gekennzeichnet. Die Agenten innerhalb eines Agent Teams unterscheiden sich von Subagenten dadurch, dass sie nicht isoliert arbeiten, sondern miteinander und mit dem Hauptagenten kommunizieren. Das funktioniert über mehrere getrennte Claude Code Instanzen in getrennten Terminalfenstern mit getrennten Kontextfenstern. Sie adressieren damit gezielt die oben genannte Schwäche von Subagenten: die fehlende Kommunikation.
Eine gute Einführung (neben der offiziellen Dokumentation) findet sich hier. Bei uns wurde das noch nicht produktiv getestet; Vorteil ist eindeutig die Möglichkeit, umfangreiche Projekte deutlich schneller zu realisieren. Nachteil soll jedoch der relativ hohe Token-Verbrauch (und damit die Kosten) sowie die teils noch mangelhafte Synchronisierung der Agenten sein.
Plugins
Plugins sind "verpackte" Bündel aus Skills, Agents, Hooks und MCP Servern zur einfachen Verteilung. Die Verpackung geschieht durch die Bereitstellung in einem eigenen Verzeichnis [my-plugin] mit einem Unterverzeichnis .claude-plugin, das Meta-Daten in Form einer JSON-Datei plugin.json enthält. Der Name [my-plugin] fungiert dann gleichzeitig als Namespace für die enthaltenen Skills etc., so dass sich verschiedene Plugins nicht bei der Benennung "in die Quere" kommen. Aufruf z.B. /my-plugin:my-skill.
{
"name": "my-plugin",
"description": "Something to distribute to colleagues",
"version": "1.0.0",
"author": {
"name": "Your Name"
}
}
Vorteil ist die einfache Verteilbarkeit zwischen Kollegen, in Marktplätzen etc. (per Plugins bzw. Konnektoren in den Claude Desktop Einstellungen bzw. /plugin Slash Command in Claude Code). Genaue Beschreibung siehe hier. Das Teilen von Skills, Agenten etc. auf einem Rechner zwischen verschiedenen Projekten kann jedoch auch per Konfigurationsverzeichnis erfolgen (siehe Abschnitt "Konfigurationsebenen").
Tipp: Claude Code stellt über /plugins vorgefertigte Plugins zur Verfügung. Für C#-Entwickler besonders interessant ist das csharp-lsp Plugin (Language Server Protocol – ein offenes Protokoll zur Kommunikation zwischen Editoren oder wie hier Claude Code und einem Language Server, z.B. für IntelliSense). Daneben gibt es viele weitere interessante Plugins, die hier nicht näher besprochen werden sollen.
Kosten und Token-Management
Claude Code wird entweder über die Anthropic API oder einen Anthropic Plan abgerechnet. Die Kosten hängen bei API Nutzung primär vom gewählten Modell und der Komplexität der Aufgaben ab. Opus 4.6 liefert bei komplexen .NET-Aufgaben die besten Ergebnisse, ist aber auch das teuerste Modell. Bei Plan-Nutzung gibt es ein bestimmtes Token-Inklusivvolumen und zwar sowohl pro 5 Stunden Zeitfenster als auch pro Woche.
Zur Orientierung:
- API Nutzung: Drei / Vier PRDs pro Tag summieren sich schnell auf 10..20€ / Tag
- Pro-Plan: Zwei / drei PRDs pro Tag möglich, aber mit störend bremsenden Wartezeiten zwischen der Ausführung (wegen der 5h Zeitfenster mit Limit)
- Max-Plan (90€ in Feb 26): Dies ist bei intensiver Nutzung der Plan der Wahl, bei dem man kaum mehr an Nutzungslimits stößt.
Zur Kostenkontrolle (siehe Artikel Manage Cost effectively bei Anthropic):
/usagezeigt die bisherigen Verbrauch der aktuellen Session bei Plannutzung/costwäre das Äquivalent bei API Nutzung- Max-Spend kann in den Settings konfiguriert werden
- Subagenten auf Sonnet oder Haiku konfigurieren, wo Opus nicht nötig ist (z.B. für Code-Formatierung oder einfache Analysen)
- Kontextfenster aktiv managen (regelmäßig
/compact) - CLAUDE.md aktuell (und mit Referenzen übersichtlich) halten, um teure Re-Analysen des Codes zu vermeiden
Tipps
Kontextfenster im Griff behalten: Das Kontextfenster ist die kritischste Ressource bei der Arbeit mit Claude Code. Mit /context lässt sich die aktuelle Auslastung prüfen. Liegt sie über 50%, empfiehlt sich ein /compact um den Kontext zusammenzufassen. Alternativ kann mit /clear ein kompletter Neustart erfolgen – in diesem Fall ist eine aktuelle CLAUDE.md umso wichtiger, da sie dem Coding-LLM den verlorenen Kontext zurückgibt. Man kann sich sogar von Claude Code eine Statuszeile für Claude Code selbst erstellen lassen, die einen sofortigen Überblick über das genutzte Kontextfenster erlaubt:

System initial manuell aufsetzen: Die Grundstruktur eines neuen Projekts sollte man bewusst "per Hand" anlegen. Das stellt sicher, dass die Strukturvorgaben korrekt sind und das Coding-LLM ab dem ersten PRD konsistente Patterns vorfindet, denen es folgen kann.
Prompt zum erstellen (Beispiel):
Hi, can you create a status bar for me, which shows me always the amount of context used in Claude Code? Take the layout in attached picture as template.
Claude fragen lassen: Immer Claude Code erlauben, Rückfragen zu stellen, Beispiel:
- If critical information is missing or if there are implementation alternatives, ask clarifying questions before generating any code
- Hint me also for things I may have overseen or topics which also probably have to covered.
Sessions fortsetzen mit /resume: Nach einem /clear oder wenn man Claude Code neu startet, ist der bisherige Kontext weg. Mit /resume lässt sich eine vergangene Session wieder aufnehmen – inklusive des gesamten Gesprächsverlaufs. Das ist besonders nützlich, wenn man am nächsten Tag an einer Aufgabe weiterarbeiten möchte oder versehentlich das Terminal geschlossen hat.
Letzte Aktion zurücknehmen mit /rewind: Wenn Claude Code in eine falsche Richtung gelaufen ist – z.B. einen unpassenden Lösungsansatz gewählt oder Code in die falsche Datei geschrieben hat – kann man mit /rewind die letzte Aktion rückgängig machen und einen neuen Prompt eingeben. Die Tastenkombination ESC + ESC macht dasselbe, nur schneller. Das ist deutlich effizienter als den Fehler manuell zu korrigieren oder den Kontext mit /clear komplett zu verwerfen.
Directory.Build.props / Directory.Package.props verwenden: Einheitliche Einstellungen / Paketversionen für alle Projekte innerhalb einer Solution machen auch einem LLM das Leben etwas leichter.
Iterativ verbessern: Skills, CLAUDE.md und PRD-Templates sind keine statischen Artefakte. Wenn auffällt, dass das Coding-LLM wiederholt bestimmte Fehler macht oder Patterns nicht einhält, ist das ein Signal, den entsprechenden Skill oder die CLAUDE.md zu ergänzen. Die Investition zahlt sich bei jedem folgenden Feature zurück.
Sprache: Englisch als Sprache für Code, Kommentare, CLAUDE.md und Skills bevorzugen. Die LLM-Training-Daten sind überwiegend englisch, und die Qualität der Ausgabe ist messbar besser.
Modellwahl: Für Coding-Aufgaben Claude Opus 4.6 verwenden. Der Qualitätsunterschied zu Sonnet ist bei komplexeren .NET-Aufgaben spürbar. Sonnet oder Haiku eignen sich dagegen gut für Subagenten mit klar eingegrenzten Aufgaben.
Weitere Skills: Eine kuratierte Sammlung von Skills für verschiedene Anwendungsfälle findet sich unter skills.sh.
Tool-Empfehlungen über Claude Code hinaus
Neben Claude Code haben sich in der täglichen Arbeit weitere AI-Tools bewährt, die den Entwicklungsworkflow sinnvoll ergänzen:
Bildgenerierung mit Gemini: Googles Gemini Nano Banana Pro (Pro ist wichtig) liefert aktuell die besten Ergebnisse für die Generierung von Bildern, die in Web-Projekten verwendet werden sollen – von Hero-Images über Illustrationen bis zu Platzhalterbildern für Previews - insbesondere wegen der korrekten und konsistenten Textausgabe in Bildern.
UI-Prototyping mit Aura.build: Für schnelle UI-Prototypen und Landing Pages hat sich Aura.build als hilfreich erwiesen. Es generiert aus Textbeschreibungen funktionale Web-Interfaces, die als Ausgangspunkt für die eigentliche Implementierung dienen können. Und zwar im Plain HTML Format, dass ich einfach dann in ASP.NET Razor Templates konvertieren lässt.
Auch gut: Readdy.ai - Aber hier wurde die Generierung von HTML auf React umgestellt, was zwar leistungsfähig ist - aber für .NET Entwickler auch schwer verwertbar.
Alternativen
GSD (Get Shit Done): Wer den in diesem Artikel beschriebenen PRD-basierten Workflow weiter formalisieren und automatisieren möchte, sollte sich GSD ansehen. GSD ist ein Context-Engineering-Framework für Claude Code (und andere AI-Coding-Assistenten), das den gesamten Entwicklungszyklus – von der Anforderungserfassung über die Planung bis zur parallelen Ausführung – in einem strukturierten Pipeline-Ansatz orchestriert. Es adressiert dabei gezielt das Problem der "Context Rot" (Qualitätsverlust bei wachsendem Kontextfenster), indem jede Aufgabe mit frischem Kontext ausgeführt wird. GSD generiert dabei automatisch Projektdokumentation (PROJECT.md, REQUIREMENTS.md, ROADMAP.md, PLAN.md), die als persistentes "Gedächtnis" über Sessions hinweg dient.
Referenzen
Änderungshinweis 2026-03-09: Verweis auf GSD, settings.json, CLAUDE.md Studie der ETH und claude --worktree
Über uns
Ein erfahrenes Entwicklerteam, das mit Leib und Seele Software erstellt.

Letzte Blogeinträge
KI im Büroalltag: 6 Quick Wins, die Sie sofort umsetzen können
Migration ist nicht alles: Monitoring und Telemetrie
Nützliche Verweise
Kontaktdaten
Brunnstr. 25,
Regensburg
+49 (941) 94592-0
+49 (941) 94592-22