前回に引き続き、「独習 ASP.NET Webフォーム(第6版)」を
読んで学んだことを少しずつ記事にまとめていきたいと思います。
読んで学んでインプットするだけではなく、
ブログ記事にまとめてアウトプットして理解を深めていきたいと思います。
Webフォームの基本構造
Webフォームで使用される「.aspxファイル」は、Webページのレイアウトを定義するためのファイルであり、
GUIでコントロールパーツを配置するだけで自動的にHTMLが生成されるので、その点では円滑に開発を進めることができます。
ですが、コントロールパーツだけを配置して開発を進めていても、良いWebページをデザインすることはできませんので、
自動生成されたコードを自分で理解すること、そして、それに対してオリジナルのコードを追加・修正してWebページのデザインを編集していく必要があります。
また、自動生成されるコードはただのHTMLではなくASP.NET独自の構文・要素で記述されているので、それにも慣れておく必要があります。
①ディレクティブ
「.aspxファイル」では、以下のようなコードが含まれていて、ASP.NETの実行エンジンに対してWebページの処理方法をしていするための「ディレクティブ」という構文です。
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Hello.aspx.vb" Inherits="SelfAspNet.Hello" %>
ディレクティブの構文は、
『<%@ ディレクティブ名 属性名="属性値" ...%>』
のような形で記述されています。
また、上記の例のように「@Page」ディレクティブは、対象のWebページの基本的な処理方法を宣言していて、その後ろ側から各属性値を設定することができます。
各属性値の説明は以下の通りです。
属性項目 | 概要 |
---|---|
Language | 使用しているプログラミング言語(C#、VB etc..) |
AutoEventWireup | ページイベント自動登録の有無 |
CodeBehind | 分離コードのパス |
Inherits | 分離コードのクラス名 |
ちなみに、「.aspxファイル」と「.aspx.csファイル」(分離コード)との関連付けは上記の「CodeBehind」「Inherits」の属性値で設定されています。
そして、設定した値(上記のコードの場合、Hello.aspx.cs)では、以下のようなクラスで定義されており、この記述のおかげで関連付けが可能となっています。
Public Class Hello
Inherits System.Web.UI.Page
関連付けの詳細については、Visual Studioがほとんど実行してくれているのであまり意識する必要がありませんが、
ファイル名の変更やファイルの関連付けを自身で修正する場合、これらのディレクティブや属性項目の設定方法について理解しておく必要があると思います。
コード宣言ブロック
「.aspxファイル」では、HTMLと同じような形でコード宣言ブロックを記述します。
ですが、以下のコードのように「runat="server"」という記述をすることで、その部分のコードはサーバーサイド(C#、VBなど)で実行されるようになります。
逆にrunat属性が指定されていない場合は、コードの記述がそのままクライアントに送信されてしまうことになります。
<form id="form1" runat="server"></form>
サーバーコントロール
サーバーコントロールとは、ASP.NET Webフォームで動的に配置できるコントロールパーツのことで、
コード上では「<asp:TextBox..>」のような形でHTMLに似たタグ形式で記述されています。
サーバーコントロールの通常の構文は以下のようになっています。
<asp:コントロール名 ID="ID値" runat="server" プロパティ名="値" ...> ~~ </asp: コントロール名>
HTMLと同様に対象のタグに対してプロパティ名="値"でオプションを設定することができますが、Webフォームのサーバーコントロールに設定が必要な属性が以下のものになります。
属性(オプション) | 概要 |
---|---|
ID | コントロールを一意に識別するキーの設定 |
runat | サーバーコントロールとして設定 |
コントロールをデザインビューで追加した際にこれらのオプションも含めてコードが自動生成されますが、
自身で手動でコントロールの追加や修正、オプションの設定をするときのためにもWebフォームのコードの記述方法を理解しておきましょう。