4年ぶりのメジャーバージョンアップ! .NET Coreにも対応!
Btrieve/PSQL/Actian Zenをご利用のお客様、.NET移行でお悩みではないですか?
解決策はBtrieve Classes for .NETです!
Person テーブルのレコード数を45,000件に増やして、ID,First_NameとLast_Name カラムの値を全てグリッドに表示するC#アプリケーションを作成し、パフォーマンスの比較をしました。当製品の平均パフォーマンスが数倍速いです!
Access Method | 1st | 2nd | コード |
---|---|---|---|
Actian Zen ADO.NET Data Provider | 6.6s | 360ms | code1 |
Btrieve classes extended object | 320ms | 300ms | code2 |
Actian Zen ADO.NET データプロバイダーの場合ソフトウェア層が厚い事がパフォーマンス的に不利な状況の原因と思われます。 当製品のライブラリは C++ アンマネージド・コードから直接 Btrieve API を呼び出す形式でソフトウェアレイヤーは非常に薄い構成です。 マネージド・データへの変換はデータ転送量が少なくなるように最適化されたコードを採用しています。C++ で記述しているのは C# 等のジェネリックなマーシャリングよりも細かくマーシャリングを制御してパフォーマンスを確保することが出来るからです。 また、Actian Zen ADO.NETデータプロバイダーでは、コネクションプーリングや SQLステートメントキャッシングなど、SQL クエリの大量非同期実行をサポートする機能が多数追加されていますが、当社のライブラリはBtrieve 専用なので、そうしたSQL ベースの機能に関連する初期化や管理にかかるコード、メモリ割り当て、CPU の処理時間は一切ありません。 当社のライブラリーが Btrieve に特化しているため、SQL 処理するためのオーバーヘッドがないことがこのパフォーマンスを生み出していると考えます。 今回BTRVEX APIを採用しExtendedクラスのパフォーマンスも向上しました。 消費するメモリもADO.NETに比べて半分程度なのでウェブアプリケーションでの利用も優位性があります。
Btrive Classes for .NET ver 9.0では新たに以下の新機能を追加しました。
.NET言語では出来なかった構造体メンバーのアライメント設定がSystem.Runtime.Interopクラスの利用で可能となりましたが、その定義方法は多くの属性を定義しなければならないものです。 このツールにより、指定したDDF/テーブルに関連する構造体を自動生成してソースコードに簡単に挿入することが出来ます。
弊社製品VBMan Controls for Btrieveのメソッドとコンパチブルなメソッドを提供するクラスです。既存のVBManアプリケーションを.NET環境に少ないワークロードで移行する場合にご利用ください。
.NET Frameworkの仕様に添って設計された新しいクラス群です。Record/Extended/Transaction/Exception等のクラスで構成されます。カラム等へのアクセス、データ型の変換コードもスマートに記述することが出来ます。
当クラスではBtrieve API呼出しをマネージド・コードから可能としました。既存のアプリケーションにDDFが無い場合や、既存のBtrieve APIで作成したコードを移行したい場合等にご利用ください。
注:Microsoft Visual Studio .NET 2017以前はサポートされません。