Skip to content

microsoft/aspnetcore-ja-handbook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

ASP.NET Core ハンドブック

目次

タイトル 内容
第 1 章 開発環境セットアップ
  1. .NET SDK / ランタイムとは
  2. LTS/STS のサポート期間
  3. OS 別セットアップ(Windows / macOS / Linux)
  4. IDE(Visual Studio / VS Code)準備
  5. .NET CLI 基本コマンド
  6. 初回プロジェクト作成
  7. まとめ
  8. 参考ドキュメント
第 2 章 ソリューションとプロジェクト
  1. ソリューションとプロジェクトの違いと役割
  2. プロジェクト参照と NuGet パッケージ参照の使い分け
  3. 複数プロジェクト構造のパターン
  4. ビルド/実行フロー
  5. デバッグ設定・起動構成の管理
  6. 参考ドキュメント
第 3 章 MVC Web アプリケーション / API
  1. MVC (Model-View-Controller) 構成の基本
  2. コントローラー/アクションの書き方
  3. ルーティング(属性ルーティング / 規約ベースルーティング)
  4. モデルバインディング / 入力検証 (Validation)
  5. API を MVC コントローラーで実装する方法(ControllerBase, [ApiController] 属性)
  6. フィルター(ActionFilter, ExceptionFilter 等)と横断処理
  7. 参考ドキュメント
第 4 章 Minimal API
  1. Minimal API とは何か?(MVC ベースとどう違うか)
  2. Minimal API の基本構文(MapGet, MapPost 等)
  3. DI を使ったハンドラ注入、MapGroup・エンドポイントグループ化などの構成パターン
  4. Minimal API の制約・注意点と MVC との比較(構造、可読性、機能面)
  5. どのようなケースで使うかの判断基準
  6. 参考ドキュメント
第 5 章 アプリ設定 (Configuration)(予定)
  1. appsettings.json / 環境別設定 (Development / Production 等)
  2. 環境変数 / コマンドライン引数 / シークレット管理
  3. IOptions<T> / オプションバインディング
  4. 設定のオーバーライド順序と仕組み
第 6 章 依存性注入 (DI)(予定)
  1. DI の基本概念 (Interface と具象クラス)
  2. サービスの登録スコープ (Transient / Scoped / Singleton)
  3. ファクトリ登録、条件付き登録、遅延注入
  4. サービス層設計パターン
第 7 章 ファイルアップロードと外部ストレージへの保存(予定)
  1. ASP.NET Core におけるファイル受信(Buffered モデル / ストリーミング型アップロード)
    • 小さいファイル・大きいファイルの違い、ストリーミング方式のメリットなど
  2. Azure Blob Storage 等クラウドストレージへの保存方法
    • BlobClient / BlobContainerClient 利用、ストリームアップロード、上書き制御など
  3. DI によるストレージクライアント注入設計
    • 保存先パス設計、アクセス制御(公開/非公開)、メタデータ管理
第 8 章 データベースアクセスと ORM(Entity Framework Core)(予定)
  1. 概要と設計方針
  2. モデル定義と DbContext 設計
  3. マイグレーションとスキーマ管理
  4. クエリ操作と LINQ
  5. 更新/変更操作とトランザクション
  6. パフォーマンス最適化
  7. 読み取り専用レプリカ (Read-Only Replica) の扱い
  8. テスト戦略とアーキテクチャ例
第 9 章 認証と認可(予定)
  1. ASP.NET Core Identity 入門
  2. 外部ログイン(OAuth / OpenID Connect)
  3. JWT 認証 (Bearer トークン) の導入
  4. ポリシーベース認可 / ロールベース認可
  5. 認証・認可ミドルウェア設定
第 10 章 テスト入門(予定)
  1. 単体テスト (xUnit / NUnit)
  2. モックライブラリ活用 (Moq 等)
  3. DI を活かしたテスト設計
  4. Web アプリケーション統合テスト (WebApplicationFactory など)
  5. 外部 API 呼び出し部分のモック化
第 11 章 デプロイと運用(予定)
  1. オンプレミス/Azure への展開(他社クラウドは言及のみ)
  2. Docker コンテナ化 / Kubernetes 組み込み
  3. 環境変数・シークレット・Key Vault (Azure) の利用
  4. ロギング・メトリクス収集 / モニタリング
  5. 障害対応・自動再起動 / フォールトトレランス
  6. バージョンアップ・マイグレーション戦略
第 12 章 セキュリティ(予定)
  1. 通信レイヤーの保護 (HTTPS, HSTS, TLS 設定)
  2. CSRF(クロスサイトリクエストフォージェリ)対策
    • Anti-Forgery Token の仕組み・属性指定・AJAX 対応
  3. CORS(Cross-Origin Resource Sharing)制御
    • ポリシー定義、AllowAnyOrigin / AllowCredentials の注意、プリフライト対応
  4. 入力検証 / モデルバインディング検証(SQL インジェクション, バリデーション制御)
  5. XSS(クロスサイトスクリプティング)対策(エスケープ/Content Security Policy 等)
  6. Clickjacking 対策(X-Frame-Options, CSP frame-ancestors 指定)
  7. セキュリティヘッダー (CSP, Referrer-Policy, X-Content-Type-Options, Strict-Transport-Security, X-XSS-Protection など)
  8. ログ・例外情報の漏えい防止(スタックトレース抑制、詳細情報非表示)
  9. セッション管理・Cookie 設定(Secure, HttpOnly, SameSite 属性など)
  10. API セキュリティ強化策(Rate Limit, CORS 制御, API キー / OAuth, 認可層の強化)
第 13 章 非同期処理と並行性設計(予定)
  1. async / await の基礎
  2. CancellationToken の概念と使い方
  3. 非同期/同期混在時の注意点
  4. 並行処理/並列化 (Tasks, Parallel)
  5. スレッドプール枯渇を避ける設計
  6. バックグラウンド処理 (IHostedService, BackgroundService)
第 14 章 外部サービス呼び出し:HttpClient と API 通信(予定)
  1. HttpClient の基本使い方
  2. HttpClient のライフサイクル管理問題
  3. IHttpClientFactory を使ったクライアント管理(Named / Typed Clients)
  4. Delegating Handler による共通処理(ログ・認証付与・リトライなど)
  5. Polly 等を使ったレジリエンス設計
  6. タイムアウト・非同期呼び出し・エラーハンドリング
  7. API 呼び出し部分をサービス層に抽象化し、テスト可能に設計
  8. メール送信の実装方法
第 15 章 キャッシュ / セッション / Cookie / 状態管理(予定)
  1. メモリキャッシュ / 分散キャッシュ (Redis 等)
  2. 出力キャッシュ / レスポンスキャッシュ
  3. セッションと Cookie 管理
  4. ETag / キャッシュ制御ヘッダー
  5. キャッシュ戦略設計上の注意点
第 16 章 バックエンドタスク / バックグラウンド処理(予定)
  1. 背景処理 (Background Tasks) の意義と適用シナリオ
    • 定期処理 (CRON 相当)、バッチ処理、キュー処理、ポーリング、非同期ジョブなど
  2. IHostedService / BackgroundService による実装
  3. スコープ付きサービスとの併用
    • バックエンド処理内で Scoped なサービス (例:DbContext 等) を使うための IServiceScope 利用法
  4. キューベース / 非同期タスクキュー処理
  5. エラーハンドリング / リトライ制御 / 再実行戦略
  6. 停止・シャットダウン時の処理
    • StopAsync / キャンセル通知 / グレースフルシャットダウン設計
  7. Web アプリとの共存時の注意点
    • アイドルスリープ環境、Always On 設定、アプリ停止対策など
  8. 外部 API 呼び出しとの組み合わせ
    • バックエンド処理で HttpClient / IHttpClientFactory を使う際の注意点
  9. 補足:3rd Party バックグラウンドフレームワーク(Hangfire 等)
    • 軽い紹介レベルで、Hangfire などのライブラリを使う選択肢について触れる
  10. 実装パターン比較と注意点
    • 長時間 vs 短時間処理、ジョブ粒度設計、同時実行制御、テスト方針など
  11. サンプルテンプレート / コードスニペット
第 17 章 パフォーマンス最適化 / スケーラビリティ(予定)
  1. ボトルネックの特定 (プロファイラー / ログ / Application Insights 等)
  2. キャッシュ活用・遅延ロード制御
  3. DB 接続最適化 / プール設定
  4. 非同期最適化 / 中断可能処理
  5. 圧縮 / 静的ファイル最適化 / CDN 利用
  6. スケールアウト設計 (ステートレス化, セッション戦略, 分割設計)
第 18 章 ミドルウェアと HTTP リクエストパイプライン(予定)
  1. ミドルウェア (Middleware) の概念
  2. リクエストの通り道:UseRouting → UseAuthentication → UseAuthorization → UseEndpoints など
  3. 例外処理ミドルウェア / ログミドルウェアの実装例
  4. Forwarded Headers (X-Forwarded-For, X-Forwarded-Proto 等) の扱い
    • UseForwardedHeaders と ForwardedHeadersOptions の設定
    • 信頼できるプロキシ (KnownProxies / KnownNetworks) の指定
    • CDN/リバースプロキシ構成におけるクライアント IP の取得戦略
    • ミドルウェア適用順序と認証・URL 生成への影響
付録 付録(予定)
  1. .NET CLI コマンドリファレンス
  2. EF / LINQ クイックリファレンス
  3. HttpClient / Polly サンプルテンプレート
  4. よくあるエラーと対処
  5. 他言語との用語対照表
  6. 推奨開発パターン集

はじめに

このコンテンツの対象読者・前提条件

本コンテンツは C# 以外の開発言語(Java、Python、TypeScript/JavaScript、Go など)を用いた Web アプリケーション開発の経験がある方 を対象に、ASP.NET Core による Web アプリケーション・Web API 開発の基礎から実践的な活用方法までを習得していただくことを目的としています。そのため、HTTP の基礎的な知識、Web フレームワークの一般的な機能や設計パターンに関する知識があることを前提としています。

前提条件

  • 何らかのプログラミング言語でのアプリケーション開発経験がある
  • 何らかの Web フレームワーク(Spring Boot、Django、Express.js、Gin など)を使用した経験がある
  • HTTP の基本(リクエスト/レスポンス、ステータスコード、REST の概念)を理解している
  • ターミナル(コマンドライン)の基本的な操作ができる

本ガイドで扱わない内容

本ガイドでは Razor Pages および Blazor の解説は行いません。
ASP.NET Core には複数の Web UI フレームワークが含まれていますが、本ガイドでは MVC パターンによる Web アプリケーション/Web APIMinimal API に焦点を当てます。
Razor Pages や Blazor に興味がある方は、以下の公式ドキュメントを参照してください。

また、C# の解説も基本的に行いませんが、必要に応じて特定機能の解説をする場合があります。C# を全く知らない場合はマイクロソフト公式の初心者向けのチュートリアルから始めることをおすすめします。

本ガイドで扱うバージョン

コンポーネント バージョン サポート種別 サポート期限
.NET 10 LTS (Long Term Support) 2028 年 11 月
ASP.NET Core 10 LTS 2028 年 11 月
EF Core 10 LTS 2028 年 11 月

.NET 10 は 2025 年 11 月にリリースされた 長期サポート (LTS) リリース であり、3 年間のサポート(2028 年 11 月まで)が提供されます。
.NET は偶数バージョン(.NET 8, 10, 12…)が LTS、奇数バージョン(.NET 9, 11…)が STS (Standard Term Support / 18 か月) となるリリースサイクルを採用しています。

参照: What's new in .NET 10 - Microsoft Learn
参照: Releases and support for .NET - Microsoft Learn

開発スタイル(CLI + IDE 両対応)

本コンテンツでは、可能な限り以下の 3 つの開発環境での操作を併記 します。お使いの環境や好みに合わせて選択してください。

.NET CLI(コマンドライン)

.NET CLI は .NET SDK に含まれるクロスプラットフォームのコマンドラインツールチェーンです。
プロジェクトの作成・ビルド・実行・テスト・発行をすべてターミナルから行えます。
OS やエディタを問わず同じコマンドで操作できるため、どの環境でも再現性のある手順 を提供します。

Visual Studio

Windows 環境での .NET 開発において最も包括的な IDE です。デバッグ・テスト・プロファイリング・デプロイまで統合された開発体験を提供します。

Visual Studio Code + C# Dev Kit

軽量でクロスプラットフォーム対応のエディタである Visual Studio Code と、Microsoft が提供する C# 開発用拡張機能 C# Dev Kit を組み合わせることで、Windows・macOS・Linux いずれの環境でも快適に .NET 開発が可能です。.NET CLI と組み合わせて使用することが推奨されます。

参照: Development process for Azure - Microsoft Learn

Tip

.NET の IDE(統合開発環境)は他にも JetBrains 社の Rider や OSS として公開されているものもあります。


皆さんの貢献をお待ちしています

このコンテンツはオープンソースで運営されており、皆さんからのフィードバックやプルリクエストを歓迎しています。コンテンツの不備への指摘、新コンテンツの提案のみならず、.NET のバージョンアップ時の内容更新なども大歓迎です。

貢献の具体的な方法については、CONTRIBUTING.md をご覧ください。


ほとんどの貢献には、貢献内容を使用する権利をマイクロソフトに付与する権利を有し、実際に付与することを表明する Contributor License Agreements(CLA)への同意が必要です。詳細については、貢献者ライセンス契約をご覧ください。

プルリクエストを送信すると、CLAボットが自動的にCLAの提出が必要かどうかを判断し、プルリクエストに適切な情報(ステータスチェック、コメントなど)を追加します。ボットの指示に従ってください。この操作は、マイクロソフトのCLAを使用しているすべてのリポジトリで一度だけ行う必要があります。

このプロジェクトは、マイクロソフトのオープンソース行動規範 を採用しています。詳細については、行動規範に関するよくある質問(FAQ) をご覧ください。ご質問やご意見がございましたら、 opencode@microsoft.comまでお問い合わせください。

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors