ASP.NET

ASP.NETは、マイクロソフトが開発・提供しているWebアプリケーションフレームワークです。動的なウェブサイト、Webアプリケーション、そしてWebサービスの開発と運用をサポートします。このフレームワークは、以前のActive Server Pages(ASP)を.NET環境向けに進化させたものです。

ASP.NETのフレームワーク



ASP.NETには、ウェブサイトやWebアプリケーションを構築するための主要なフレームワークが3つあります。

ASP.NET Webフォーム: GUIベースでの開発を可能にし、従来のWebアプリケーション開発の複雑さを抽象化します。
ASP.NET MVC: モデル・ビュー・コントローラパターンに基づいた、より柔軟でテストしやすいアプリケーション開発を可能にします。
ASP.NET Webページ: シンプルなWebページを作成するための軽量なフレームワークです。

さらに、Web APIに特化したASP.NET Web APIや、リアルタイム処理を実現するASP.NET SignalRといったフレームワークも存在します。また、.NET Core上で動作するASP.NET Coreも新たに開発され、クロスプラットフォームでの開発が可能になりました。

ASP.NET Webフォームの特徴



ASP.NET Webフォームは、従来のWebアプリケーション開発におけるHTMLやHTTPの知識、ブラウザとサーバー間のデータ交換といった複雑な要素を抽象化し、GUIベースでのアプリケーション開発を可能にしました。ページデザインは、HTMLを直接記述することもできますが、Visual Studioなどの開発環境を使用することで、GUIを通じて視覚的にデザインすることも可能です。PostBackという仕組みを利用することで、イベント駆動型のプログラミングが実現します。

内部ではHTML、HTTP、JavaScriptなどの従来のモデルが使用されているため、通常のWebアプリケーションと同様にWebブラウザで表示できます。しかし、WebブラウザやHTTPの制約を考慮した開発が必要な点は変わらないため、Webアプリケーションの知識がないプログラマでも簡単に開発できるわけではありません。

ASP.NETは、ブラウザを識別して最適なHTMLを生成する機能や、実行時に変更があった場合にのみコンパイルしキャッシュする機能により、従来のASPと比較して処理速度が向上しています。なお、ASPはSSIから呼び出すことができましたが、ASP.NETは呼び出せません。

ASP.NETの動作



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

ASP.NETで使用する主な名前空間



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

`System.Web`
`System.Web.UI`

ASP.NETで利用可能な言語



Visual Studioでは、Visual BasicやC#がデフォルトの言語として選択できます。しかし、ASP.NETは最終的にコンパイルされたアセンブリで動作するため、C++/CLIやJScript.NETなど、.NETに対応した言語であれば、様々な言語で記述することができます。

ASP.NETの拡張子



ASP.NETでは、様々な役割を持つファイルが異なる拡張子で区別されます。

`.aspx`: 一般的なWebフォームページ
`.asax`: アプリケーションレベルのロジックとイベントハンドリングを記述
`.ascx`: ユーザーコントロールをWebページで利用するためのファイル
`.ashx`: 独自のHTTPハンドラを構築
`.asmx`: Webサービスのページを構築
`.axd`: アプリケーションレベルでのトレーシングのためのファイル
`.browser`: Webサイトが許容するブラウザの構成を記述
`.config`: Webアプリケーションの設定を記述するXMLファイル
`.cs`/`.vb`: コンパイル前のソースファイル(C#またはVisual Basicで記述)
`.master`: ページに統一的なデザインを設定するマスターページファイル
`.sitemap`: サイトマップの設定ファイル
`.skin`: Webページのテーマスキンを構築
`.resx`: 国際化(グローバリゼーション)や地域化(ローカリゼーション)のためのリソースファイル

ASP.NETのディレクトリ構造



ASP.NETでは、特定の役割を持つディレクトリが用意されています。

`App_Code`: `.cs`や`.vb`などのソースファイルを配置
`App_LocalResources`: 地域化されたファイルを配置
`App_GlobalResources`: 複数ページで共有するリソースファイルを配置
`App_Themes`: テーマファイルを配置
`App_Browsers`: サイトの仕様に沿ったブラウザ定義ファイルを配置
`bin`: ASP.NETで利用するバイナリファイルを配置

ASP.NETの文法



ASP.NETでは、通常、コード表示ブロック (`<% %>`) はbody要素内では使用しませんが、インラインコードを埋め込むことは可能です。以下に簡単な例を示します。

例1: Hello, Worldの文字列を出力(Visual Basic

html
<%@ Page Language="VB" %>



ASP<a href='http://pedia.3rd-in.co.jp/wiki/.NET'>.NET</a> Example


<% Response.Write("Hello, World") %>




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

`Default.aspx`

html
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="Default.aspx.vb" Inherits="Default" %>



Code Behind Example









`Default.aspx.vb`

vb
Imports System

Partial Class Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
Label1.Text = "Hello, Code Behind!"
End Sub
End Class


開発ツール



ASP.NETの開発には、以下のようなツールが利用できます。

Microsoft Expression Web
Microsoft Visual Studio
Microsoft Visual Web Developer
Microsoft SharePoint Designer
Adobe Dreamweaver MX
ASP.NET Web Matrix
MonoDevelop
SharpDevelop
Delphi 2006

展開プラットフォーム



ASP.NETアプリケーションは、以下のプラットフォームに展開できます。

Internet Information Services (IIS)
XSP (Webサーバ)
Apache HTTP Server (mod_monoを使用し、XSPがバックグラウンドで動作)

フレームワーク



ASP.NETの拡張や補助として、以下のフレームワークが利用できます。

Castle Monorail
Spring.NET
Skaffold.NET

関連項目



.NET Framework
ASP.NET AJAX
ASP.NET MVC Framework

外部リンク



公式ウェブサイト
ASP.NET のドキュメント
Microsoft Web 開発 ガイドライン
CodePlex - ASP.NET (英語)
ASP.NET MVC 2 サンプル ソースコード

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。