言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

  1. トップページ
  2. IT用語 & 歴史辞典
  3. ASP.NET

ASP.NET

ASP.NETはMicrosoftが開発するWebアプリケーションフレームワークです。2002年に「Active Server Pages(ASP)」の後継として登場した「ASP.NET(後にASP.NET Frameworkと呼ばれる)」が原型で、2016年にASP.NET Coreとしてクロスプラットフォーム対応の完全書き直しが行われました。現代では .NETの一部としてC#で書かれることが大半で、Linux・macOS・Windowsの全てで動作します。

名前の由来

「ASP」はActive Server Pagesの略です。Webサーバー上でページを動的に生成する技術として1996年にMicrosoftが導入したのが「ASP(Classic ASP)」で、ASP.NETはその後継として2002年に登場しました。「.NET」はMicrosoftの統合開発プラットフォームの名前で、共通言語ランタイム(CLR)上で動く言語ファミリ(C# / VB.NET / F# 等)を指します。

2002年: ASP.NET の誕生

1996年に登場したClassic ASPは、HTMLにVBScriptを埋め込んで動的ページを生成する仕組みでした。シンプルでしたが、大規模アプリケーションを書くには構造が貧弱で、ロジックとビューが混在しがちでした。

2002年、Microsoftは.NET Framework 1.0と共にASP.NETを発表しました。設計を主導したのはスコット・ガスリー(Scott Guthrie)さんマーク・アンダース(Mark Anders)さんです。Web Formsと呼ばれるイベント駆動型のプログラミングモデルを導入し、デスクトップ開発のような感覚でWebアプリを書ける、という設計思想でした。

2009年にはASP.NET MVCが登場し、より明示的なMVC(Model-View-Controller)パターンに沿った開発スタイルが追加されました。RubyのRailsから影響を受けた設計で、Web Formsのイベント駆動モデルとは別の選択肢として広く採用されました。

2016年: ASP.NET Core への大刷新

2016年6月、MicrosoftはASP.NET Core 1.0を発表しました。これはASP.NET Frameworkの完全書き直しで、以下の大きな変化を含んでいます。

  • クロスプラットフォーム対応: Windows / Linux / macOS 全てで動く
  • オープンソース化: GitHub上で開発が進められる
  • モジュール式: 必要な機能だけを NuGet で取り込む構成
  • Kestrel: 新しい高速Webサーバーを内蔵
  • DI(依存性注入)が標準装備

Microsoftの「.NET Foundation」設立(2014年)と.NET Coreのオープンソース化は、長年Microsoft製品に距離を置いてきたLinux系開発者にも.NETを近づけるきっかけになりました。

現代における ASP.NET の位置

2020年に「.NET 5」がリリースされた際、「.NET Framework」と「.NET Core」が「.NET」として統合されました。ASP.NET Coreはこの統合された.NETの一部として、現在は単に「ASP.NET Core」または「.NET Web」と呼ばれています。2024年に.NET 9が登場、2025年には.NET 10が予定されています。

採用事例としては、Stack Overflow(C# + ASP.NET)、Microsoft の各種クラウドサービス(Azure Portal等)、エンタープライズ向け業務システム多数があります。「Visual Studio + C# + Entity Framework + ASP.NET Core」というMicrosoftスタックは、Windows系の業務開発で広く使われ続けています。Razor Pages・MVC・Blazor・Web APIなど、用途に応じた複数のスタイルが提供されているのも特徴です。

関連辞典

ASP.NET Coreのアーキテクチャ・MVC・Razor Pages・Entity Framework・実用パターンはASP.NET辞典で詳しく解説しています。