株式会社テクナレッジ

Btrieve Classes for .NET 9.0

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 300mscode2

なぜパフォーマンスが良いのか?

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に比べて半分程度なのでウェブアプリケーションでの利用も優位性があります。

バージョン9の新機能について

Btrive Classes for .NET ver 9.0では新たに以下の新機能を追加しました。

ストラクチャービルダー

.NET言語では出来なかった構造体メンバーのアライメント設定がSystem.Runtime.Interopクラスの 利用で可能となりましたが、その定義方法は多くの属性を定義しなければならないものです。 最初に定義サンプルを見たときにはこれは何かの間違いではないかと思った程面倒な仕様です。 実際にこの構造体をコードして定義するのはカラム数、テーブル数が増加するほど 非常にワークロードを必要とすることを実際にアプリケーションを作成してみて実感しました。 特にヌルフラグ分の領域確保を間違えたバグを探すのにも時間がかかります。 このような状況を踏まえてバージョン1.10よりストラクチャービルダーという Microsoft Visaual Studio.NET用のアドインを添付いたしました。このツール により、指定したDDF/テーブルに関連する構造体を自動生成してソースコードに簡単 に挿入することが出来ます。構造体定義は言語により微妙にフォーマットが違っています。 今回のバージョンではC#とVB.NETに対応しています。当バージョンではRecordクラスから 使えるエンティティ生成機能を追加しました。

3系統のクラス

当製品では3系統のクラスをご用意いたしました。お客様の状況に合わせてご選択いただけます。

製品の概要

対応システムおよび言語

注:Microsoft Visual Studio .NET 2017以前はサポートされません。

対応データベース


評価版がございますのでぜひご利用ください。

エージーテック評価版申込みページ
Actian Zen v15 評価版ページ

販売価格等