ASP.NET Core えーえすぴーどっとねっとこあ
簡単に言うとこんな感じ!
マイクロソフトが作った、WebサイトやWeb APIを作るための「開発キット」だよ!昔のWindowsだけで動く版をゼロから作り直して、Mac・Linux・Windowsどこでも動くようにしたんだ。C#という言語で書ける本格的なWebフレームワークってこと!
ASP.NET Coreとは
ASP.NET Coreは、Microsoftが開発・提供するオープンソースのWebアプリケーションフレームワークです。WebサイトやWeb API(アプリ間通信の仕組み)を効率よく作るための道具箱で、プログラミング言語C#(シーシャープ)を中心に使います。
旧来の「ASP.NET」はWindows専用でしたが、ASP.NET Coreは2016年に完全に作り直され、Windows・macOS・Linuxの3つのOSで動作するクロスプラットフォーム対応を実現しました。パフォーマンスも大幅に向上し、TechEmpower社のベンチマークでは世界トップクラスの処理速度を記録することもあります。
企業の基幹システムや業務システムのWeb化、ECサイト、社内ポータル、モバイルアプリのバックエンドAPI開発など、幅広い場面で採用されています。特に「すでに社内にMicrosoft製品(Azure・Microsoft 365など)が多い環境」では相性がよく、システム発注の際にベンダーから提案されることが多いフレームワークの一つです。
ASP.NET Coreの主な機能・構成要素
| 機能・概念 | 説明 | 使われ方の例 |
|---|---|---|
| MVC | 画面・ロジック・データを分離する設計パターン | Webサイトの画面表示 |
| Razor Pages | ページ単位で完結するシンプルな画面開発方式 | 管理画面・フォーム |
| Web API | 画面を持たず、データのやり取りだけを行う仕組み | スマホアプリのバックエンド |
| Blazor | C#でブラウザ上のUI(見た目)も書ける仕組み | JavaScriptレスな画面開発 |
| SignalR | リアルタイム通信(チャット・通知など)の仕組み | チャット・ライブ更新 |
| ミドルウェア | リクエスト処理のパイプライン(認証・ログ等) | 認証チェック・ログ出力 |
| 依存性注入(DI) | 部品の組み合わせを柔軟にする設計の仕組み | テストしやすいコード構造 |
覚え方:「ASPはアプリ・スピード・プラットフォーム」
App(アプリ)を作る、Speed(速度)が高い、Platform(プラットフォーム)を選ばない——この3つがASP.NET Coreの強みです。発注時や選定会議でのキーワードとして覚えておくと便利です。
バージョンの変遷と現在の状況
| バージョン | リリース | 特徴 |
|---|---|---|
| ASP.NET(旧) | 2002年〜 | Windows専用・IIS依存 |
| ASP.NET Core 1.0 | 2016年 | クロスプラットフォーム化・完全刷新 |
| ASP.NET Core 3.1 | 2019年 | LTS(長期サポート版)・Blazer追加 |
| .NET 6 / Core 6 | 2021年 | LTS・最小限APIの導入 |
| .NET 8 | 2023年 | LTS・パフォーマンス大幅改善 |
| .NET 9 | 2024年 | 最新版(STS:短期サポート) |
⚠️ ASP.NET Core 3.1以降、バージョン名が「.NET X」に統一されています。「ASP.NET Core 6」ではなく「.NET 6上のASP.NET Core」と表現されることが一般的です。
歴史と背景
- 2002年:Microsoft が初代「ASP.NET」をリリース。Windows Server上のIIS(Webサーバーソフト)専用で動作
- 2008〜2013年:MVC・Web API・SignalRなど機能追加が続くが、Windows依存・重量級という課題が残る
- 2014年:Microsoftが.NETのオープンソース化を宣言。クロスプラットフォーム対応への転換を表明
- 2016年:「ASP.NET Core 1.0」として完全に作り直したバージョンをリリース。LinuxやDockerでも動作可能に
- 2019年:.NET Core 3.1がLTS(長期サポート)版としてリリース。Blazorが加わり注目度が急上昇
- 2021年:.NET 6で「Minimal API」(最小限のコードでAPIが書ける構文)が登場し、開発の手軽さが向上
- 2023年〜現在:.NET 8(LTS)・.NET 9と進化が続き、パフォーマンス・開発者体験ともに業界トップクラスを維持
他フレームワークとの比較
Webバックエンド開発には複数の選択肢があります。システム発注時に「なぜASP.NET Coreを選ぶのか」を確認するための比較表です。
| 項目 | ASP.NET Core | Spring Boot(Java) | Laravel(PHP) | Express(Node.js) |
|---|---|---|---|---|
| 言語 | C# | Java / Kotlin | PHP | JavaScript |
| OS対応 | Win/Mac/Linux | Win/Mac/Linux | Win/Mac/Linux | Win/Mac/Linux |
| パフォーマンス | ◎ 非常に高速 | ○ 高速 | △ 普通 | ○ 高速 |
| Microsoftとの親和性 | ◎ 最高 | △ 普通 | △ 普通 | △ 普通 |
| 学習コスト | △ やや高い | △ やや高い | ○ 低め | ○ 低め |
| エンタープライズ実績 | ◎ 豊富 | ◎ 豊富 | ○ あり | △ 少なめ |
| Azure連携 | ◎ 最高 | ○ 可能 | ○ 可能 | ○ 可能 |
ASP.NET Coreのリクエスト処理の流れ(ミドルウェアパイプライン)
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 7230 | HTTP/1.1 メッセージ構文(ASP.NET CoreはHTTPサーバーとして準拠) |
| RFC 7540 | HTTP/2(Kestrelサーバーが対応) |
| RFC 9114 | HTTP/3(.NET 7以降でKestrelが対応) |
| RFC 6455 | WebSocket(SignalRが内部で利用) |
| RFC 7519 | JWT(JSON Web Token)認証(ASP.NET Coreの認証基盤で広く利用) |
関連用語
- ./150-dotnet.md — .NET:ASP.NET Coreが動作する基盤プラットフォーム
- ./151-csharp.md — C#:ASP.NET Core開発で主に使われるプログラミング言語
- ./152-rest-api.md — REST API:ASP.NET Core Web APIが提供する通信方式
- ./153-mvc.md — MVC:ASP.NET Coreが採用するアプリ設計パターン
- ./154-docker.md — Docker:ASP.NET CoreアプリをコンテナとしてLinux上で動かす技術
- ./155-azure.md — Azure:MicrosoftのクラウドでASP.NET Coreとの相性が最高
- ./157-jwt.md — JWT(JSON Web Token):ASP.NET CoreのWeb API認証でよく使われる仕組み
- ./158-middleware.md — ミドルウェア:ASP.NET Coreのリクエスト処理を担うパイプラインの構成要素