ASP.NET

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フォームの特徴

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は呼び出せない。

ASP.NETの動作

IISではASP.NETはaspnet_isapi.dllというファイルがISAPIを利用して動作している。ASP.NETの動作に関する設定の多くは、*.configファイルを利用している。事前にコンパイルされたファイルまたはDLLやコンパイルされていないファイルを指定したディレクトリに置くだけで動作する。

  • ASP.NETで使用するクラスの多くは、以下の名前空間で定義されている。
System.WebSystem.Web.UI

ASP.NETで利用できる言語

Visual Studioでは、Visual BasicC#を既定の言語として選択するようになっているが、最終的にはコンパイルされたアセンブリで動作するため、C++/CLIJScript.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の文法

ASP.NETでは普通、コード表示ブロック (<% %>)をbody要素内で使わない。(コード表示ブロックを使用して、インラインコードを埋め込むこともできる。)

例1: Hello, Worldの文字列を出力させる(例題の言語はVisual Basic)。

 <%@ Page Language="VB" %> <script runat="server">     Private Sub Page_Load()         Label1.Text = "Hello, World"     End Sub </script> <html>  <body>   <form runat="server">    <asp:Label id="Label1" />   </form>  </body> </html>

例2: コードを別のファイルに記述する。

Default.aspx

 <%@ Page Language="VB" CodeFile="Default.aspx.vb" Inherits="_Default" %> <html>  <body>   <form runat="server">    <asp:Label id="Label1" />   </form>  </body> </html>

Default.aspx.vb

 Partial Class _Default     Inherits System.Web.UI.Page     Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load         Label1.Text = "Hello, World"     End Sub End Class

開発ツール

展開プラットフォーム

フレームワーク

関連項目

脚注

外部リンク