‹ 首页

csharp-developer

@jeffallan · 收录于 1 周前 · 上游提交 1 个月前

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.

适合你,如果使用 C# 和 .NET 构建后端服务或 Blazor 应用

/ 下载安装
csharp-developer.skill双击,或拖进 Claude 桌面版 / Cowork,即完成安装↓ .skill↓ .zip
用别的 agent?下载 .zip 解压,把文件夹放进它的技能目录
Claude Code~/.claude/skills/(项目级 .claude/skills/)
Codex CLI~/.codex/skills/
Cursor自动读取上面两处目录
其他工具见其文档的「skills」目录;两个下载是同一份文件,只是名字不同
/ 通过 npx 安装 校验哈希
npx oh-my-skill add jeffallan/claude-skills/csharp-developer
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- jeffallan/claude-skills/csharp-developer
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify jeffallan/claude-skills/csharp-developer
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
10501GitHub stars
~1K最小装载
~9.8K含声明引用
~9.8K文本包总量
镜像托管

怎么用

商店整理自技能原文 · 版本 e8be415 · 表述以原文为准
它做什么

Claude 会像资深 C# 开发者一样编写 .NET 8+ 代码,包括 ASP.NET Core API、Blazor 组件、Entity Framework Core 数据访问,并遵循 CQRS 模式、异步编程和依赖注入等最佳实践。

什么时候触发

当你要求构建 C# 应用程序,特别是涉及 .NET 8+、ASP.NET Core API、Blazor 或 Entity Framework Core 时触发。

装好后可以这样说
Claude 会生成 DbContext 和迁移命令。
Claude 会生成 Blazor 组件和状态管理代码。
技能原文 SKILL.md作者撰写 · MIT · e8be415

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
// 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

Documentation

按 MIT 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。