VB.NET Web Forms入門 教育資料

この資料は、VB.NETとASP.NET Web Formsを使用してWebアプリケーションを開発するための基礎知識を提供します。Web Formsの基本的な概念から、プロジェクトの作成、コントロールの利用、イベント処理、データアクセスまでを分かりやすく解説します。

1. ASP.NET Web Formsとは?

ASP.NET Web Formsは、Microsoftが提供するWebアプリケーションフレームワークの一部であり、デスクトップアプリケーション開発のような感覚でWebアプリケーションを構築できることを目指しています。特に、GUIツールによるドラッグ&ドロップ操作でWebページを設計できる点が特徴です。

特徴

知っておくべきこと: ASP.NET Web Formsは現在、新しい大規模なWebアプリケーション開発ではあまり推奨されていません。MicrosoftはBlazorやASP.NET Core MVCといった、よりモダンなフレームワークに注力しています。しかし、既存のWeb Formsアプリケーションの保守や、シンプルな社内ツール開発などでは依然として活用されています。

2. 開発環境の準備

VB.NET Web Formsの開発には、Visual Studioが必要です。

  1. Visual Studioのインストール:
    • Visual Studio 2019 または 2022 をインストールします。
    • インストール時に「ASP.NET と Web 開発」ワークロードを選択してください。
  2. .NET Frameworkの確認:
    • Web Formsは主に.NET Framework上で動作します。Visual Studioのインストール時に必要な.NET Frameworkバージョンが含まれますが、特定のバージョンが必要な場合は確認してください。

ヒント: Visual Studio Community Editionは、個人利用や小規模なチームであれば無料で利用できます。

3. Web Formsプロジェクトの作成

Visual Studioを使って新しいWeb Formsプロジェクトを作成する手順です。

  1. Visual Studioを開き、「新しいプロジェクトの作成」を選択します。
  2. 検索ボックスに「ASP.NET Web アプリケーション (.NET Framework)」と入力し、テンプレートを選択して「次へ」をクリックします。
    • 言語がVisual Basicになっていることを確認してください。
  3. プロジェクト名、場所、ソリューション名を指定し、「作成」をクリックします。
  4. 「新しい ASP.NET Web アプリケーション」ダイアログが表示されたら、「空」または「Web Forms」テンプレートを選択し、「作成」をクリックします。
    • 「空」を選択すると、必要なファイルだけが作成されます。
    • 「Web Forms」を選択すると、ナビゲーションバーやサンプルページなどが含まれた基本的なサイトが作成されます。

プロジェクトが作成されると、Visual Studioのソリューションエクスプローラーに様々なファイルが表示されます。

4. Webページの作成とサーバーコントロールの利用

Web Formsの基本的な構成要素であるWebページとサーバーコントロールについて学びましょう。

4.1. Webページの追加

  1. ソリューションエクスプローラーでプロジェクトを右クリックし、「追加」>「新しい項目」を選択します。
  2. 「Web Forms」カテゴリから「Web Form」を選択し、ファイル名を指定して「追加」をクリックします(例: Default.aspx)。

作成された.aspxファイルを開くと、HTMLと、サーバーコントロールを配置するためのデザインビューが表示されます。

4.2. サーバーコントロール

ツールボックスからドラッグ&ドロップでWebページに配置できるコントロールです。これらはサーバーサイドで処理され、最終的にブラウザで表示されるHTMLに変換されます。

<%@ Page Language="VB" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="MyWebApp.Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>はじめてのWeb Forms</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:Label ID="Label1" runat="server" Text="あなたの名前を入力してください:"></asp:Label>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:Button ID="Button1" runat="server" Text="挨拶" />
            <br />
            <asp:Label ID="ResultLabel" runat="server"></asp:Label>
        </div>
    </form>
</body>
</html>
            

5. イベント処理とコードビハインド

Web Formsでは、ユーザーの操作(ボタンクリックなど)をイベントとして捉え、それに対応するサーバーサイドのVB.NETコードを実行します。

イベントハンドラの追加

先ほどのDefault.aspxの例で、ボタンがクリックされたときに名前を表示する処理を追加しましょう。

  1. Default.aspxのデザインビューでButton1をダブルクリックします。
  2. すると、Default.aspx.vbファイルが開き、Button1_Clickというイベントハンドラが自動的に生成されます。
' Default.aspx.vb (コードビハインドファイル)

Public Class Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        ' ページが最初にロードされたとき(初回アクセス時)と
        ' ポストバック(ページの再読み込み)時に実行される
        If Not IsPostBack Then
            ' 初回ロード時のみ実行したい処理
            ResultLabel.Text = "" ' 初期化
        End If
    End Sub

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        ' Button1がクリックされたときに実行される
        Dim userName As String = TextBox1.Text
        If String.IsNullOrEmpty(userName) Then
            ResultLabel.Text = "名前が入力されていません。"
        Else
            ResultLabel.Text = "こんにちは、" & userName & "さん!"
        End If
    End Sub

End Class
            

Handlesキーワード: VB.NETでは、イベントハンドラの定義にHandlesキーワードを使い、どのイベントを処理するかを指定します。例: Handles Button1.Click

6. データバインディング

Web Formsでは、データベースや他のデータソースから取得したデータをサーバーコントロールに表示する「データバインディング」機能が豊富に用意されています。

GridViewコントロールの利用

GridViewコントロールは、表形式のデータを表示するための非常に強力なコントロールです。ここでは簡単な例を示します。

<!-- Default.aspx -->
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="True"></asp:GridView>
            

' Default.aspx.vb

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not IsPostBack Then
        ' データを作成
        Dim dt As New DataTable()
        dt.Columns.Add("ID", GetType(Integer))
        dt.Columns.Add("名前", GetType(String))
        dt.Columns.Add("年齢", GetType(Integer))

        dt.Rows.Add(1, "田中", 25)
        dt.Rows.Add(2, "佐藤", 30)
        dt.Rows.Add(3, "鈴木", 28)

        ' GridViewにデータをバインド
        GridView1.DataSource = dt
        GridView1.DataBind()
    End If
End Sub
            

より高度なデータバインディングでは、SqlDataSourceObjectDataSourceなどのデータソースコントロールを使用したり、カスタムテンプレート列を定義したりすることも可能です。

7. ページ間の移動 (ナビゲーション)

Web Formsアプリケーション内でページ間を移動する方法はいくつかあります。

8. 状態管理

Webアプリケーションはステートレス(状態を持たない)ですが、Web Formsはユーザーやセッションの状態を維持するための様々なメカニズムを提供します。

セキュリティ上の注意: セッション状態やアプリケーション状態に機密性の高い情報を保存する際は、セキュリティ対策を講じる必要があります。また、クッキーに保存するデータはクライアント側で変更される可能性があるため、信頼性の低いデータとして扱うべきです。

9. Web Formsアプリケーションのデプロイ

開発したWeb FormsアプリケーションをWebサーバーに配置する手順です。

  1. プロジェクトの発行:
    • Visual Studioでソリューションエクスプローラーからプロジェクトを右クリックし、「発行」を選択します。
    • 発行方法(IIS、FTP、フォルダなど)を選択し、指示に従って設定します。
    • 通常は「フォルダー」を選択し、任意の場所に発行すると、デプロイに必要なファイル一式が生成されます。
  2. IIS (Internet Information Services) への配置:
    • IISマネージャーを開き、新しいWebサイトまたは仮想ディレクトリを作成します。
    • 発行したフォルダのコンテンツを、IISで設定した物理パスにコピーします。
    • アプリケーションプールを適切に設定し、.NET Frameworkのバージョンがアプリケーションと一致していることを確認します。

ヒント: 小規模なアプリケーションや開発段階では、Visual Studioの「デバッグ開始」ボタン(IIS Expressを使用)で手軽に動作確認できます。

10. 次のステップへ

この資料でWeb Formsの基本的な開発手法を学びました。さらに学習を進めるためのヒントをいくつかご紹介します。

Web Formsは、Microsoftの.NETエコシステムにおけるWeb開発の歴史の一部であり、多くの既存システムで使われています。これらの基礎を学ぶことは、既存システムを理解し、保守する上で非常に役立ちます。

参考資料

目次へ戻る