SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

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

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

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

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層アプリケーションを作成する場合は、データアクセス層とビジネスロジック層のクラスオブジェクトを別々に作成しますが、モジュールは後で簡単に移動できます。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
データオブジェクト層

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

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

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

David Catherman(David Catherman)

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/320 2006/04/11 19:11

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング