Btrieve Classes for .NET 9.0
4年ぶりのメジャーバージョンアップ! .NET Coreにも対応!
Btrieve/PSQL/Actian Zenをご利用のお客様、.NET移行でお悩みではないですか?
- Btrieve APIで構築された多くの業務ロジックがありSQL DBには移行が困難だが.NET環境に移行が必要。
- C#でもBtrieveオペレーションでコードを記述したい。
- .NETの構造体の定義方法が複雑で途中でイヤになった。
- Btrieve拡張オペレーションのパフォーマンスで成り立っているアプリがありSQLではパフォーマンスが出なかった。
- 細かいロック制御が必要なデータ構造になっていてSQL DBでトランザクション化したところパフォーマンスが出なかった。
- 先のことを考えて.NET frameworkより.NET Coreに移行したい。
解決策は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に比べて半分程度なのでウェブアプリケーションでの利用も優位性があります。
バージョン9の新機能について
Btrive Classes for .NET ver 9.0では新たに以下の新機能を追加しました。
- Actian Zen v15 サポート
- Visual Studio 2022 サポート
- Windows 11 サポート
- .NET 5 〜 8 サポート
- .NET Core 3.1 サポート
- .NET framework 4.7.2 ~ 4.8.1 サポート
- BTRVEX APIによるExtendedクラスのパフォーマンス向上
- ストラクチャビルターのVSIX対応とEntity class生成機能追加
- データ型 AUTOTIMESTAMPとTIMESTAMP2をサポート
- Extended クラスにGetRawValue/AddFields/FillAllメソッド追加
- Record クラスに GetRawValue/SetRawValue メソッドの追加
- Blazorサンプルなどを追加
ストラクチャービルダー
.NET言語では出来なかった構造体メンバーのアライメント設定がSystem.Runtime.Interopクラスの
利用で可能となりましたが、その定義方法は多くの属性を定義しなければならないものです。
最初に定義サンプルを見たときにはこれは何かの間違いではないかと思った程面倒な仕様です。
実際にこの構造体をコードして定義するのはカラム数、テーブル数が増加するほど
非常にワークロードを必要とすることを実際にアプリケーションを作成してみて実感しました。
特にヌルフラグ分の領域確保を間違えたバグを探すのにも時間がかかります。
このような状況を踏まえてバージョン1.10よりストラクチャービルダーという
Microsoft Visaual Studio.NET用のアドインを添付いたしました。このツール
により、指定したDDF/テーブルに関連する構造体を自動生成してソースコードに簡単
に挿入することが出来ます。構造体定義は言語により微妙にフォーマットが違っています。
今回のバージョンではC#とVB.NETに対応しています。当バージョンではRecordクラスから
使えるエンティティ生成機能を追加しました。
3系統のクラス
当製品では3系統のクラスをご用意いたしました。お客様の状況に合わせてご選択いただけます。
- Compat Class
弊社製品VBMan Controls for Btrieveのメソッドとコンパチブルなメソッドを提供するクラスです。
既存のVBManアプリケーションを.NET環境に少ないワークロードで移行する場合にご利用ください。
エラー・コード等もVBManと互換性がございます。
- DDF class
.NET Frameworkの仕様に添って設計された新しいクラス群です。Record/Extended/Transaction/Exception等のクラスで構成されます。
カラム等へのアクセス、データ型の変換コードもスマートに記述することが出来ます。設計が新しい分、開発効率はこのクラスが優れています。
- Native class
当クラスではBtrieve API呼出しをマネージド・コードから可能としました。
既存のアプリケーションにDDFが無い場合や、既存のBtrieve APIで作成したコードを移行したい場合等にご利用ください。
ご存知のようにBtrieve APIはパラメータの多く、レコードバッファからプログラム変数への読み込みや、
格納するコードが必要になるため、アプリケーション・コードは比較的煩雑になります。
製品の概要
- .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)に対応。
- VB.NET/C#サンプルを添付。(Web及びWindowsアプリケーション)
- ランタイム・ライセンス・フリー。
- セキュリティモデルに従ったデータベースをアクセス可能。
対応システムおよび言語
- Microsoft Visual Studio 2017-2022
注:Microsoft Visual Studio .NET 2017以前はサポートされません。
対応データベース
- Actian Zen v15
- Actian Zen v14
- Actian Zen v13 R2
評価版がございますのでぜひご利用ください。
エージーテック評価版申込みページ
Actian Zen v15 評価版ページ
販売価格等
- 通常パッケージ 88,000 円 税抜
- アップグレード 48,000 円 税抜
- 2002年12月10日エージーテックにて受注開始
- 2003年01月20日 ver 1.00 出荷開始
- 2003年06月10日 ver 1.10 出荷開始
- 2003年08月15日 ver 1.10 英語版出荷開始
- 2004年10月01日 ver 1.20 出荷開始
- 2005年12月21日 ver 2.00 出荷開始
- 2008年07月22日 ver 3.00 ページ公開
- 2008年10月01日 英語版 ver 3.00コンポーネントソースより販売開始。
- 2008年10月06日 日本語 ver 3.00エージーテックより販売開始。
- 2010年08月02日 日本語 ver 4.00エージーテックより販売開始。
- 2013年07月22日 日本語 ver 5.00エージーテックより販売開始。
- 2014年01月06日 日本語 ver 5.0.1にてVS2013,Windows 8.1,Windows Server 2012 R2をサポート。
- 2014年08月20日 日本語 ver 6.0.0エージーテックより販売開始。
- 2015年11月02日 日本語 ver 7.0.0エージーテックより販売開始。
- 2018年12月03日 日本語 ver 8.0.0エージーテックより販売開始。
- 2022年10月20日 日本語 ver 9.0.0エージーテックより販売開始。
- コンポーネントソースからご購入いただけます。
- 製品の仕様等は予告なく変更になる場合がありますのでご了承ください。