SHOEISHA iD

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

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

japan.internet.com翻訳記事

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

Visual Studio .NET 2005における多層アプリケーションの作成テクニック

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

Visual Studio 2005では、RADツールを使って多層アプリケーションを作成する際の柔軟性が大幅に向上しています。本稿では、具体的なサンプルを基に、わずかなコードの記述だけで多層アプリケーションを作成できることを解説します。

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

はじめに

 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つの場所にまとめておいて、アプリケーションのその他のパーツから簡単に参照することが可能です。さらに、ビジネスオブジェクトで継承やポリモーフィズムを利用すると、非常に柔軟で強力なプログラミングが可能になるため、わずかなコードで大量の処理を実行することができます。

パート2 - Visual Studio 2005の使用

 新しいバージョンの.NETとVisual Studioでは、データベース中心のアプリケーション開発方法に変化をもたらすさまざまな機能拡張が行われています。本稿では、特にデータソースとパーシャルクラスに注目します。

 Binding Context Managerが拡張され、大幅に簡略化されてBinding Sourcesコンポーネントになっています。このコンポーネントを使うと、フォーム上でデータセット、Webサービス、およびビジネスオブジェクトへのデータバインドをより適切に行うことができます。

 パーシャルクラスは、複数のファイルにまたがるクラスを作成するための手段です(コンパイル時にファイルが結合されます)。型指定されたデータセット(Typed DataSet)クラスは、パーシャルクラスを含むように拡張されており、生成されたコードと開発者が記述するコードを分離して、複雑な継承を行わずにビジネスロジックをデータセットクラスに追加できるようになっています。

準備作業

 VS2005を開いたら、[File]-[New Project]を選択して新しいプロジェクトを作成し、VB Windowsプロジェクトから作業を開始します。ウィンドウの下部にあるダイアログで、プロジェクトに「NorthwindWin」、ソリューションに「Northwind」という名前を付けます。

図1 VS2005の新しいプロジェクト
図1 VS2005の新しいプロジェクト

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

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

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

メールバックナンバー

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

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

  • このエントリーをはてなブックマークに追加
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/343 2006/04/11 19:13

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング