パート3 - ビジネス層の作成
本シリーズのパート1とパート2では、オブジェクト指向プログラミングに重点を置いて、Visual StudioのRAD(Rapid Application Development)ツールを使って3層アプリケーションを作成する方法について説明しました。個々のビジネスプロジェクト内に型指定されたデータセット(Typed DataSet)オブジェクトを作成し、プレゼンテーション層内にオブジェクトデータソースツールを作成することによって、アプリケーションの各部を別々の層に分離し、個別にコンパイルできるようにします。このようにして分離したコンポーネントは、必要に応じて異なるサーバーに配置することも可能です。
ドメインモデルアーキテクチャ
アーキテクチャモデルにはさまざまな種類がありますが、Microsoft Visual Studioが推奨する方法論に適しているのは、リレーショナルアーキテクチャと真のオブジェクト指向アーキテクチャの中間に位置するアーキテクチャです。このアーキテクチャは、Jimmy Nilssonをはじめとする著名な設計者によって推進されており、「ドメインモデルアーキテクチャ」と呼ばれています。このモデルでは、ドメイン層をビジネス層の奥深くに隠すのではなく、さまざまな別の階層からアクセス可能な位置まで引き上げます。図1に、このモデルとVisual Studio 2005がどのように対応しているかを示します。
このモデルでは、型指定されたデータセット(Typed DataSet)をドメイン層として使用します。型指定されたデータセットは、ほぼ純粋なオブジェクト指向方式のデータアクセスを行うことを目的として、データセット(DataSet)オブジェクトを一連のクラス、メソッド、およびプロパティでラップしたものであり、Intellisenseに対応しています。Visual Studio 2005では、これらのクラスは、パーシャルクラス内のデータセットの自動生成されたデザイナサブファイルに格納されます。もう1つのパーシャルクラスは、開発者がカスタマイズできるサブファイルの中で提供されます。これは、データに影響を及ぼすビジネスロジックを実装するのに適した場所です。
自動生成されたデザイナサブファイルでは、データベース内のデータの取得/更新に必要なすべてのADOコードを提供するデータアクセスロジックが別の名前空間に実装されています。この自動生成されたクラスはテーブルアダプタ(Table Adapter)と呼ばれます。これは、厳密に型指定されたプロパティとメソッドによってラップされたデータアダプタです。これらのクラスは自動生成されますが、テーブルアダプタのパーシャルクラスにコードを追加すれば拡張できます。
最初に生成した時点で、データセットはデータベースの構造またはスキーマを非常に密接にミラー化しています。データセットがデータベースに連動し過ぎると不満を述べる設計者もいますが、実際には、メタデータが表現されているだけです。必要であれば、すべてのテーブルとフィールドを、実際のエンティティと列をよりよく表すような名前に変更することも可能です。ただし、データベースが適切に設計されていれば、通常、このような操作は不要です。