New! Version 4.0 supporting Visual Studio 2010 and Pervasive PSQL v11 just released !
Now including LINQ and 64-bit application support.

Product Overview

Btrieve Classes for .NET is a set of .NET database access support classes that enable fast, easy to program access from .NET programs to Pervasive PSQL databases via the Btrieve API. They include a Native Class that allows direct Btrieve API access and a DDF Class that automatically reads Pervasive DDF files dynamically during run time, removing the need for table, field and other metadata definitions to be done statically within your program, and allowing database metadata changes after program build. As such they greatly help developers looking to write new .NET programs accessing data in Pervasive PSQL databases or those looking to migrate existing pre- .NET Btrieve/Pervasive applications to .NET.

Good news for Btrieve/Pervasive .NET developers

If you are migrating existing Btrieve/Pervasive applications to .NET without Btrieve Classes for .NET, these are some of the problems you might have ...

  • The performance of ADO.NET and Pervasive's OLE DB provider is poor.
  • Migrating your structure definitions to .NET is a complex and often tiring task.
  • Moving your existing Btrieve API based business logic to an SQL DB is very difficult, but without a way to access the Btrieve API easily from within .NET, this is the only choice you have.
  • Your data structures require detailed locking control, but if you convert to using SQL DB transactions, you may not be able to obtain the performance you need.
  • You want to easily write code to the Btrieve API from within a ASP.NET Web application, but cannot.
  • You want to easily call the Btrieve API even from within new .NET language such as C# and J#, but cannot workout how.
  • Your application relies on the performance of Btrieve extended operations, you have already tried out moving to an SQL DB, but found that you no longer get the performance you need.

The solution to all these problems is Btrieve Classes for .NET!

Performance Comparison Test Results
With a simple C# test application that displays all the First_Name column values of the Person table in Pervasive.SQL V8.6's DEMODATA in a list box, the following test results were seen. Notice our product's outstanding performance compared with ADO.NET and Pervasive's OLEDB driver.(about 3-20 times faster)

Access Method 1st 2nd code
ADO.NET + Pervasive OLE DB provider 12s 10s code1
Btrieve classes record object 4s 2s code2
Btrieve classes extended object 4s 380ms code3

Note: 2nd trial is faster because of Pervasive's cache functionality.

Why we can get better performance? The main cause for this is believed to be the sheer size of the ADO.NET and Pervasive OLE DB provider layers. We also conjecture that the overhead associated with RPC based marshalling in a COM software module is also considerable. Our .NET class library calls the Btrieve API directly from C++ unmanaged code, so our software layer is very thin. Our data transfer code between managed and unmanaged data has been optimized to minimize data transfer volume. We also selected the C++ language to produce Btrieve Classes for .NET because it was possible to perform more finely tuned data marshalling compared to the generic data marshalling code available in C# and elsewhere.
Also, ADO.NET and the OLE DB provider have many features and much functionality to support a large variety of multi-vendor databases. In contrast, the fact that our class libraries, by specializing on Pervasive/Btrieve, avoid this kind of generic code is another reason behind our product's better performance.

New Functionality in Version 4.0

  • Support for Pervasive PSQL v11.
  • Support for Microsoft Visual Studio 2010.

New Functionality in Version 3.0

  • LINQ support.
    Methods have been added to allow access to Pervasive PSQL data via .NET Framework 3.5's LINQ. Sample code of this can be seen here.
  • Support for Pervasive PSQL Summit v10.
  • Support for Microsoft Visual Studio 2008.
  • 64-bit OS and application support.

Structure Builder

The .NET language makes it possible to specify the memory alignment of structures by using the System.Runtime.Interop classes, something that was not possible in VB6 days. However the definition of this alignment is very complicated. The workload involved in coding the necessary complex structures can become very large especially as the number of columns and tables increases. Also mistakes involving the definition of the true null indicator byte can consume large amounts of a developer's time. To make the job of defining such structures very much easier, we have decided to bundle a Structure Builder Tool in version 1.10 of our product. This is a brand new add-in tool for Microsoft Visual Studio for .NET that automatically generates the stucture definition code you need directly into your source code by referring to the table definitions in your DDF files. The target languages supported for this structure code building are Visual C# and Visual Basic.NET in this version.

Two types of class library

This product includes two types of class library. Please select according to the needs of your application.

  • DDF Classes
    A new group of classes specifically designed for the .NET Framework. It is composed of classes such as Record/Extended/Transaction/Exception. These enable smart and efficient access to column data and definition of data type conversion code. This class provides excellent development efficiency when working on new code.
  • Native Class
    This is a class that provides Btrieve API level access from .NET managed code, something that is as yet unavailable in the Pervasive PSQL SDK. This class is ideally suited for cases where you wish to migrate existing Btrieve API applications to .NET or if your existing application does not have DDFs. However, due to the fact that the Btrieve API contains many parameters and to the necessity of code for fetching and storing application data from the record buffer, application code can become complicated.

Product Summary

  • The product is a .NET Framework class library.
  • Enables easy access to Pervasive/Btrieve data from .NET languages such as C#,VB.NET.
  • Supports both Windows and Web applications.
  • Automatic conversion of data encoded in the code page of the locale <-> Unicode.
  • Extended class enables maximum performance when searching Pervasive data.
  • In only 1 line of code, it is possible to generate a DataSet Object and call a method, making filling a grid as simple as in this sample code.
  • Library itself is developed using C++, in order to minimize the overhead associated with a Btrieve API call.
  • By making full use of such .NET class library features as overloading, the classes are very easy to use.
  • Supports True Nullable column data.
  • Supports the BigInt data type by mapping to .NET's Int64.(8byte integer)
  • VB.NET and C# sample code is provided for both Web and Windows applications.
  • Full support for Pervasive PSQL's security functionality. This includes Login and Logout methods and support for database URIs.
  • Support for both 32-bit and 64-bit .NET applications.
  • Support for access to Pervasive/Btrieve data via .NET Framework 3.5's LINQ.
  • Runtime license free.

Supported Pervasive PSQL Versions

  • Pervasive PSQL v11
  • Pervasive PSQL Summit v10
  • Pervasive PSQL v9
  • Pervasive.SQL V8

[Note]
* Pervasive PSQL is not included with this product. A separate purchase is necessary.
* The above supported product list is the version of the engine not the version of the Btrieve file.

Supported .NET Languages

  • Microsoft Visual Basic.NET
  • Microsoft Visual C#
  • Microsoft Visual J#

Supported Programming Environments

  • Microsoft Visual Studio 2010
  • Microsoft Visual Studio 2008
  • Microsoft Visual Studio 2005

[Note]
* Microsoft Visual Studio .NET and Microsoft Visual Studio .NET 2003 are no longer supported from Version 3.0 of this product.

Price

  • Development environment for 1 user US$ 780
  • Runtime license free
  • English and Japanese versions available.

Product Updates

Upgrades from version 3.0 to version 4.0 can be made free of charge by contacting bcnsupport@agtech.co.jp and sending proof of Btrieve Classes for .NET 3.0 purchase. An upgrade to version 4.0 of Btrieve Classes for .NET from versions prior to version 3.0 is available direct from AG-TECH Corp. for US$ 390. Unfortuneately this upgrade product is only available direct and cannot be purchased via our normal distributors. For more details, please email bcnsupport@agtech.co.jp.

Documentation

Full documentation for the product is included within the product and the trial version. The product manual can also be downloaded from this link .

Purchase

The latest Btrieve Classes for .NET Version 4.0 can be obtained from www.componentsource.com ( searching for "Btrieve" soon brings up our product). A 30-day trial version is also available for download from the same site.

Trial Version

A fully functional 30-day trial version of the product can be downloaded from this link. Simply unzip the downloaded file and run the setup.exe program within.

Contact

For general enquiries and technical support on this product, please email bcnsupport@agtech.co.jp .