csharp-developer — скилл для Claude Code: что делает и как установить
Настраивает правила разработки на .NET 8 и C# 12 для создания API, Blazor-приложений и работы с EF Core. Пригодится при проектировании сервисов с CQRS и Result pattern.
npx skills add Jeffallan/claude-skills --skill csharp-developer -a claude-codeЧто делает csharp-developer
Скилл задаёт строгие правила разработки сервисов на ASP.NET Core и Blazor. Ассистент генерирует код с первичными конструкторами C# 12, файловыми пространствами имён и обязательными CancellationToken. Блокирующие вызовы .Result запрещены. Это снижает риск зависания потоков.
Архитектура опирается на строгое разделение моделей: сущности EF Core не отдаются наружу без DTO. Для миграций базы данных введён обязательный шаг проверки перед применением, поэтому случайное удаление колонок отсекается до выкатки. Ошибки операций возвращаются через структуру Result<T> вместо неконтролируемых исключений.
Какие задачи решает
- написать Minimal API на ASP.NET Core с пробросом CancellationToken
- настроить доступ к данным через Entity Framework Core и MediatR
- создать компоненты Blazor с управлением состоянием
- подготовить xUnit-тесты через TestServer с целевым покрытием от 80%
Примеры запросов агенту
- Создай эндпоинт Minimal API для сущности Product с валидацией и CancellationToken
- Сгенерируй миграцию Entity Framework Core для добавления таблицы заказов
- Реализуй обработчик команды через MediatR с возвратом Result record
Как установить csharp-developer
1Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill csharp-developer -a claude-code2Вручную: положить файлы
~/.claude/skills/csharp-developer/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/csharp-developer/
1Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill csharp-developer -a codex2Вручную: положить файлы
.agents/skills/csharp-developer/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill csharp-developer -a cursor2Вручную: положить файлы
.cursor/skills/csharp-developer/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install Jeffallan/claude-skills csharp-developer2Вручную: положить файлы
.github/skills/csharp-developer/SKILL.md1Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill csharp-developer -a gemini-cli2Командой платформы
gemini skills install https://github.com/Jeffallan/claude-skills --path skills/csharp-developerВручную: положить файлы
.devin/skills/csharp-developer/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill csharp-developer -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора61
Весь набор →Похожие
Вопросы о csharp-developer
Как установить csharp-developer в Claude Code?
Выполните команду npx skills add Jeffallan/claude-skills --skill csharp-developer -a claude-code в терминале.
Что делает csharp-developer?
Скилл инструктирует ассистента писать код для .NET 8 и C# 12 по принятым стандартам платформы. Он контролирует проброс CancellationToken, изолирует сущности базы через DTO и запрещает блокирующие вызовы .Result.
Как скилл обрабатывает миграции EF Core?
После добавления сущностей запускается команда dotnet ef migrations add <Name> с обязательным анализом файла миграции. Если обнаружены нежелательные удаления колонок, откат выполняется через dotnet ef migrations remove.
Исходный текст
SKILL.md · MIT
---
name: csharp-developer
description: "Use when building C# applications with .NET 8+, ASP.NET Core APIs, or Blazor web apps. Builds REST APIs using minimal or controller-based routing, configures database access with Entity Framework Core, implements async patterns and cancellation, structures applications with CQRS via MediatR, and scaffolds Blazor components with state management. Invoke for C#, .NET, ASP.NET Core, Blazor, Entity Framework, EF Core, Minimal API, MAUI, SignalR."
license: MIT
metadata:
author: https://github.com/Jeffallan
company: https://synergetic.solutions
version: "1.1.0"
domain: language
triggers: C#, .NET, ASP.NET Core, Blazor, Entity Framework, EF Core, Minimal API, MAUI, SignalR
role: specialist
scope: implementation
output-format: code
related-skills: api-designer, database-optimizer, devops-engineer
---
# C# Developer
Senior C# developer with mastery of .NET 8+ and Microsoft ecosystem. Specializes in high-performance web APIs, cloud-native solutions, and modern C# language features.
## 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
1. **Analyze solution** — Review .csproj files, NuGet packages, architecture
2. **Design models** — Create domain models, DTOs, validation
3. **Implement** — Write endpoints, repositories, services with DI
4. **Optimize** — Apply async patterns, caching, performance tuning
5. **Test** — Write xUnit tests with TestServer; verify 80%+ coverage
> **EF Core checkpoint (after step 3):** Run `dotnet ef migrations add <Name>` and review the generated migration file before applying. Confirm no unintended table/column drops. Roll back with `dotnet ef migrations remove` if needed.
## 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, AOT |
## Constraints
### MUST DO
- Enable nullable reference types in all projects
- Use file-scoped namespaces and primary constructors (C# 12)
- Apply async/await for all I/O operations — always accept and forward `CancellationToken`:
```csharp
// Correct
app.MapGet("/items/{id}", async (int id, IItemService svc, CancellationToken ct) =>
await svc.GetByIdAsync(id, ct) is { } item ? Results.Ok(item) : Results.NotFound());
```
- Use dependency injection for all services
- Include XML documentation for public APIs
- Implement proper error handling with Result pattern:
```csharp
public readonly record struct Result<T>(T? Value, string? Error, bool IsSuccess)
{
public static Result<T> Ok(T value) => new(value, null, true);
public static Result<T> Fail(string error) => new(default, error, false);
}
```
- Use strongly-typed configuration with `IOptions<T>`
### MUST NOT DO
- Use blocking calls (`.Result`, `.Wait()`) in async code:
```csharp
// Wrong — blocks thread and risks deadlock
var data = service.GetDataAsync().Result;
// Correct
var data = await service.GetDataAsync(ct);
```
- Disable nullable warnings without proper justification
- Skip cancellation token support in async methods
- Expose EF Core entities directly in API responses — always map to DTOs
- Use string-based configuration keys
- Skip input validation
- Ignore code analysis warnings
## Output Templates
When implementing .NET features, provide:
1. Domain models and DTOs
2. API endpoints (Minimal API or controllers)
3. Repository/service implementations
4. Configuration setup (Program.cs, appsettings.json)
5. Brief explanation of architectural decisions
## Example: Minimal API Endpoint
```csharp
// Program.cs (file-scoped, .NET 8 minimal API)
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddScoped<IProductService, ProductService>();
var app = builder.Build();
app.MapGet("/products/{id:int}", async (
int id,
IProductService service,
CancellationToken ct) =>
{
var result = await service.GetByIdAsync(id, ct);
return result.IsSuccess ? Results.Ok(result.Value) : Results.NotFound(result.Error);
})
.WithName("GetProduct")
.Produces<ProductDto>()
.ProducesProblem(404);
app.Run();
```
## Knowledge Reference
C# 12, .NET 8, ASP.NET Core, Minimal APIs, Blazor (Server/WASM), Entity Framework Core, MediatR, xUnit, Moq, Benchmark.NET, SignalR, gRPC, Azure SDK, Polly, FluentValidation, Serilog
Maintained by [@jeffallan](https://github.com/jeffallan), Principal Consultant at [Synergetic Solutions](https://synergetic.solutions)
[Documentation](https://jeffallan.github.io/claude-skills/skills/language/csharp-developer/)
© https://github.com/Jeffallan · MIT · Jeffallan/claude-skills