|
||||||||||||
| 前のページ 1 2 3 4 次のページ | ||||||||||||
| 新しい価値観を生み出すADO.NET | ||||||||||||
|
さらに、ただ開発者を余計な作業から解放しているだけではなく、開発に新しい価値観を与えているものもあります。ADO.NETと呼ばれる.NETによるデータアクセスの世界では、従来のデータベース接続ツールやミドルウェアとはまったく違った新しい概念が盛り込まれています。 従来、検索や更新などの一貫した一連の処理は、概ねデータベースに接続した状態で行うのが一般的でした(これを接続型アーキテクチャと呼びます)。ADO.NETでは、この方法以外に非接続型アーキテクチャと呼ばれる方法を採用できるようになっています。 これは、次のように動作します。メモリ上に「データセット」と呼ばれるデータベース(インメモリのデータベース)を配置して、実データベース(SQL Server、Oracle、DB2、など)に接続をおこなってデータをこのインメモリのデータベースにコピーし、以降はデータベースと切断した状態でこのインメモリのデータベースに対して読み込みや更新などのデータに対する操作をおこないます。そして、更新した結果を実データベースに反映する際に再度接続をおこないます(図2)。 このアーキテクチャの利点は、データベースを使う画面を持ったアプリケーションを連想するとわかります。こうした画面を持ったアプリケーションでは、一般に、編集画面などでデータの変更作業を行い、作業が完了したら保存、もしくはこれまでの編集をすべて破棄して終了するといった使い方が必要とされます。非接続型アーキテクチャは、こうした現実の利用方法との設計上のミスマッチを避けた新しいアーキテクチャになっているのです。 さらに、データセットがXMLにシリアライズ可能なため、このアーキテクチャを使えば、編集の途中で一旦ファイルに保存し、翌日編集の続きを行って、すべての編集が完了した時点でデータベースに反映する、といったアプリケーションも簡単に作成することができます。 また他の利点としては、実データベースとは切り離され、データセットにコピーされたデータを使いますから、データをポータブルに扱うことができます。例えば、画面上のコントロール(グリッドなど)とデータをバインドして、画面上の編集にあわせてメモリ上のデータをどんどん変更していくことができます。また、一旦データセットにコピーしてしまえば実データベースへの依存性からも解放されます。 ここではデータベースの検索・更新を例に示していますが、このアーキテクチャを使用して、Webサービスからデータの固まりを取得してデータセット上で同様に扱うといったシナリオにも応用できるようになっています。 このようなこと以外にも、非接続型アーキテクチャの「データセット」は、更新された行や更新前の情報などをすべて内部で記憶しており、データの実データベースへの反映の際には更新(追加/変更/削除)された行のみを対象として反映を行うように動作します。また同時実行制御についても、実データベースのロックによる悲観的同時実行制御が不可能なかわりに、楽観的同時実行制御のポリシーを開発者が埋め込むことができます。 ここに記載した一連の処理は、開発者がそのすべてを0から作成していく必要はありません。「データセット」クラスや「アダプター」クラスといった便利なクラスがあらかじめ準備されており、開発者はこれらのクラスを使用して非接続型アーキテクチャを簡単に実現できるようになっています。 また、例えば複数行を一括更新するバッチ処理のように、非接続型が苦手とするような処理においては従来通りの接続型アーキテクチャも使用することができます。 |
||||||||||||
|
前のページ 1 2 3 4 次のページ |
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||


