ASP.NETは、マイクロソフトが開発・提供しているWebアプリケーションフレームワークで、動的なウェブサイトやWebアプリケーションやWebサービスの開発や運用を行う。ASP.NETはActive Server Pagesを.NET向けにしたものである。
ASP.NETのもとには、ウェブサイト・ウェブアプリケーションの作成するために3種類のフレームワークが用意されている[1]。
このほか、Web API作成に特化したASP.NET Web API、リアルタイム処理のためのASP.NET SignalRといったフレームワークが存在する。
このほか、.NET Core上で動作するASP.NET Coreが新たに開発されている。
ASP.NETは、それまでのWebアプリケーション構築の常識であった、HTMLの知識やHTTP通信の仕組み、ブラウザとサーバー間のデータのやりとりなどを抽象化して、GUIモデルによるアプリケーション開発が行えるようになっている。ページデザインは、以前のASPと同じようにHTMLを直接記述することもできるが、Visual Studioなどの開発環境を用いることでGUIによるページデザインが行えるようになっている。また、HTTP POSTの仕組みを利用したPostBackと呼ばれる仕組みを使うことによって、イベント駆動型プログラミングを実現している。
内部の仕組みは抽象化されているが、実際にはHTMLやHTTP、JavaScriptなど従来のモデルを使用しているため、通常のWebアプリケーションと同様にWebブラウザで表示できるというメリットがある。ただしその反面、WebブラウザやHTTPの制約に考慮して開発することが必要なのは従来通りであるため、Webアプリケーションが分からないプログラマでもWebアプリケーションを開発できるようになる魔法の杖では決してない。
また、ブラウザを認識して最適なHTMLを生成するほか、実行時に前回に実行したものと比べ変更があるときにのみコンパイルをしてキャッシュしておくため、ASPと比べ処理速度が向上している。
ASPはSSIから呼び出すことができるが、ASP.NETは呼び出せない。
IISではASP.NETはaspnet_isapi.dllというファイルがISAPIを利用して動作している。ASP.NETの動作に関する設定の多くは、*.configファイルを利用している。事前にコンパイルされたファイルまたはDLLやコンパイルされていないファイルを指定したディレクトリに置くだけで動作する。
- ASP.NETで使用するクラスの多くは、以下の名前空間で定義されている。
System.WebSystem.Web.UI
Visual Studioでは、Visual BasicやC#を既定の言語として選択するようになっているが、最終的にはコンパイルされたアセンブリで動作するため、C++/CLIやJScript.NETなど.NETに対応した言語であれば様々な言語で記述することもできる。
- aspx ファイル
- 一般的なウェブフォームページ
- asax ファイル
- アプリケーションレベルのロジックとイベントハンドリングの構築
- ascx ファイル
- オリジナルのユーザコントロールをウェブページで利用する場合に用いる
- ashx ファイル
- 独自のHTTPハンドラの構築
- asmx ファイル
- ウェブサービスのページの構築
- axd ファイル
- アプリケーションレベルでのトレーシングのためのファイル
- browser ファイル
- Webサイトが許容するブラウザの構成を保存するファイル
- config ファイル
- Webアプリケーションの設定を記述するXML形式のファイル
- cs/vb ファイル
- コンパイル前のソースファイル。前者はC#言語で、後者はVisual Basic言語で記述される
- master ファイル
- ページに統一的なデザインを設定するマスターページファイル
- sitemap ファイル
- サイトマップの設定ファイル
- skin ファイル
- Webページのテーマスキンの構築
- resx ファイル
- ファイルの国際化(グローバリゼーション)や地域化(ローカリゼーション)する場合のリソースファイル
- App_Code
- *.csや*.vbなどのソースファイルを配置するディレクトリ
- App_LocalResources
- 個々にばらばらになった地域化されたファイルを配置するディレクトリ
- App_GlobalResources
- たくさんのページの地域化するリソース (*.resx) を配置するディレクトリ
- App_Themes
- テーマファイルの配置するディレクトリ
- App_Browsers
- サイトの仕様に沿ったブラウザの定義を配置する*.browser ファイルを配置するディレクトリ
- bin
- ASP.NETで利用するバイナリファイルの配置に用いるディレクトリ
ASP.NETでは普通、コード表示ブロック (<% %>)をbody要素内で使わない。(コード表示ブロックを使用して、インラインコードを埋め込むこともできる。)
例1: Hello, Worldの文字列を出力させる(例題の言語はVisual Basic)。
<%@PageLanguage="VB"%><scriptrunat="server">PrivateSubPage_Load()Label1.Text="Hello, World"EndSub</script><html><body><formrunat="server"><asp:Labelid="Label1"/></form></body></html>
例2: コードを別のファイルに記述する。
Default.aspx
<%@PageLanguage="VB"CodeFile="Default.aspx.vb"Inherits="_Default"%><html><body><formrunat="server"><asp:Labelid="Label1"/></form></body></html>
Default.aspx.vb
PartialClass_DefaultInheritsSystem.Web.UI.PagePrivateSubPage_Load(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMe.LoadLabel1.Text="Hello, World"EndSubEndClass
- ^“ASP.NET の概要”. Microsoft Docs (2019年8月10日). 2019年10月5日閲覧。 “ASP.NET は、web アプリケーションを作成するための3つのフレームワークを提供します。Web フォーム、ASP.NET MVC、および ASP.NET Web ページ。”
マイクロソフトのAPIとフレームワーク |
|---|
| グラフィック | |
|---|
| オーディオ | |
|---|
| マルチメディア | |
|---|
| ウェブ | |
|---|
| データアクセス | |
|---|
| ネットワーク | |
|---|
| コミュニケーション | |
|---|
| 管理 | |
|---|
| コンポーネントモデル | |
|---|
| ライブラリ | |
|---|
| デバイスドライバ | |
|---|
| セキュリティ | |
|---|
| .NET | |
|---|
| ソフトウェアファクトリー | |
|---|
| IPC | |
|---|
| アクセシビリティ | |
|---|
テキストと多言語 サポート | |
|---|
| 人工知能 | |
|---|
|