ComponentOne DataObjects for .NET
Direct Client
DataObjects for .NET (Enterprise Edition) > Application Configurations > Direct Client

Direct client is the simplest configuration where all application components, with the exception of the database server, reside on a single machine and in a single project. It is distinguished from other configurations in that it does not use a data library. Business logic code (components C1SchemaDef, C1TableLogic, C1DataSetLogic) resides in the same project, on the same design surface with the components using the data (C1DataSet components, C1DataView and C1DataTableSource, data-bound GUI controls). There is no separation between the server and the client parts – they are one and the same application.


In a direct client application, a C1DataSet component resides on the same design surface with the C1SchemaDef component hosting the schema. A C1DataSet component must be attached directly to the C1SchemaDef component by setting its C1SchemaDef property (whereas in other configurations, a C1DataSet is attached to the data library instead, by setting its DataLibrary property). Data-bound GUI controls, such as grids, are attached to a C1DataSet either directly or indirectly (through C1DataView or C1DataTableSource), see How to Access Table View Data and How to Access Table Data.

Direct client configuration is recommended for desktop applications and small 2-tier client-server applications that do not merit encapsulating business logic code in a separate project (data library). Developing a direct client application is very similar to traditional database application development using data controls to connect to the database and bound controls to display the data. It must be understood that a direct client application cannot be easily transformed to a data library; it will need to be re-created (although it may be a simple matter of copy/paste). So, if you have scalability in mind, it may be worth considering a data library from the start.