CodeZine(コードジン)

特集ページ一覧

Visual Studio .NETのウィザードを使ってN階層アプリケーションを作成する:パート1

コードを複数の層に分離して効率的なアプリケーション開発を行う

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2006/02/20 17:30

Visual Studio .NET 2003には、データベースアプリケーションを短時間で構築するためのウィザードやコード生成ツールが用意されていますが、本稿ではコードを複数のモジュールまたはクラスに分離して、アプリケーションの層を作成する方法について説明します。

目次

はじめに

 MicrosoftはRAD(Rapid Application Development)ツールのための優れたツールを開発者に提供することで知られています。MS Access、Visual Studio 6、Visual Interdevなどの環境で、コントロールやプロパティ、自動生成コードを視覚的に組み合わせることで、アプリケーションをすばやく開発できます。Visual Studio .NETはこれらのツールを統合し、数多くのプログラミング言語に対応している素晴らしい開発環境です。

 Visual Studio .NET(以下、VS)には、アプリケーション開発に役立つウィザードが多数用意されています。しかし残念ながら、ウィザードでは効率的なプログラミング手法が使われない傾向にあります。具体的に言うと、コードが複数の層に分離されず、ビジネスロジックが分離されないのです。VSの既定のモデルでは、データオブジェクトをフォームにドラッグアンドドロップしながらフォームを作成します。コードは必要に応じて作成されますが、データアクセスコードとビジネスロジックコードが区別されず、ユーザーインターフェイスのフォームオブジェクト内に直接作成されます。このため、コードの再利用が難しく、同じテーブルデータを複数のフォームで使用する場面ではコードの重複が発生します。

 今日のアーキテクチャでは、コードを複数の層に分離するN階層アプローチが推奨されています。N階層アプローチでは、少なくともデータアクセス層、ビジネスロジック層、プレゼンテーション層の3つに分離されます。アプリケーションの各種パーツを複数のサーバー上に置く分散アプリケーションの場合は、より多くの層が必要になることもあります。

 層を分離する主なメリットは2つあります。1つはコードの再利用が容易になることで、もう1つはコードとデータベースの結合を回避できることです。データアクセス層とビジネスロジック層を分離すると、データのアクセスと使用に必要なコードをあちこちに繰り返し記述しなくても、さまざまなフォームを使ってデータを収集および表示できます。コードとデータベースの結合を回避すると、データベースのスキーマを変更する際にコードを修復する量が少なくなり、データストレージプロバイダを変更するときでも、コードを大幅に変更しないで済みます。

 Microsoft .NETは、OOP(オブジェクト指向プログラミング)の標準を目指して、開発者のサポートと支援に力を入れてきました。OOPは高度で深遠な話題なので、ここでは詳しく説明しませんが、1つだけ、データベースアプリケーションの開発者にとって興味深い「ビジネスオブジェクト」について簡単に触れておくことにします。データベースのテーブルとフィールドがエンティティと属性の実装において重要な役割を果たすのに対し、ビジネスオブジェクトは特定のエンティティのプロパティと動作を併せて実装します。アプリケーションが各エンティティ(テーブル)を表すビジネスオブジェクトクラスのインスタンスを作成すると、そのプロパティを介して属性にアクセスし、メソッドを介してエンティティの動作を呼び出せるようになります。また、この手法を採用すると、エンティティに関するコードをすべて1つの場所にまとめておいて、アプリケーションのその他のパーツから簡単に参照することが可能です。さらに、ビジネスオブジェクトで継承やポリモーフィズムを利用すると、非常に柔軟で強力なプログラミングが可能になるため、わずかなコードで大量の処理を実行することができます。

パート1 - Visual Studio .NET 2003

 Visual Studio .NET 2003には、データベースアプリケーションを短時間で構築するためのウィザードやコード生成ツールが用意されていますが、本稿ではコードを複数のモジュールまたはクラスに分離して、アプリケーションの層を作成する方法について説明します。その例として、以降ではNorthwindデータベースを使用し、「Orders」テーブルや「Order Details」テーブルを表示および編集するためのフォームを作成します。

プロジェクトの作成

 最初にソリューションエクスプローラを使って新しいプロジェクトを作成します。この例ではWindowsフォームを作成しますが、Webフォームでもほとんど同じです。真の3層アプリケーションを作成する場合は、データアクセス層とビジネスロジック層のクラスオブジェクトを別々に作成しますが、モジュールは後で簡単に移動できます。


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

あなたにオススメ

著者プロフィール

  • David Catherman(David Catherman)

    CMI Solutions所属。データベースアプリケーションのデザイン/開発に20年以上の経験を持ち、ここ4、5年は特にMicrosoft .NETとSQL Serverに仕事が集中している。現在はCMI Solutionsのアプリケーション設計者および上級開発者であり、Visual Studioと...

  • japan.internet.com(ジャパンインターネットコム)

    japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.com や EarthWeb.c...

バックナンバー

連載:japan.internet.com翻訳記事

もっと読む

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5