eXpress Persistent Objects for .NET (XPO) について

透過的なオブジェクト関係マッピング(ORM)を作成

データベース テーブルにオブジェクトをマッピングする際に、複雑で時間のかかる作業をなくし、正しいビジネスオブジェクトを自由に構築できます。開発者はデータベースレイヤーを意識する必要が全くなく、オブジェクト指向の領域だけで作業できます。また、コードを変更せずに、複数のデータベースシステムで作動するアプリケーションを作成できます。(現在、MS Access、MS SQL Server、MySQL、Oracle、PostgreSQL、Firebird、PervasiveSQL、VistaDB、SQL Anywhere、Advantage、DB2、Sybaseに対応しています。)DevExpress XPO は、ソースコードを含むライセンスも販売しています。

使いやすく高い生産性が可能

eXpress Persistent Objects(XPO) for .NETを使用することによって、もはやテーブルマッピングの必要はありません。 XPO.NETでは、不変オブジェクトクラスを定義し、定義された不変オブジェクトクラスに対して自動的にデータベースを生成します。この場合、クラスとオブジェクト継承の関係を透過的に扱います。 XPO.NETは、使いやすさと柔軟性の両方を兼ね備えています。もし O/Rマッピング(ORM:Object/Relational Mapping)の制御がさらに必要ならば、組み込みの属性を使用して XPO.NETにマッピング情報を追加することにより、あらゆる業務要求に対処することができます。

XPO.NETでは、直接オブジェクトモデルからデータベースアプリケーションの開発を始めることができます。作業時間のほとんどをコード作成に割り当てることができ、テーブルや列、キー、制約条件などの検討時間はほとんど必要はありません。 XPO.NETは常に最新のデータベース構造を保持します。汎用データベースの問題に悩まされることなく、アプリケーションそのものの重要な課題に集中することができます。

XPOは、Developer Express .NETの他の製品と同様にソースコードの利用が可能です。

主な特長:

  • 透過的で制御可能なO/Rマッピング(ORM)システム:XPOは、.NETリフレクションと属性システムを使用して、リレーショナルデータベーステーブルにビジネスオブジェクトのプロパティをマッピングします。オブジェクトの関連( 1対1、1対多、多対多)や集約、継承機能をすべて装備しています。
  • オブジェクトの集合をバインド可能: XPOでは、簡単に不変オブジェクトの集合を呼び出して UIコントロールにバインドすることができます。
  • オブジェクトのクエリ:直接的なオブジェクト構文を使ってフィルタと検索条件を指定できます。
  • データベースの生成と更新:XPOは、不変オブジェクトクラスの定義に従ってデータベーステーブルの生成や更新を行います。
  • MS AccessとMS SQL Serverに対応:XPOには、MS AccessとMS SQL Serverの対応機能を組み込んでいます。コードを修正することなくどちらのデータベースエンジンも利用できます。
  • オブジェクトプロパティの遅延読み込み: XPO.NETでは、使用頻度の低いプロパティや大容量データを含むプロパティの読み込みを遅らせることによって、アプリケーションの効率を向上させることができます。
  • インタフェースメソッドを使用して、既存の継承階層を不変化できます。
  • カスタム属性を伴うXMLモデル:XPOは、.NETリフレクションの替わりとしてメタデータ抽象モデルを使用しています。デフォルトでは、 ReflectionDictionaryから.NETリフレクションのメタデータを得ることができます。 XmlDictionaryクラスによって、マッピング情報とカスタム属性条件を指定し、拡張された ReflectionDictionary機能からXMLデータを提供することができます。この XMLデータを、.NETリフレクションによって累積されたデータの変更に使用できます。
  • トランザクションへの対応:XPOではADO.NETと同じ方法でトランザクションを使用できます。適切なセッションメソッドによって、トランザクションの開始やコミット、ロールバックも容易に行うことができます。
  • カスタムOID:キー属性を追加しました。キー属性を持つクラスプロパティ(サポートしているすべてのデータタイプのクラスプロパティ)をキーとして扱います。キーの自動生成は、 GUIDとInt32データタイプについてのみサポートしています。
  • オプティミスティックロック:データベースのアップデート機能として、オプティミスティック同時実行制御を備えています(「先着順」ルール)。
  • 長さ無制限の文字列フィールドの明示宣言:サイズ属性を「制限なし」定数として指定すれば、テキスト /メモフィールドの長さを制限なしにできます。
  • リモートへの対応:すべての基本 XPOクラスをMarshalByRefObjectから派生しており、.NETリモート処理インフラストラクチャを使用したリモートオブジェクトアクセスが可能です。
  • 既存のデータベーススキーマをサポートしています。
  • 不変クラステンプレート:簡単かつ迅速に不変クラスをプロジェクトに追加することができます。
  • XtraGridとの統合:新しいxpoXtraDataAdapterコンポーネントにより、XPCollectionから取り出したデータの表示、ソート、グループ分けなどの高度な XtraGrid機能を使用できるようになりました。
  • 高度な条件(Criteria)システム:条件(Criteria)オペレータによって複雑な条件を伴う論理式を作成し、 XPCollectionの内容をフィルタ処理することができます。
  • セッション、コレクションコンポーネント:設計時にこれらのコンポーネントを使用することにより、データソースを、任意の視覚化コンポーネント(グリッドやエディット、その他コントロールなど)にバインドするように設定できます。
  • IBindingList集合の操作:XPCollectionはIBindingListに対応しており、このインタフェースを介して実行中に集合の項目の追加や削除ができます。
  • 制約とインデックスのカスタマイズ:高度なメタデータ属性を使用することによって、データベースの制約とインデックスを、不変プロパティやフィールドに指定することができます。さらにセッションオブジェクトの OnSchemeInitイベントを処理することにより、カスタムデータベースを変更することが可能です。
  • データベース整合性の検証:XPO.NETは、基本となるデータベースを自動的に更新し、整合性を維持します。ただし、この機能を無効にすることもできます。
  • 高度なイベントシステム:セッションやトランザクションの状態変更時、基本データベースのメタデータの変更時に、イベントを発生させることが可能です。このイベントを利用して、オブジェクトとセッションの操作中にカスタム動作を実行することができます。