The NEXTSTEP Connection

NeXT's Database Kit is a framework for developing object-oriented database applications. The kit consists of a set of Objective-C classes that automatically handle the task of accessing data stored in a database, displaying it on a screen, and writing back updates if and when necessary.

DBKit's power lies in its adapters, which are dynamically loaded modules that handle the nitty-gritty of interfacing with a particular database vendor's network protocol.

Although DBKit allows the programmer to send SQL directly to the data server, most DBKit programmers instead use the kit's own API. Because the adapters hide the differences between different databases, the same DBKit program can connect with a wide range of servers without modification. This makes it easier for a company to change its database in midstream if problems surface with a particular data server; it also makes it possible for third-party developers to produce a single database-browsing or -reporting application that will interoperate with any NEXTSTEP supported database out of the box.

DBKit is also a natural for companies trying to migrate their databases from mainframes to open systems. Use NEXTSTEP to access the mainframe today, and when you move to a network-based server later, you won't need to change a single line in the NEXTSTEP applications: just switch the server.

Since DBKit is database independent, it eases the risk for some companies of trying out an unproven database from a start-up company. If the application fails, users can always switch their adapters and buy a license for Oracle or Sybase. DBKit also makes it possible for developers to create reporting and management applications that work with any database supported by NEXTSTEP, rather than having to write to a particular company's API.

One disadvantage of DBKit is performance. Using NeXT's object-oriented layer is somewhat slower than directly using a company's proprietary API and client libraries supplied by the vendor of the database-management systems. If you are building a large transaction-processing system and are sure that the choice of database will never change, you might be better off developing code that accesses the data server directly. But for applications in which raw performance is less important than flexibility, DBKit's features are without parallel in the client-server world.