ketyiaの学んだこと議事録

このサイトでは学んだことを記事にまとめていきます

ASP.NETについて勉強② ~コードビバインド~

ASP.NETについて勉強② ~コードビバインド~


こんばんは!
今、C#ASP.NETについて学んでいますので、アウトプットで記事にまとめていきます!!

今回はコードビバインドについてまとめていきます。

ASP.NETのコードビバインドとは


ASP.NETのコードビハインド(Code-Behind)とは、Webページの見た目を定義する**.aspxファイルと、そのページの動作を定義する.aspx.csファイル**(C#を使用する場合)を分離するためのテクニックです。このアプローチにより、プレゼンテーションロジックとビジネスロジックが混在することを防ぎ、コードの再利用性と保守性を向上させることができます。

コードビバインドのメリット


分離の原則

ビジネスロジックとプレゼンテーションロジックを分離することで、コードの可読性と保守性が向上します。

再利用性

ロジックを分離することで、同じロジックを異なるページで再利用することが容易になります。

テスト容易性

ビジネスロジックが分離されているため、単体テストが容易になります。

コードビハインドの動作原理


.aspxファイルのコード変換時の継承パス

ASP.NETでは、.aspxファイルは実行時に動的にクラスに変換されます。このクラスはSystem.Web.UI.Pageクラスを継承し、さらにコードビハインドファイルで定義されたクラスを継承します。これにより、.aspxファイルとコードビハインドファイルが一体となり、一つのWebページとして動作します。

クラスのpartialに関する注意点

コードビハインドのクラスはpartialキーワードを使用して定義されます。これにより、クラスの定義を複数のファイルに分割することができます。しかし、partialクラスを使用する際には以下の点に注意が必要です。

同じクラス名

分割されたクラスの各部分は、全て同じクラス名を持つ必要があります。

同じアクセス修飾子

分割されたクラスの各部分は、全て同じアクセス修飾子(public、privateなど)を持つ必要があります。

同じアセンブリ

分割されたクラスの各部分は、全て同じアセンブリ(DLLまたはEXEファイル)に含まれる必要があります。

実際にASP.NET Web Formsで試してみる


以下のようなコードを書いてみます。

>|aspx| 
<%--
    FileName: test.aspx
    Created by: keita
  Created on: 2024.6

    Description: 
    コードビバインドの動作を試します
--%>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>コードビバインドテスト</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server" Text="Label" />
        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
    </div>
    </form>
</body>
</html>
||<

 

>|C#|
/*
 * FileName: test.aspx.cs
 * Created by: keita
 * Created on: 2024.6
 * 
 * Description: 
 * コードビバインドの動作を試します
*/
using System;

public partial class test : System.Web.UI.Page
{
if(!IsPostBack) Labal1.Text = "Welcome to ASP.net";
}

protected void Button1_Click(object sender, EventArgs e)
{
   Label1.Text = "Button clicked!";
}
||<


コードの概要

まず、提供されたコードはASP.NETのWebページを定義しています。このページには、ラベルとボタンの2つのコントロールが含まれています。そして、ページがロードされたときとボタンがクリックされたときの動作が、コードビハインドファイル(test.aspx.cs)で定義されています。


ページのロード

ページが初めてロードされるとき(つまり、PostBackがfalseのとき)、Page_Loadメソッドが呼び出されます。このメソッドでは、ラベルのテキストが"Welcome to ASP.NET!"に設定されます。

ボタンのクリック

ユーザーがボタンをクリックすると、Button1_Clickメソッドが呼び出されます。このメソッドでは、ラベルのテキストが"Button clicked!"に変更されます。

コードのコンパイル

ASP.NETでは、.aspxファイルは実行時に動的にクラスに変換されます。このクラスはSystem.Web.UI.Pageクラスを継承し、さらにコードビハインドファイルで定義されたクラスを継承します。これにより、.aspxファイルとコードビハインドファイルが一体となり、一つのWebページとして動作します。

では動かしてみます!


ボタンを押下してみます!


変わりました!
何てことないコードですが、動きを意識してみると結構勉強になります♪

今日はここまでです。
ここまで読んでいただきありがとうございました。