ASP さながら、aspx ファイル内で関数を定義する

2011/01/27
★★

最近では、ごく小さな Web アプリケーションでは、コードビハインドを使わず、aspx に直接サーバーサイドコードを C# で実装することが多くなってきたことに気付いた。

aspx ファイルにデリミタ <%...%> を書くと、昔の ASP (Active Server Page) を思い出す。

当初の GotDotNet のコードサンプルは、殆どが、aspx ファイルに直接、サーバーサイドのコードが記述されていたことをも思い出す。

ASP は、ある程度の規模のアプリケーションでは、デメリットの方が目に付くが、簡単なサンプルアプリケーションを作成するには、良い選択の一つだった。

何と言っても、コンパイルすることなく、ディプロイが可能な点が素晴らしかった。

PHP の劇的な普及もこのようなポータビリティが要因ではないかと考えている。

あってはならないシーンだが、バグが発生した時に、コードをメモ帳、秀丸等のテキストエディタで編集し、保存して、一瞬のうちにバグを修正できたりすることが普及の要因ではないだろうか。

LAMP の普及要因の分析は、別の機会にするとして、今回は、aspx ファイルに関数を定義する方法を紹介する。

デリミタ <%...%> 内に関数を定義してもコンパイルエラーとなってしまう。( 正確には、インタープリターのため、実行時エラーとなる。 )

aspx ファイル内に関数を定義するには、<script runat="server" /> 内に関数を定義する必要がある。

e.g.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    private string AreYouAsp()
    {
        return "No, I'm ASPX!";
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>Hello, Aspx.</head>
<body>
    Are You ASP?<br />
    <%=this.AreYouAsp()%><br />
</body>
</html>

尚、ASP になぞらえて関数という表現を使ったが、厳密には、メソッドであることに留意する。

以上

コメント (0)

コメントの投稿