(Base One logo) .NET database and distributed computing tools

BFC | Visual Studio | Database Technology | Distributed Computing | Prices | System Requirements

Base One Foundation Component Library

Frequently Asked Questions
About BFC

Table of Contents

  1. What's wrong with current database systems?
  2. Where does BFC fit in?
  3. Why Visual C++?
  4. What is the relationship between BFC and MFC?
  5. How does BFC make it easier?
  6. What are BFC's security features?
  7. What are BFC's batch processing facilities?
  8. How does BFC improve reliability?
  9. How can BFC make it faster?

What's wrong with current database systems?

Current database management systems (DBMS) may be adequate for building small applications, but if you have multiple users, thousands of records, millions of transactions, then all your expectations for simple solutions coming from your database vendor, be it Oracle, Sybase, Informix, IBM or Microsoft, go out the window.  Instead of smooth development and operations, you're suddenly faced with one crack after another in the very foundation of your business - your applications.   Taking these systems from design to completion requires an unreasonable amount of time using the raw tools that are available.

Programming using database management systems is so time-consuming because they were built before the birth of client/server computing.  Not one of them has ever completely addressed the unique problems of building large two and three-tier systems.

Back to Top

Where does BFC fit in?

The Base/1 Foundation Component Library (BFC) is a sturdy layer of programs built on the Microsoft Foundation Class Library (MFC).  BFC adds powerful features to your applications while shielding them from the complexity of the underlying database system.  BFC's integrated collection of class libraries and unique database middleware lets you build applications without having to start from scratch.  Instead of learning the hard way about performance pitfalls and wrestling with confusing error messages, your programmers can focus on the features of the application, not the DBMS.

With BFC you get the tools to build high-performance transaction processing systems with integral security features right from the outset, not as an afterthought.  And because BFC is a complete, portable application framework, you can go from development of prototype to a full-scale production application in record time.

Back to Top

Why Visual C++?

Visual C++ is Microsoft's premiere Windows programming environment.  While there are several interesting, up-and-coming contenders in the client/server marketplace, C++ has proven itself to be the best tool available today for building large-scale, mission-critical applications.   Although "Fourth Generation" programming environments offer features for rapid development, the end-results are often disappointing or impractical for large-scale implementations.

The BFC class libraries sharply reduce the learning curve for C++ novices and dramatically increase the productivity for C++ experts, giving your programmers the best of both worlds.  Built on top of the Microsoft Foundation Classes and integrated with Visual Studio, BFC introduces a number of significant extensions to this widely used framework for application development.  In addition programmers can leverage the full range of Visual C++ add-ons, design tools, and "wizards" (graphical software utilities that automatically generate code) to develop user-friendly graphical applications.

Back to Top

What is the relationship between BFC and MFC?

The Microsoft Foundation Class Library (MFC) is an extensive framework for general-purpose application development that provides the foundation on which all BFC classes are based.  But how do you use Visual C++ and MFC to build large scale, client/server database applications?  None of the Microsoft-supplied samples gives you a clue.  Scribble, the main MFC sample application and tutorial, doesn't even begin to confront the problems of building practical business systems.

This is where BFC fills a large void in the Microsoft product line.  By adding literally hundreds of indispensable functions, BFC closes the gap between MFC and real-world database applications.  Instead of getting bogged down with generic programming issues, your programmers can use BFC to focus on the business problems that really matter to you.

Back to Top

How does BFC make it easier?

A primary goal of BFC is to reduce the training needed for a programmer to become a successful developer of C++ business systems.  Providing a coherent framework and dramatically shortening the learning curve, BFC enables junior C++ programmers to produce competent large-scale applications in a surprisingly short amount of time.

Take, for example, one Base One client's experience.  The client hired a programmer straight out of college who had studied C++ in a Unix environment.  He had no experience with Windows, database, or financial application programming.  In less than a month, without any formal training, he was building major components of a large insurance application and had become a valued and productive member of the development team.

Even senior C++ programmers find their productivity doubled (at least according to one enthusiastic consultant, who has spent the last two years doing development on Base One's software framework).  Some BFC features that appear at the top of most developers' wish list for easier application development are its extensive security and error handling capabilities.  The Base One track record shows that teams consisting of just one or two experienced C++ programmers with a few junior programmers can create superb, enterprise applications under incredible time constraints.

Back to Top

What are BFC's security features?

BFC provides a security system that makes it practical to custom-tailor the filtering of data depending on who is looking at it.  In an insurance system, for example, it might be required that managers see claims only for their assigned locations and for their supervisors in turn to see claims only for those managers reporting to them.  Building a system that can efficiently restrict data access in this way would substantially increase the development costs, were it not for BFC.

BFC makes it simple to build systems that allow managers to decide what menu items a particular user can select, what buttons can be pushed, and what screens can be seen.  These capabilities are in addition to the normal Data Base Administrator authority to decide what tables a user can modify or query.

Back to Top

What are BFC's batch processing facilities?

Unlike most database systems, BFC can create and change large batches of records without disrupting normal operations.  But in addition, BFC offers a unique batch processing capability for performing long-running jobs by putting idle computers to work.  An international bank, for example, needing to provide securities inventory reports to its worldwide branches, could use a dozen idle computers to download volatile price information from their accounting system every night.

It's easy to create batch functions and scheduling rules, specify the hardware characteristics of PCs doing the work, and log task execution milestones.  Any desktop computer with a BFC application installed on it qualifies as a batch machine.  The operator just walks over and logs in as a batch user, and the machine starts polling the database looking for work.

Back to Top

How does BFC improve reliability?

By building on a solid BFC foundation, programmers not only speed up application development, but also reduce the cost and frequency of errors, accidents, and malfunctions. BFC's comprehensive error handling mechanism lets programmers quickly find and correct errors, including failures that happen in production (after testing is done).  When a mistake is made, like misspelling the name of a record field in a database query, the programmer is immediately notified of the error and the place where it occurred.  Production errors like "the line went down", "the hard disk disappeared", or "the bank's closing procedures were accidentally started before the foreign exchange rates came in" are handled either automatically or quickly and simply with BFC.

The basic mechanism for trapping and displaying errors, cleaning up after errors, and making sure things are always left in an acceptable state is efficient and clean enough to be put into production.  The same error-handling used for development is also used in the production environment for notification of hardware and operational errors, resulting in a more dependable application.  Thus programmers are constantly testing the production error handling mechanism as a natural consequence of the development process.

The worst kind of disaster occurs when a bank's electronic fund transfer system crashes, leaving the books showing that cash was wired but no customer account has a compensating withdrawal.  This is the result of a basic programmer error.  While you can't stop all programming errors, the BFC database library simplifies transaction processing to the point where this kind of error all but disappears.  BFC makes it easy to identify business transactions and properly block them together to guarantee their integrity.

Back to Top

How can BFC make it faster?

Whether it's insurance claims, securities custody, electronic funds transfer, or multimedia publishing, most large-scale business applications must overcome common performance problems that are solvable with BFC.

Errors in how transactions are handled frequently cause types of problems that simply cannot be tolerated.  For example, an insurance company cannot afford to have all users locked out of their system because a data entry clerk goes to lunch before clicking OK (to continue) on a dialog box.  Similarly, a claims adjuster who wants to order immediate stoppage of payments for a fraudulent claim should not have to wait for hours just because a large data import job has locked out the needed records.  Or consider the unfortunate book publisher whose publication of the next animal encyclopedia grinds to a halt while the indexes need to be rebuilt, simply because a workstation was accidentally unplugged.

All of these cases are the result of underlying software that did not plan for database access and modification by multiple, concurrent users.  BFC eliminates many of these types of problem with efficient database technology that avoids holding on to locks, thereby preventing users from interfering with each other.

Another example is a bank auditor reviewing all cash deposits of over $5,000 for the 57th Street Branch for the last six months in date order.  He should not have to wait 10 minutes for each of the 25 pages because the database management system has chosen to sort instead of using an efficient index.

BFC automatically forces index searches and prevents lengthy sorts.  Browses never cause unreasonable delays, no matter how large the database.  When the database supports "hints" in the SELECT statement, Scroll Cache automatically adds performance hints from the Database Index Dictionary to encourage usage of the appropriate index and quick freeing of locks. BFC lets programmers specify queries in the simplest way and then automatically adds the appropriate hints to the SQL to dramatically improve performance.

Back to Top

BFC | Visual Studio | Database Technology | Distributed Computing | Prices | System Requirements

Home Products Consulting Case Studies Order Contents Contact About Us

Copyright 2012, Base One International Corporation