Architecture Overview

POCO DataSet architecture describes how the library fits into an application as a neutral tabular data layer. The goal is not to impose persistence, UI, or domain modeling choices, but to provide a clear and predictable container for tables, rows, and metadata that can move safely between application layers and modules.

Architectural boundaries

A useful way to think about POCO DataSet is in three layers: the core, the integration layers, and the external systems.

Internal structure (core layer)

Inside the core layer, POCO DataSet uses a simple object graph: a DataSet holds named DataTables, a DataTable defines schema through ColumnMetadata, and DataRows carry the actual values. Schema (metadata) and data (rows) are separate but linked through the table.

Component relationships (inside the core)

Integration layers (how POCO DataSet connects to the outside world)

POCO DataSet itself stays neutral. Integration is done through companion components that translate between external systems and the POCO DataSet core model.

Typical data flow

In most applications, POCO DataSet is used as a data exchange format across boundaries: services provide a DataSet to the UI, the UI modifies it, and only the delta is sent back.

What the architecture deliberately avoids

Keeping boundaries clear is part of the design. POCO DataSet intentionally avoids:

Summary

Architecturally, POCO DataSet is best viewed as a small, stable core model surrounded by optional integration layers. This keeps the library lightweight and predictable while still supporting real application workflows: database loading, API transport, dynamic UI rendering, change tracking, and merge/refresh patterns.

 

Table of Content POCO DataSet Concepts

 


Business Process Programming in .Net
© 2004–2026 Laskarzhevsky Software Inc.
Unless otherwise noted, the content of this website is licensed under the Creative Commons Attribution 4.0 International License (CC BY 4.0).
Code examples are provided under the MIT License.
You are free to share and adapt the material provided that appropriate credit is given and any modifications are clearly indicated.
The information provided on this website is for educational purposes only.
The author and publisher make no warranties regarding the completeness or suitability of the information and are not responsible for any damages resulting from its use.