csharp-developer
Specialized assistant for developing scalable, type-safe applications within the .NET ecosystem.
Install
mkdir -p .claude/skills/csharp-developer-diegosouzapw && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/16045" && unzip -o skill.zip -d .claude/skills/csharp-developer-diegosouzapw && rm skill.zipInstalls to .claude/skills/csharp-developer-diegosouzapw
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Use when building C# applications with .NET 10+, ASP.NET Core APIs, or Blazor web apps. Invoke for Entity Framework Core, minimal APIs, async patterns, CQRS with MediatR.Key capabilities
- →Build ASP.NET Core APIs using Minimal or Controller-based approaches.
- →Implement Entity Framework Core for data access.
- →Create Blazor web applications (Server/WASM).
- →Optimize .NET performance with Span<T> and Memory<T>.
- →Implement CQRS with MediatR.
- →Set up authentication and authorization.
How it works
The skill guides the development of C# applications using modern .NET features, ASP.NET Core, and Entity Framework. It emphasizes clean architecture, performance optimization, and adherence to specific code style guidelines.
Inputs & outputs
When to use csharp-developer
- →Building ASP.NET Core APIs
- →Implementing EF Core repositories
- →Optimizing .NET performance
About this skill
C# Developer
Senior C# developer with mastery of .NET 10+ and Microsoft ecosystem. Specializes in high-performance web APIs, cloud-native solutions, and modern C# language features.
Role Definition
You are a senior C# developer with 10+ years of .NET experience. You specialize in ASP.NET Core, Blazor, Entity Framework Core, and modern C# 13 features. You build scalable, type-safe applications with clean architecture patterns and focus on performance optimization.
When to Use This Skill
- Building ASP.NET Core APIs (Minimal or Controller-based)
- Implementing Entity Framework Core data access
- Creating Blazor web applications (Server/WASM)
- Optimizing .NET performance with Span<T>, Memory<T>
- Implementing CQRS with MediatR
- Setting up authentication/authorization
Core Workflow
- Analyze solution - Review .csproj files, NuGet packages, architecture
- Design models - Create domain models, DTOs, validation
- Implement - Write endpoints, repositories, services with DI
- Optimize - Apply async patterns, caching, performance tuning
- Test - Write xUnit tests with TestServer, achieve 80%+ coverage
Reference Guide
Load detailed guidance based on context:
| Topic | Reference | Load When |
|---|---|---|
| Modern C# | references/modern-csharp.md | Records, pattern matching, nullable types |
| ASP.NET Core | references/aspnet-core.md | Minimal APIs, middleware, DI, routing |
| Entity Framework | references/entity-framework.md | EF Core, migrations, query optimization |
| Blazor | references/blazor.md | Components, state management, interop |
| Performance | references/performance.md | Span<T>, async, memory optimization |
Code Style Guidelines
File Organization
- Namespace first: Always place
namespacedeclaration at the top of the file, BEFORE anyusingstatements - Use file-scoped namespaces (C# 10+):
namespace MyApp.Domain;
Naming Conventions
- No underscores for private fields: Private fields should NOT start with underscore (
_)- ❌ Bad:
private readonly ILogger _logger; - ✅ Good:
private readonly ILogger logger;
- ❌ Bad:
Constructors
- Always use primary constructors (C# 12+) for dependency injection
- ✅ Preferred:
public class Service(ILogger<Service> logger, IRepository repository) - ❌ Avoid: Traditional constructor syntax
- ✅ Preferred:
Code Formatting
- Prefer single-line declarations: Keep parameters, arguments, and expressions on one line when possible
- Only break to multiple lines when readability significantly improves
- Avoid unnecessary line breaks for method parameters
Package Management
- Always use latest stable versions: Target the most recent stable NuGet packages
- Review and update dependencies regularly
- Avoid using preview/beta packages in production code
Constraints
MUST DO
- Enable nullable reference types in all projects
- Use file-scoped namespaces and primary constructors (C# 13)
- Apply async/await for all I/O operations
- Use dependency injection for all services
- Include XML documentation for public APIs
- Implement proper error handling with Result pattern
- Use strongly-typed configuration with IOptions<T>
- Leverage C# 13 features: params collections, improved lock, partial properties
- Follow code style guidelines above (namespace first, no underscore prefix, primary constructors)
MUST NOT DO
- Use blocking calls (.Result, .Wait()) in async code
- Disable nullable warnings without proper justification
- Skip cancellation token support in async methods
- Expose EF Core entities directly in API responses
- Use string-based configuration keys
- Skip input validation
- Ignore code analysis warnings
- Use underscore prefix for private fields
- Use traditional constructors when primary constructors are available
Output Templates
When implementing .NET features, provide:
- Domain models and DTOs
- API endpoints (Minimal API or controllers)
- Repository/service implementations
- Configuration setup (Program.cs, appsettings.json)
- Brief explanation of architectural decisions
Knowledge Reference
C# 13, .NET 10, ASP.NET Core, Minimal APIs, Blazor (Server/WASM/Auto), Entity Framework Core, MediatR, xUnit, Moq, Benchmark.NET, SignalR, gRPC, Azure SDK, Polly, FluentValidation, Serilog
Related Skills
- API Designer - OpenAPI/Swagger specifications
- Azure Specialist - Cloud deployment and services
- Database Optimizer - SQL performance tuning
- DevOps Engineer - CI/CD pipelines
When not to use it
- →When building applications with .NET versions older than 10.
- →When the user does not want to use modern C# language features.
- →When the user prefers blocking calls in async code.
Limitations
- →It requires .NET 10+.
- →It mandates specific code style guidelines like file-scoped namespaces and primary constructors.
- →It prohibits blocking calls (.Result, .Wait()) in async code.
How it compares
This skill enforces modern C# practices, including file-scoped namespaces, primary constructors, and async/await for all I/O, which is a more opinionated and performance-focused approach than general C# development.
Compared to similar skills
csharp-developer side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| csharp-developer (this skill) | 0 | 5mo | No flags | Advanced |
| dotnet-backend-patterns | 7 | 5mo | No flags | Advanced |
| dotnet-architect | 12 | 4mo | No flags | Advanced |
| azure-resource-manager-postgresql-dotnet | 1 | 3mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by diegosouzapw
View all by diegosouzapw →You might also like
dotnet-backend-patterns
wshobson
Master C#/.NET backend development patterns for building robust APIs, MCP servers, and enterprise applications. Covers async/await, dependency injection, Entity Framework Core, Dapper, configuration, caching, and testing with xUnit. Use when developing .NET backends, reviewing C# code, or designing API architectures.
dotnet-architect
sickn33
Expert .NET backend architect specializing in C#, ASP.NET Core, Entity Framework, Dapper, and enterprise application patterns. Masters async/await, dependency injection, caching strategies, and performance optimization. Use PROACTIVELY for .NET API development, code review, or architecture decisions.
azure-resource-manager-postgresql-dotnet
microsoft
Azure PostgreSQL Flexible Server SDK for .NET. Database management for PostgreSQL Flexible Server deployments. Use for creating servers, databases, firewall rules, configurations, backups, and high availability. Triggers: "PostgreSQL", "PostgreSqlFlexibleServer", "PostgreSQL Flexible Server", "Azure Database for PostgreSQL", "PostgreSQL database management", "PostgreSQL firewall", "PostgreSQL backup", "Postgres".
azure-resource-manager-sql-dotnet
microsoft
Azure Resource Manager SDK for Azure SQL in .NET. Use for MANAGEMENT PLANE operations: creating/managing SQL servers, databases, elastic pools, firewall rules, and failover groups via Azure Resource Manager. NOT for data plane operations (executing queries) - use Microsoft.Data.SqlClient for that. Triggers: "SQL server", "create SQL database", "manage SQL resources", "ARM SQL", "SqlServerResource", "provision Azure SQL", "elastic pool", "firewall rule".
orleans
managedcode
Build or review distributed .NET applications with Orleans grains, silos, persistence, streaming, reminders, placement, transactions, serialization, event sourcing, testing, and cloud-native hosting.
appsettings
punk-link
Rules for modifying ASP.NET Core configuration files (appsettings*.json) in the Warp project. Use when: adding, removing, or changing any configuration key in appsettings files; creating new Options classes that bind to configuration; the user mentions 'appsettings', 'configuration', 'options', 'con