Btrieve Classes for .NET(日本語版) について

Btrieve エキスパートのための .NET 開発ツール。

C# や VB.NET を使用した開発で、プログラム上から Actian Zen のデータベースにアクセスすることが簡単に行えるようになるクラスライブラリです。当製品はランタイムフリーですので、開発したアプリケーションの配布をライセンス無しで行えます。データベースにアクセスする際は、SQL ではなく高速な Btrieve API を経由する仕様であることから、Actian Zen ADO.NET データプロバイダーを使用した場合に比べて、パフォーマンスが格段に向上します。

Actian Zen ADO.NET データプロバイダーの場合、ソフトウェア層が厚い事がパフォーマンス的に不利な状況の原因と思われます。当製品のライブラリは、C++ アンマネージド・コードから直接 Btrieve API を呼び出す形式で、ソフトウェア レイヤーは非常に薄い構成です。マネージド・データへの変換は、データ転送量が少なくなるように最適化されたコードを採用しています。C++ で記述しているのは、C# 等のジェネリックなマーシャ リングよりも細かくマーシャリングを制御してパフォーマンスを確保することが出来るからです。

.NET 言語では VB6 では出来なかった構造体メンバーのアライメント設定が可能となりましたが、 その定義方法は多くの属性を定義しなければならないものです。最初に定義サンプルを見たときにはこれは何かの間違いではないかと思った程複雑なものです。 実際にこの構造体をコードして定義するのはカラム数、テーブル数が増加するほど非常にワークロードを必要とすることを実際にアプリケーションを作成してみて実感 しました。 特にヌルフラグ分の領域確保を間違えたバグを探すのにも時間がかかります。 このような状況を踏まえて、「ストラクチャービルダー」というツールが、Btrieve Classes for .NET には付属しています。このツールにより、 指定した DDF/テーブルに関連する構造体を自動生成してコードに簡単 に挿入することが出来ます。構造体定義は言語により微妙にフォーマットが違っています。スタンドアローンバージョンと VSIX 対応の Visual Studio 2019/2022 用のアドインバージョンがあります。後者のアドインバージョンには、Entity Class を生成する機能が搭載されています。

3系統のクラス

  • DDF class:.NET Framework の仕様に添って設計された新しいクラス群です。Record/Extended/Transaction/Exception 等のクラスで構成されます。カラム等へのアクセス、データ型の変換コードもスマートに記述することが出来ます。設計が新しい分、開発効率はこのクラスが優れています。
  • Compat Class:株式会社テクナレッジ製品 VBMan ActiveX Controls for Btrieve のメソッドとコンパチブルなメソッドを提供するクラスです。 既存の VBMan アプリケーションを .NET 環境に少ないワークロードで移行する場合にご利用ください。 エラー・コード等も VBMan と互換性がございます。
  • Native class:ご存知のように Btrieve API のパラメータは数多くあり、レコードバッファからのデータ抽出や、そのデータを格納するといった処理を実装すると、コードは煩雑になりがちです。当クラスでは、マネージド・コードから Btrieve API の呼出しが可能となるため、既存のアプリケーションに DDF が無い場合や、以前の環境から Btrieve のコードを .NET 環境に移行したい場合にご利用ください。

製品の特長

  • .NET Framework 4.7.2/.NET Core 3.1 ベースのクラスライブラリです。
  • C#,VB.NET等の言語からBtrieveデータベースを簡単に利用可能とするクラスライブラリです。
  • Windowsアプリ、Webアプリ両方に対応しています。
  • データはShift-JIS漢字コードに自動変換して入出力します。
  • Extendedクラスは最高のパフォーマンスでデータを検索することが可能です。
  • DataSetオブジェクト作成もメソッド呼び出し1行で可能です。
  • ライブラリ自体はBtrieve呼び出しのオーバーヘッドを最小にするためにC++/CLIで記述されています。
  • .NET クラスライブラリから可能になったオーバーロード等を利用し使いやすい設計。
  • True Nullableカラム対応。
  • Int64/BigIntデータ型(8byte integer)、TIMESTAMP2/AUTOTIMESTAMPに対応。
  • VB.NET/C#サンプルを添付。(Web及びWindowsアプリケーション)
  • ランタイムライセンスフリー。
  • セキュリティモデルに従ったデータベースをアクセス可能。