解説

ASP.NETで学ぶVisual Studio .NETの魅力

第3回 Visual Studio.NETでプログラム・レス開発を学ぶ(中編)

山田 祥寛
2003/06/17

(3)広告ファイルを編集する
 
追加した広告ファイル(ad.xml)に具体的なコードを記述するに先立って、XMLDocumentのプロパティを表のように設定する。

プロパティ名 概要
encoding 日本語(シフトJIS)
targetSchema Ad Rotator Schedule File
追加した広告ファイル(ad.xml)のプロパティ

 targetSchemaプロパティの設定は必須ではないが、あらかじめ広告ファイルである旨を明示的に宣言しておくことで、その文脈で使用できる要素名の候補などを補完してくれるIntelliSense機能が働くので、入力を効率化することができる。

 プロパティの設定がすんだら、以下のように設定を記述してみよう。

<?xml version="1.0" encoding="shift_jis" ?>
<Advertisements
  xmlns="http://schemas.microsoft.com/AspNet/AdRotator-Schedule-File">
  <Ad>
    <ImageUrl>aspandvs_l.jpg</ImageUrl>
    <NavigateUrl>
       http://www.atmarkit.co.jp/fdotnet/aspandvs/index/index.html
    </NavigateUrl>
    <AlternateText>
      ASP.NETで学ぶVisual Studio .NETの魅力
    </AlternateText>
    <Impressions>10</Impressions>
  </Ad>
  <Ad>
    <ImageUrl>t_tips.gif</ImageUrl>
    <NavigateUrl>
       http://www.atmarkit.co.jp/fwin2k/win2ktips/index/index.html
    </NavigateUrl>
    <AlternateText>
      WindowsTIPS
    </AlternateText>
    <Impressions>20</Impressions>
  </Ad>
</Advertisements>
広告ファイル(ad.xml)の内容

 <Ad>要素ひとつで、ひとつの広告バナーを表現する。<Ad>要素配下の各要素の意味は以下のとおり。

要素名 概要
<ImageUrl> バナー画像の絶対/相対URL(省略可能)
<NavigateUrl> 広告バナーからのリンク先URL(省略可能)
<AlternateText> 画像非表示の際に代わりに表示されるテキスト(省略可能)
<Keyword> 広告のカテゴリ(省略可能)。本要素を設定することで、KeywordFilterプロパティによって表示バナーをフィルタリングすることができる
<Impressions> バナー表示確率の重み付け。大きい値であるほど頻繁に表示される。ただし、広告ファイル全体で値の合計が2,047,999,999以下であること
広告ファイルの記述で使える要素

 なお、<ImageUrl>要素で指定した画像ファイルは「.aspx」と同一のフォルダにあらかじめ格納されているものとする。

[参考]XMLファイルの有用性
従来の「キー=値」のような形式のフラットなテキスト・ファイルとXMLファイルが大きく異なる点は、XMLファイルがそれ自体、高度に構造化文書を表現できるという点だ。つまり、タグ付けが明確であることからデータの意味を直感的に把握できるし、設定項目が増えた場合でも比較的柔軟に対応することが可能だ。ASP.NETでもweb.configやmachine.configなど主要な設定ファイルでXML形式が採用されていることからも分かるように、今後、ますますXMLの活用は増えていくものと思われる。

(4)広告ファイルをAdRotatorコントロールにマッピングする
 
(3)の編集が完了したら、再びフォーム・デザインの画面に戻り、AdRotatorコントロールのAdvertisementFileプロパティをいま作成したad.xmlに設定する。

 これで準備は完了した。AdRotatorコントロールの最低限の機能を利用する限りにおいては、コードの記述は一切必要ない。[>]ボタン(開始ボタン)をクリックし、冒頭のような広告バナーが表示されれば成功だ。

 応用編としては、アクセスするユーザーによってKeywordFilterプロパティを動的に変更することで表示するバナーをユーザーごとにパーソナライズすることもできるだろう。また、広告バナーからのリンク先に共通のログ記録ページを用意し、そこから個別のサイトにリダイレクトさせるようにしておけば、バナーのクリック率をデータベースなどに保存することも可能だ。

 単純なサンプルではあるものの、アイデアしだいではいくらでも発展の余地はあるので、余力のある方は是非挑戦してみてほしい。

次回は

 VS.NETの持つ豊富なコントロールを使い、わずかなコードを記述するだけでデータベースも簡単に利用できることがお分かりいただけただろうか。次回は引き続き、データベースに連動する簡易スケジュール帳を作ってみよう。これもまた、VS.NETで使えるリッチ・コントロールによって、驚くほど少ないコード量で実現可能だ。End of Article


 INDEX
  ASP.NETで学ぶVisual Studio .NETの魅力
  第3回 Visual Studio.NETでプログラム・レス開発を学ぶ(中編)
    1.MSDEによるデータベースの準備とデータの作成
    2.Webフォームからデータベースに接続するための準備
    3.クエリ・ビルダを利用して楽々SQL文作成
    4.抽出したデータを一覧表に展開するDataGridコントロール
    5.動的に広告バナーを変更するAdRotatorコントロール
  6.AdRotatorコントロールを制御するXMLファイルの作成
 
インデックス・ページヘ  「解説:ASP.NETで学ぶVisual Studio .NETの魅力」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間