dotnet-core-expert
.NET 8アプリケーションの構築時に使用するスキルで、Minimal API、クリーンアーキテクチャ、クラウドネイティブなマイクロサービスの実装をサポートします。Entity Framework Core、MediatRを用いたCQRS、JWT認証、AOTコンパイルなどの場面で呼び出してください。
description の原文を見る
Use when building .NET 8 applications with minimal APIs, clean architecture, or cloud-native microservices. Invoke for Entity Framework Core, CQRS with MediatR, JWT authentication, AOT compilation.
SKILL.md 本文
.NET Core エキスパート
コア ワークフロー
- 要件を分析 — アーキテクチャパターン、データモデル、API 設計を特定
- ソリューションを設計 — 適切な分離を伴うクリーンアーキテクチャレイヤーを作成
- 実装 — 最新の C# 機能を使用して高性能コードを記述;
dotnet buildを実行してコンパイルを検証 — ビルドが失敗した場合、エラーを確認し、問題を修正して再ビルドしてから続行 - セキュア化 — 認証、認可、セキュリティベストプラクティスを追加
- テスト — xUnit と統合テストで包括的なテストを作成;
dotnet testを実行してすべてのテストに合格することを確認 — テストが失敗した場合、障害を診断し、実装を修正して再実行してから続行;curlまたは REST クライアントでエンドポイントを検証
リファレンスガイド
コンテキストに基づいて詳細なガイダンスを読み込みます:
| トピック | リファレンス | 読み込むタイミング |
|---|---|---|
| Minimal APIs | references/minimal-apis.md | エンドポイント、ルーティング、ミドルウェアの作成時 |
| クリーンアーキテクチャ | references/clean-architecture.md | CQRS、MediatR、レイヤー、DI パターン時 |
| Entity Framework | references/entity-framework.md | DbContext、マイグレーション、リレーションシップ時 |
| 認証 | references/authentication.md | JWT、Identity、認可ポリシー時 |
| クラウドネイティブ | references/cloud-native.md | Docker、ヘルスチェック、設定時 |
制約事項
必須事項
- .NET 8 と C# 12 の機能を使用
- Nullable 参照型を有効化:
.csprojで<Nullable>enable</Nullable>を設定 - すべての I/O 操作に async/await を使用 — 例:
await dbContext.Users.ToListAsync() - 適切な依存性注入を実装
- DTO には record 型を使用 — 例:
public record UserDto(int Id, string Name); - クリーンアーキテクチャの原則に従う
WebApplicationFactory<Program>で統合テストを作成- OpenAPI/Swagger ドキュメントを設定
禁止事項
- 同期 I/O 操作を使用しない
- API レスポンスでエンティティを直接公開しない
- 入力検証をスキップしない
- レガシー .NET Framework パターンを使用しない
- アーキテクチャレイヤーに関心を混在させない
- 非推奨の EF Core パターンを使用しない
コード例
Minimal API エンドポイント
// Program.cs
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
builder.Services.AddMediatR(cfg => cfg.RegisterServicesFromAssembly(typeof(Program).Assembly));
var app = builder.Build();
app.UseSwagger();
app.UseSwaggerUI();
app.MapGet("/users/{id}", async (int id, ISender sender, CancellationToken ct) =>
{
var result = await sender.Send(new GetUserQuery(id), ct);
return result is null ? Results.NotFound() : Results.Ok(result);
})
.WithName("GetUser")
.Produces<UserDto>()
.ProducesProblem(404);
app.Run();
MediatR クエリハンドラ
// Application/Users/GetUserQuery.cs
public record GetUserQuery(int Id) : IRequest<UserDto?>;
public sealed class GetUserQueryHandler : IRequestHandler<GetUserQuery, UserDto?>
{
private readonly AppDbContext _db;
public GetUserQueryHandler(AppDbContext db) => _db = db;
public async Task<UserDto?> Handle(GetUserQuery request, CancellationToken ct) =>
await _db.Users
.AsNoTracking()
.Where(u => u.Id == request.Id)
.Select(u => new UserDto(u.Id, u.Name))
.FirstOrDefaultAsync(ct);
}
非同期クエリを使用した EF Core DbContext
// Infrastructure/AppDbContext.cs
public sealed class AppDbContext(DbContextOptions<AppDbContext> options) : DbContext(options)
{
public DbSet<User> Users => Set<User>();
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.ApplyConfigurationsFromAssembly(typeof(AppDbContext).Assembly);
}
}
// サービスでの使用
public async Task<IReadOnlyList<UserDto>> GetAllAsync(CancellationToken ct) =>
await _db.Users
.AsNoTracking()
.Select(u => new UserDto(u.Id, u.Name))
.ToListAsync(ct);
Record 型による DTO
public record UserDto(int Id, string Name);
public record CreateUserRequest(string Name, string Email);
出力テンプレート
.NET 機能を実装する場合、以下を提供します:
- プロジェクト構成(ソリューション/プロジェクトファイル)
- ドメインモデルと DTO
- API エンドポイントまたはサービス実装
- 該当する場合はデータベースコンテキストとマイグレーション
- アーキテクチャ上の決定についての簡潔な説明
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- jeffallan
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/jeffallan/claude-skills / ライセンス: MIT
関連スキル
superpowers-streamer-cli
SuperPowers デスクトップストリーマーの npm パッケージをインストール、ログイン、実行、トラブルシューティングできます。ユーザーが npm から `superpowers-ai` をセットアップしたい場合、メールまたは電話でサインインもしくはアカウント作成を行いたい場合、ストリーマーを起動したい場合、表示されたコントロールリンクを開きたい場合、後で停止したい場合、またはソースコードへのアクセスなしに npm やランタイムの一般的な問題から復旧したい場合に使用します。
catc-client-ops
Catalyst Centerのクライアント操作・監視機能 - 有線・無線クライアントのリスト表示・フィルタリング、MACアドレスによる詳細なクライアント検索、クライアント数分析、時間軸での分析、SSIDおよび周波数帯によるフィルタリング、無線トラブルシューティング機能を提供します。MACアドレスやIPアドレスでのクライアント検索、サイト別やSSID別のクライアント数集計、無線周波数帯の分布分析、Wi-Fi信号の問題調査が必要な場合に活用できます。
ci-cd-and-automation
CI/CDパイプラインの設定を自動化します。ビルドおよびデプロイメントパイプラインの構築または変更時に使用できます。品質ゲートの自動化、CI内のテストランナー設定、またはデプロイメント戦略の確立が必要な場合に活用します。
shipping-and-launch
本番環境へのリリース準備を行います。本番環境へのデプロイ準備が必要な場合、リリース前チェックリストが必要な場合、監視機能の設定を行う場合、段階的なロールアウトを計画する場合、またはロールバック戦略が必要な場合に使用します。
linear-release-setup
Linear Releaseに向けたCI/CD設定を生成します。リリース追跡の設定、LinearのCIパイプライン構築、またはLinearリリースとのデプロイメント連携を実施する際に利用できます。GitHub Actions、GitLab CI、CircleCIなど複数のプラットフォームに対応しています。
tracking-application-response-times
API エンドポイント、データベースクエリ、サービスコール全体にわたるアプリケーションのレスポンスタイムを追跡・最適化できます。パフォーマンス監視やボトルネック特定の際に活用してください。「レスポンスタイムを追跡する」「API パフォーマンスを監視する」「遅延を分析する」といった表現で呼び出せます。