ASP.NET
ASP.NETは、マイクロソフトが開発・提供しているWebアプリケーションフレームワークで、動的なウェブサイトやWebアプリケーションやXML Webサービスの開発や運用を行う。ASP.NETはActive Server Pagesを.NET向けにしたものである。
目次
ASP.NETの特徴
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.Web System.Web.UI
ASP.NETで利用できる言語
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の文法
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
開発ツール
- Microsoft Expression Web
- Microsoft Visual Studio
- Microsoft Visual Web Developer
- Microsoft SharePoint Designer
- Adobe Dreamweaver MX
- ASP.NET Web Matrix
- MonoDevelop
- SharpDevelop
- Delphi 2006
展開プラットフォーム
- Internet Information Services
- XSP (Webサーバー)
- Apache HTTP Server - (mod_mono を利用、暗黙的にXSPがバックグラウンドで動作する)
フレームワーク
関連項目
外部リンク
- ASP.NET を学習する
- Microsoft/web
- webmatrix とは
- ASP.NETをサンプルコードから学習する
- ASP.NET 開発者向け技術情報
- Home : The Official Microsoft ASP.NET Site テンプレート:En icon
- Microsoft Web 開発 ガイドライン ~ ASP.NET プログラミング エッセンシャル ~
- CodePlex - ASP.NET テンプレート:En icon
- ASP.NET MVC チュートリアル
- ASP.NET MVC 2 サンプル ソースコード
- Visual Web Developer Express
- マイクロソフトエバンジェリストのブログ
- Microsoft Web Platform