Webバックエンド - フレームワーク

ASP.NET Core えーえすぴーどっとねっとこあ

.NETC#WebフレームワークMVCミドルウェアクロスプラットフォーム
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画面を持たず、データのやり取りだけを行う仕組みスマホアプリのバックエンド
BlazorC#でブラウザ上のUI(見た目)も書ける仕組みJavaScriptレスな画面開発
SignalRリアルタイム通信(チャット・通知など)の仕組みチャット・ライブ更新
ミドルウェアリクエスト処理のパイプライン(認証・ログ等)認証チェック・ログ出力
依存性注入(DI部品の組み合わせを柔軟にする設計の仕組みテストしやすいコード構造

覚え方:「ASPはアプリ・スピード・プラットフォーム」

App(アプリ)を作る、Speed(速度)が高い、Platform(プラットフォーム)を選ばない——この3つがASP.NET Coreの強みです。発注時や選定会議でのキーワードとして覚えておくと便利です。

バージョンの変遷と現在の状況

バージョンリリース特徴
ASP.NET(旧)2002年〜Windows専用・IIS依存
ASP.NET Core 1.02016年クロスプラットフォーム化・完全刷新
ASP.NET Core 3.12019年LTS(長期サポート版)・Blazer追加
.NET 6 / Core 62021年LTS・最小限APIの導入
.NET 82023年LTS・パフォーマンス大幅改善
.NET 92024年最新版(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 CoreSpring BootJavaLaravelPHPExpressNode.js
言語C#Java / KotlinPHPJavaScript
OS対応Win/Mac/LinuxWin/Mac/LinuxWin/Mac/LinuxWin/Mac/Linux
パフォーマンス◎ 非常に高速○ 高速△ 普通○ 高速
Microsoftとの親和性◎ 最高△ 普通△ 普通△ 普通
学習コスト△ やや高い△ やや高い○ 低め○ 低め
エンタープライズ実績◎ 豊富◎ 豊富○ あり△ 少なめ
Azure連携◎ 最高○ 可能○ 可能○ 可能

ASP.NET Coreのリクエスト処理の流れ(ミドルウェアパイプライン)

クライアント (ブラウザ等) 認証 ミドルウェア ルーティング ミドルウェア コントローラー / エンドポイント レスポンス (HTML/JSON) ミドルウェアパイプライン(リクエストが通過する関所) Web API モード ・JSON形式でデータ返却 ・画面(HTML)は持たない ・スマホアプリ連携向け ・Minimal APIで簡単記述 ・REST / gRPC 対応 MVC / Razor Pages ・HTMLページを返す ・サーバー側でレンダリング ・管理画面・業務画面向け ・Razorテンプレートで記述 ・フォーム・CRUD向け Blazor ・C#でUI操作も記述 ・JavaScriptを最小化 ・Server / WASM の2方式 ・リアルタイムUI更新 ・SPA的な体験を実現

関連する規格・RFC

規格・RFC番号内容
RFC 7230HTTP/1.1 メッセージ構文(ASP.NET CoreはHTTPサーバーとして準拠)
RFC 7540HTTP/2(Kestrelサーバーが対応)
RFC 9114HTTP/3(.NET 7以降でKestrelが対応)
RFC 6455WebSocket(SignalRが内部で利用)
RFC 7519JWT(JSON Web Token)認証(ASP.NET Coreの認証基盤で広く利用)

関連用語

  • ./150-dotnet.md — .NET:ASP.NET Coreが動作する基盤プラットフォーム
  • ./151-csharp.md — C#:ASP.NET Core開発で主に使われるプログラミング言語
  • ./152-rest-api.mdREST 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.mdJWT(JSON Web Token):ASP.NET CoreのWeb API認証でよく使われる仕組み
  • ./158-middleware.md — ミドルウェア:ASP.NET Coreのリクエスト処理を担うパイプラインの構成要素