解説

実例で学ぶASP.NETプログラミング
―― ショッピング・サイト構築で学ぶASP.NET実践講座――

第4回 DB連携ページをASP.NETで構築する(前編)

小田原 貴樹(うりゅう)
2003/03/29

Page1 Page2 Page3 Page4


Back Issue
1
ASP.NETの観点からショッピング・サイトを定義する
2 トップ・ページ構築で理解するASP.NETの特長
3 「実プロ流」ASP.NETデータベース操作術

1年が経過した「.NET」の現場での具合

 気が付くと2003年もすでに3月で、ということはVisual Studio .NET(以下VS.NET)が発売されてからそろそろ1年が経ってしまったということらしい。まぁ、全く新しいテクノロジー体系であることを考慮すれば「まだ1年しか経過していない」といった方が妥当なのだろう。

 しかし、Visual Studio .NET 2003と呼ばれる次期バージョンのVS.NETがすでにベータ・テスト段階にあり、筆者はこの連載のことも含め、気持ちは結構焦っていたりもする(笑)。無理に新しいバージョンを使用しなければならないということもないのだが、この技術動向のペースの速さはこれまでにないものであることも間違いないだろう。

 筆者は.NETに関しては、ASP.NETを利用したWebサイト構築から入ったが、ここ最近の仕事ではめっきりWindowsフォームでの業務処理システム開発が増えてきている。恐らく読者の中にもこういった傾向で.NETと付き合っている方、付き合うだろう方は多いと思われる。だが今のところは、Insider.NETの会議室を見ていても、ASP.NETに関する書き込みの方が圧倒的に多いようだ。

■ASP.NETのアドバンテージ

 その第一の理由として、Webベース・システムに対する注目度の高さが挙げられるだろう。Webベース・システムを体系だった技術で、しかもこれまでよりも容易に構築できるASP.NETに注目が集まるのは当たり前だといえる。

 第二には、ほかの技術と比較した際のASP.NETの機能的アドバンテージが考えられる。筆者は、深い浅いの違いはあれど、Webシステム系言語を一通り使った(仕事上の関係で使わなければならなかった)が、その中でもASP.NETが持つ機能のアドバンテージは群を抜いている。

 唯一比較対象にできるのはJavaをベースにしたものだろうか。どちらかといえば住み分けに近いのだが、Javaも高い機能を持っている。この連載でも何回か登場した当社のデザイナーは、「お絵描き掲示板」とか「お絵描きチャット」と呼ばれているJavaベースで構築されたWebサイトで遊んでいるらしい(?)のだが、驚くべきことにこういったサイトでいう「お絵描き」というのは、画像ファイルをアップロードするのではなく、Javaで作成されたドロー・ソフトを使い、その場で絵を描くことを指している。「こんな感じのサイトをASP.NETで作ってくださいよ」とデザイナーはのたまってくれたが、それは無理だ(笑)。原則として、ASP.NETはサーバ・サイドでの動作をベースにしているので、ドロー・ソフトを開発することは難しいというより、ナンセンスなのだ。こういった分野ではJavaをベースにしたシステムには到底及ばない。しかし、これは機能の優劣ではなく、住み分けの範囲と考えるべきだろう。このような特定の場面を除けば、ASP.NETのアドバンテージは揺るぎない。

■Windowsフォームのアドバンテージ

 ASP.NETが持つ「使わざるを得ない」ほどの魅力と比較して、Windowsフォームというローカル(というよりはWeb以外の)アプリケーション開発プラットフォームが持つ優位性は分かりにくい。新しい技術を習得するのに必要な時間的デメリットを受け入れるだけのメリットが感じられないといい換えてもよいだろう。筆者が仕事で構築することの多い業務処理システムを例に説明しよう。これらの業務処理システムとは、結局のところ「ネットワーク経由でデータベース・サーバにアクセスする、専用のユーザー・インターフェイスを持ったクライアント・ソフト」なのだが、筆者が取捨選択した結果、現状では次に挙げる3つの開発ベースがある。

 読者の皆さんは意外に思うかもしれないが、これまで第1の候補に挙がっていたのは「AccessのADP」を利用した開発だった。知名度は低いのだがAccess 2000以降に搭載されたADP(Accessプロジェクト:Access Data Projects)の機能は馬鹿にできない。テーブルとビューをデータベース・サーバからネットワーク経由で常に取得し、フォームやレポートだけをファイルの中に保持できるこの機能は、それ自体が立派に「クライアント/サーバ」の条件を満たしている(ちなみにマイクロソフトは「2.5階層」という定義でADPを捉えている)。Accessのフォームやレポートの生産性の高さは定評のあるところであるし、必要に応じてVBA(Visual Basic for Applications)とADO(ActiveX Data Object)を利用すればかなりのことが実現できる。さまざまな問題を抱えてはいるが、十分に魅力的なソリューションだ。ただし、最大のデメリットである「Accessが持つ機能の限界」と「VBAの生産性の低さ」は大規模あるいは高度なシステムでは致命傷になることもあるようだ。ちなみに、このADPはSQL Serverのデータ・メンテナンスには極めて便利なので、この連載でいつか詳しく紹介するかもしれない。

 第2の候補は「Visual Basic 6.0+ADO」という最もオーソドックスなものだ。これまで、Accessが持つ機能の限界を超える必要があるときはこれを選んでいた。ただし、サード・パーティ製のコントロール利用が大前提となる。残念ながら、それでも開発効率は非常に低い。筆者は開発効率をかなり重視するので、なるべくならばこの選択はしたくなかったのが正直なところだ。

 そして昨年から選択肢に入ってきたのが、VS.NETのWindowsフォームによる開発である。結論からいえば、この選択肢には圧倒的なアドバンテージがあるようだ。現在、開発途中なので、最終的な判断は下していないが、Windowsフォームで作成したシステムが持つ利便性/機能性は、業務処理システムに代表されるローカル・アプリケーションに新たな地平を提供するものに思える。開発効率の高さにも期待できると感じられ、やはり.NETはソフトウェア開発において、革命的な技術革新なのだと思わされた。この連載でも本筋を乱さない程度に(笑)紹介していきたいと思うが、現段階で筆者が特に感じたことは、

「WindowsフォームとWebフォーム(ASP.NET)は、かなり違う」

ということだ。わざわざ分けてあるのだから当然なのだが、なかなか一筋縄でないのはどちらも同じだ。

メイン・フレーム・ページを構築する

 戯言終了。2カ月間、連載3回分をかけてトップ・ページを作ってきたが(笑)、やっとこさメイン・フレーム・ページの構築にたどり着いた(メイン・フレーム・ページについて第2回を参照していただきたい)。メイン・フレーム・ページには、データベースと連携して動的に変化する構成要素がいくつかあり、ASP.NETの真価がやっと発揮される。それほど難しくはないので、さっそく作っていこう。作成に必要な画像ファイルの提供は、前々回同様、当社デザイナー沖政 恵美嬢だ。最近、一部をASP.NET化した彼女のイラスト・サイトはこちら。VS.NETを使用すればデザイナーでもこの程度のASP.NETは書いてしまうよという、ちょっと怖いサイトとなっている(笑)。

 また、メイン・フレーム・ページでは商品写真が必要な構成要素があり、写真がないと実感がわかないと思う。V-STORE.NETのデモサイト「VS屋」で使っている商品写真も以下のリンクからダウンロードできるので、「開発用」として利用していただきたい。ただし結構容量が大きいので要注意。

 解説を読んでいるうちに、よく分からなくなってきたらVS屋の実際の動きを確認してもらうとよいだろう。また、今回までに連載の中で構築してきたVS.NETで作成したソース・コードも以下のリンクからダウンロードできるので、それを参考にしてもらうのもよいかもしれない。


 INDEX
  実例で学ぶASP.NETプログラミング
  第4回 DB連携ページをASP.NETで構築する(前編)
  1.ASP.NETとWindowsフォームそれぞれの持つアドバンテージ
    2.メイン・フレーム・ページの構成要素とデザイン
    3.データベースと連携する「新着情報表示機能」の作成
    4.「サイト案内」のデザイン/参考になる.NETなソフト紹介
 
インデックス・ページヘ  「解説 :実例で学ぶASP.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 記事ランキング

本日 月間