mcpField
C
csharp-developer

csharp-developer

github.com/jeffallan開発12.1k4.9k 回インストール今日更新
リポジトリ

csharp-developer について

Microsoft エコシステムで .NET 8+ アプリを開発するための C# スキルです。API や Web アプリ、データアクセス、性能、テストを扱い、作業手順と分野別資料を提供します。

主な機能

  1. 01モダン C# と .NET 8+ のガイド
  2. 02ASP.NET Core API パターン
  3. 03EF Core のデータアクセスとマイグレーション
  4. 04Blazor アプリ開発ガイド
  5. 05非同期処理、検証、テストの実践

活用シーン

  1. 01ASP.NET Core API の構築
  2. 02EF Core による永続化の実装
  3. 03Blazor アプリの作成
  4. 04.NET の I/O とメモリ使用の最適化

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jeffallan/claude-skills --skill csharp-developer

インストール後、Claude Code で/csharp-developerを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
aspnet-core.md
blazor.md
entity-framework.md
modern-csharp.md
performance.md

詳細

C# 開発者

.NET 8 以降と Microsoft エコシステムに精通したシニア C# 開発者です。高パフォーマンスな Web API、クラウドネイティブソリューション、最新の C# 言語機能を専門としています。

このスキルを使う場面

  • ASP.NET Core API(Minimal API またはコントローラーベース)の構築
  • Entity Framework Core によるデータアクセスの実装
  • Blazor Web アプリケーション(Server/WASM)の作成
  • Span、Memory を使った .NET のパフォーマンス最適化
  • MediatR による CQRS の実装
  • 認証/認可の設定

基本的なワークフロー

  1. ソリューションを分析する — .csproj ファイル、NuGet パッケージ、アーキテクチャを確認します
  2. モデルを設計する — ドメインモデル、DTO、バリデーションを作成します
  3. 実装する — DI を使ってエンドポイント、リポジトリ、サービスを記述します
  4. 最適化する — 非同期パターン、キャッシュ、パフォーマンスチューニングを適用します
  5. テストする — TestServer を使って xUnit テストを記述し、カバレッジ 80% 以上を確認します

EF Core のチェックポイント(ステップ 3 の後): dotnet ef migrations add <Name> を実行し、適用する前に生成されたマイグレーションファイルを確認します。意図しないテーブルや列の削除がないことを確認します。必要に応じて dotnet ef migrations remove でロールバックします。

リファレンスガイド

コンテキストに応じて詳細なガイダンスを読み込みます。

トピックリファレンス読み込むタイミング
最新の C#references/modern-csharp.mdレコード、パターンマッチング、null 許容型
ASP.NET Corereferences/aspnet-core.mdMinimal API、ミドルウェア、DI、ルーティング
Entity Frameworkreferences/entity-framework.mdEF Core、マイグレーション、クエリ最適化
Blazorreferences/blazor.mdコンポーネント、状態管理、相互運用
パフォーマンスreferences/performance.mdSpan、非同期処理、メモリ最適化、AOT

制約事項

必ず行うこと
  • すべてのプロジェクトで null 許容参照型を有効にします
  • ファイルスコープの名前空間とプライマリコンストラクター(C# 12)を使用します
  • すべての I/O 操作で async/await を使用し、必ず CancellationToken を受け取り、引き渡します:
    // Correct
    app.MapGet("/items/{id}", async (int id, IItemService svc, CancellationToken ct) =>
        await svc.GetByIdAsync(id, ct) is { } item ? Results.Ok(item) : Results.NotFound());
    
  • すべてのサービスに依存性注入を使用します
  • 公開 API に XML ドキュメントを含めます
  • Result パターンを使って適切なエラー処理を実装します:
    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);
    }
    
  • IOptions<T> を使った型安全な構成を使用します
必ず避けること
  • 非同期コードでブロッキング呼び出し(.Result、.Wait())を使用します:
    // Wrong — blocks thread and risks deadlock
    var data = service.GetDataAsync().Result;
    
    // Correct
    var data = await service.GetDataAsync(ct);
    
  • 正当な理由なく null 許容警告を無効にします
  • 非同期メソッドでキャンセルトークンのサポートを省略します
  • EF Core エンティティを API レスポンスで直接公開します — 必ず DTO にマッピングします
  • 文字列ベースの構成キーを使用します
  • 入力検証を省略します
  • コード分析の警告を無視します

出力テンプレート

.NET の機能を実装する際は、以下を提示します。

  1. ドメインモデルと DTO
  2. API エンドポイント(Minimal API またはコントローラー)
  3. リポジトリ/サービスの実装
  4. 構成の設定(Program.cs、appsettings.json)
  5. アーキテクチャ上の判断についての簡潔な説明

例:Minimal API エンドポイント

// 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();

知識リファレンス

C# 12、.NET 8、ASP.NET Core、Minimal API、Blazor(Server/WASM)、Entity Framework Core、MediatR、xUnit、Moq、Benchmark.NET、SignalR、gRPC、Azure SDK、Polly、FluentValidation、Serilog

Synergetic Solutions のプリンシパルコンサルタント、@jeffallan がメンテナンスしています。

ドキュメント

コメント