ASP.NET

ASP.NETは、マイクロソフトが開発・提供しているWebアプリケーションフレームワークで、動的なウェブサイトやWebアプリケーションやWebサービスの開発や運用を行う。ASP.NETはActive Server Pagesを.NET向けにしたものである。
ASP.NETのもとには、ウェブサイト・ウェブアプリケーションの作成するために3種類のフレームワークが用意されている。
このほか、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で利用できる言語.
Visual Studioでは、Visual BasicやC#を既定の言語として選択するようになっているが、最終的にはコンパイルされたアセンブリで動作するため、C++/CLIやJScript.NETなど.NETに対応した言語であれば様々な言語で記述することもできる。
ASP.NETの文法.
ASP.NETでは普通、コード表示ブロック (codice_1)を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