Btrieve Classes for .NET 5.0
Btrieveエキスパートの皆様に朗報! おかげさまで10年の実績!
Btrieve/Pervasive PSQLをご利用のお客様、新しい環境への移行でお悩みではないですか?
- ADO.NET+Pervasive OLE DB Providerのパフォーマンスに不満がある。
- .NETの構造体の定義方法が複雑で途中でイヤになった。
- Btrieve APIで構築された多くの業務ロジックがありSQL DBには移行が困難だが.NET環境に移行が必要。
- 細かいロック制御が必要なデータ構造になっていてSQL DBでトランザクション化した場合パフォーマンスが出ない。
- .NET WebアプリケーションでもBtrieveオペレーションでコードをガンガン記述したい。
- C#等の新しい言語でもBtrieveオペレーションでコードをバリバリ記述したい。
- Btrieve拡張オペレーションのパフォーマンスにより成り立っているアプリがありSQLではパフォーマンスが出なかった。
解決策はBtrieve Classes for .NETです!
パフォーマンス比較表
Pervasive PSQL person表のFirst_Nameカラムの値を全てリスト・ボックスに表示するC#アプリケーションを作成し、
パフォーマンスの比較をしました。当製品のパフォーマンスが約3〜20倍と圧倒的です!
Access Method | 1st | 2nd | コード |
ADO.NET + Pervasive OLE DB provider | 12s | 10s | code1 |
Btrieve classes record object | 4s | 2s | code2 |
Btrieve classes extended object | 4s | 380ms | code3 |
(注) 2ndの値はキャッシュ効果で短縮されています。
なぜパフォーマンスが良いのか?
ADO.NET + OLE DB providerの場合ソフトウェア層が厚い事がパフォーマンス的に
不利な状況の原因と思われます。COMを使ったモジュールがソフトウェア層に入る
場合RPCベースのマーシャリングのオーバーヘッドは大きいと推測します。
弊社ライブラリはC++アンマネージド・コードから直接Btrieve APIを呼び出す形式でソフトウェア
レイヤーは非常に薄い構成です。マネージド・データへの変換はデータ転送量が少なくなるように最適化された
コードを採用しています。C++で記述しているのはC#等のジェネリックなマーシャリングよりも細かくマーシャリングを
制御してパフォーマンスを確保することが出来るからです。
また、ADO.NETやOLE DB providerは複数種類のデータベースに対応するために
多くの機能や仕様が追加されているのですが弊社ライブラリはPervasive/Btrieveに
特化しているためそのような一般化のためのコードが無いことがこのパフォーマンスを
生み出していると考えます。
バージョン5の新機能について
Btrive Classes for .NET ver 5.0では新たに以下の新機能を追加しました。
- Visual Studio 2013 サポート
- Visual Studio 2012 サポート
- Pervasive PSQL v11 SP3 サポート
- Microsoft Windows 8.1 / Server 2012 R2 サポート
- Microsoft Windows 8 / Server 2012 サポート
ストラクチャービルダー
.NET言語ではVB6では出来なかった構造体メンバーのアライメント設定がSystem.Runtime.Interopクラスの
利用で可能となりましたが、その定義方法は多くの属性を定義しなければならないものです。
最初に定義サンプルを見たときにはこれは何かの間違いではないかと思った程面倒な仕様です。
実際にこの構造体をコードして定義するのはカラム数、テーブル数が増加するほど
非常にワークロードを必要とすることを実際にアプリケーションを作成してみて実感しました。
特にヌルフラグ分の領域確保を間違えたバグを探すのにも時間がかかります。
このような状況を踏まえてバージョン1.10よりストラクチャービルダーという
Microsoft Visaual Studio.NET用のアドインを添付いたしました。このツール
により、指定したDDF/テーブルに関連する構造体を自動生成してソースコードに簡単
に挿入することが出来ます。構造体定義は言語により微妙にフォーマットが違っています。
今回のバージョンではC#とVB.NETに対応しています。
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クラスライブラリです。
- C#,VB.NET等の言語からBtrieveデータベースを簡単に利用可能とするクラスライブラリです。
- Windowsアプリ、Webアプリ両方に対応しています。
- データはShift-JIS漢字コードに自動変換して入出力します。
- Extendedクラスは最高のパフォーマンスでデータを検索することが可能です。
- DataSetオブジェクト作成もメソッド呼び出し1行で可能です。グリッドにデータを表示するコードもこんなに簡単です。
- ライブラリ自体はBtrieve呼び出しのオーバーヘッドを最小にするためにC++で記述されています。
- .NET クラスライブラリから可能になったオーバーロード等を利用し使いやすい設計。
- True Nullableカラム対応。
- .NETでもサポートが始まったInt64, BigIntデータ型(8byte integer)に対応。
- VB.NET/C#サンプルを添付。(Web及びWindowsアプリケーション)
- ランタイム・ライセンス・フリー。
- V1.2よりPervasive.SQL V8.6の新セキュリティモデルに従ったデータベースをアクセス可能です。LogInメソッド等を追加しました。
対応システムおよび言語
- Microsoft Visual Studio 2013
- Microsoft Visual Studio 2012
- Microsoft Visual Studio 2010
- Microsoft Visual Studio 2008
- Microsoft Visual Studio 2005
注:Microsoft Visual Studio .NET 2003以前はサポートされません。
対応データベース
- Pervasive PSQL Vx Server 11
- Pervasive PSQL v11
- Pervasive PSQL summit v10
- Pervasive PSQL v9
- Pervasive.SQL V8
注:上記はエンジンのバージョンでBtrieveファイルのバージョンではありません。
開発や評価目的に無料で使用できるPSQL v11の評価版および開発版がございますのでぜひご利用ください。
PSQL v11評価版のページ
販売価格等
- 通常パッケージ 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をサポート。
- 製品の仕様等は予告なく変更になる場合がありますのでご了承ください。