Base One Foundation Component Library
The Base One Foundation Component Library (BFC) is a rapid application development toolkit for building secure, fault-tolerant, database applications on Windows and ASP.NET. In conjunction with Microsoft's Visual Studio integrated development environment, BFC provides a general-purpose web application framework for working with databases from Microsoft, Oracle, IBM, Sybase, and MySQL, running under Windows, Linux/Unix, or IBM iSeries or z/OS. BFC also includes facilities for distributed computing, batch processing, queuing, and database command scripting, and these run under Windows or Linux with Wine.

Design 

BFC is based on a database-centric architecture whose cross-DBMS data dictionary plays a central role in supporting data security, validation, optimization, and maintainability features. Some of BFC’s core technologies are based on underlying U.S. patents in database communication and high precision arithmetic. Developers can incorporate BFC components into web and Windows applications written in any of the major Microsoft programming languages (C#, ASP.NET, Visual C++, VB.NET) and can use a variety of older technologies, including COM/ActiveX, MFC, and Crystal Reports. BFC works with both managed and unmanaged code, and it can be used to construct either thin client or rich client applications, with or without browser-based interfaces.

History 

BFC was originally developed by  Base One International Corp., funded by projects done for Marsh & McLennan and Deutsche Bank that started in the mid-1990s. BFC was acquired by Content Galaxy Inc. in 2014.

The name "BFC" was a play on MFC Microsoft Foundation Classes, which BFC extended through Visual C++ class libraries to facilitate the development of large-scale, client/server database applications.

The publicly available BFC releases are listed below. The jump from BFC release 2.0 to 5.6 came from synching up with the original Marsh version numbering scheme. Beginning in 1994, Johnson & Higgins (later acquired by Marsh & McLennan), built Stars, an insurance risk management system, using components known as ADF (Application Development Framework). ADF was the predecessor of BFC and was jointly developed by Johnson & Higgins and Base One programmers, with Base One retaining ownership of ADF, and Johnson & Higgins retaining all rights to Stars risk management software.

BFC 1.0 

The first version of BFC was released in June 1998. It began as a Visual C++ framework for developing Windows database applications that can be targeted at multiple versions of SQL Server, Oracle, MS Access, and Sybase SQL Anywhere without changing source code. BFC’s Internet Server Library further enables transparent access to those databases across the Internet - for creating distributed “rich client” and grid computing applications. That is, a client server application built with BFC's Database Library not only can change the underlying type of database, but can also have its database located on a local network or across the Internet without changing source code.

BFC supports a model of large scale, grid computing based on coordinating work entirely through a local or remote database. This reduces the vulnerability and performance impact of depending on a centralized process to distribute tasks. Deutsche Bank made use of this version of BFC to build its securities custody system and is one of the earliest successful examples of commercial grid computing.

This release also includes the Number Class (clsNumDbFld), which is designed for database applications that include very large numbers and requires high precision arithmetic.

BFC 1.1 

BFC 1.1 was released in September 1998. It improves performance of record addition and modification by supporting Prepared (precompiled) and batched execution of database INSERT and UPDATE operations. Other features:

 The Data Dictionary has an improved interface and adds a Database Session screen showing logged on users and what they are running.
 Added Oracle DirectAPI interface to the Database Library, based on Oracle’s C interface, OCI (Oracle Call Interface), as a more efficient alternative to using the ODBC interface. The same application source code can run with or without the ODBC DLLs.

BFC 1.4 

BFC 1.4 was released in March 1999. It improves and simplifies SQL query handling - with parameter markers ‘?’ and “implied parameters” instead of hardcoded values, and with new, simplified functions: GetNextRec, GetPrevRec, GetFirstRec and GetLastRec.

 BFC 1.4 adds support for IBM DB2 (NT, AS400, OS/390), Oracle 7.3 and 8,0, MS SQL Server 6.5, Access 97, and Sybase SQL Anywhere 5.5

BFC 2.0 

BFC 2.0 was released in September 1999. It adds COM support, so that VB and ASP programmers can use BFC's database components, including ActiveX grid (table), combo, and edit controls. Other highlights:

 Better messages produced when Duplicate Data and Foreign Key errors occurs (supplies the database column and table names that violate the constraint).
 Support for database stored procedures (for Oracle, MS SQL Server and SQL Anywhere).
 Sybase Adaptive Server 11.5.1 and MS SQL Server 7 support added.

BFC 5.6 

BFC 5.6 was released in August 2000. It supports custom COM objects that can be called from ASP, Visual Basic, ColdFusion, etc. There are samples showing how out-of-proc and in-proc COM objects can be used to coordinate database and file usage. Other highlights:

 “Lite Users” are especially efficient for large scale Internet and grid computing applications. Lite User ID and password can be assigned programmatically, and Lite Users share database access. A Lite User’s User ID is NOT a real database logon ID. As opposed to “Full Users”, a Lite User can NOT be used to circumvent application-level security (by unauthorized direct access with standard commercial database tools - a dangerous security hole). This is especially important for programming web sites because of the ease of security violation techniques, such as packet sniffing, to find User IDs and Passwords on the Internet.
 IBM DB2 v. 6.1 support added for OS/390 & NT, including full BLOB handling

BFC 5.7 

BFC 5.7 was released in January 2001. It supports custom encryption/decryption of Internet traffic. Rich Client applications can efficiently add security via an encryption/decryption and compression/decompression API. This means that any Rich Client application built with the Database Library can be adapted easily to use its own proprietary method of encoding Internet transmissions, with no dependence on "Secure Sockets" or any other publicly known standards.

BFC 6.1 

BFC 6.1 was released in March 2003. It extends the Database Library and grid computing architecture to support Visual Studio .NET (2002) and the .NET languages, C#, VB.NET, and ASP.NET.

BFC 7.4 

BFC 7.4 was released in March 2010. It adds C# web and distributed processing samples plus several major Database Library features:

 Database-independent support for Automatic Sequence Numbers (Identity, Sequence, Auto-increment fields).
 New Database Trace facility with more thorough messages.
 Web Users are “ultra-lite” users that are impersonated by a small number of database connections. Web Users offer greater scalability for large web sites. This model allows for better performance and resource usage for large-scale, non-sticky web sites, while allowing the same authentication, authorization, and audit trail control available for Lite Users.
 Improves support for Time database fields.
 Support for generating clustered versus non clustered indexes added for SQL Server, Sybase, and DB2.
 SQL Server 2005, 2008, 2008R2, Oracle 8i, 9i, 10g, 11g, Sybase 12.5, DB2/NT 8.1, 9.7, DB2 iSeries, and MySQL 5 support added.

BFC 7.5 

BFC 7.5 was released in June 2018. It has an improved C# web site starter application (with better Logon and administrative support) and automatically adds responsive styling. Other upgrades:

 .NET Framework 4.7.2 support (with TLS 1.2 security support)
 Windows 10 and Windows Server 2016 support
 Adds SQL Server 2012, 2014, 2016, 2017, and Oracle 12c support

BFC 7.6 

BFC 7.6 was released in November 2020. It has a .NET version update plus two new samples:  

 .NET Framework 4.8 support 
 Advanced Command Processor sample, showing how to add custom database commands for generating complex SQL scripts (for example, to add a new tenant in a Software as a Service application).
 Multi Reader Queue sample code, showing how to use the Multi Reader Database Queue class, in which multiple "subscribers" can process efficiently the same  queue.

References

External links 

 Base One. Introduction to BFC
 Base One. The Base One Grid Computing Architecture 
 Business Wire. IDC Reviews Base One's Grid Computing as "Pragmatic, Scalable and Extensible"; Base One Granted Additional US Patent for Grid/Cluster Database Technology, September 29, 2004. Accessed March 5, 2008.
 Business Wire. Base One Launches High Performance Information Sharing for Grid Computing; IDC Reports Base One Positioned to Address Data Access and Sharing Across Grids, May 23, 2005. Accessed March 5, 2008.
 ITJungle. Base One Update Brings Grids of Clusters, June 14, 2005. Accessed April 9, 2008.

.NET object-relational mapping tools
.NET programming tools
Grid computing products
Middleware
Scripting languages
Web frameworks
Web development software