Table and Row Organization
POCO DataSet organizes data through a clear two-level structure: tables and rows. Each DataTable defines its schema through ColumnMetadata and stores row data in DataRow objects. This separation ensures predictable data flow, clean layering, and support for dynamic UI generation.
This arrangement enables flexible data manipulation and makes POCO DataSet suitable for data-driven architectures and dynamic user interfaces.
Internally, POCO DataSet uses a column-oriented storage layout. Instead of storing each DataRow as a standalone object with multiple fields, each column stores its values in a dedicated collection. This approach improves lookup performance and reduces memory overhead.
Benefits of column-oriented storage:
Each DataTable maintains a list or array-like structure for each column. DataRows act as logical views over these column arrays rather than owning the values directly.
Although POCO DataSet uses a column-oriented internal storage model, consuming code interacts with data using a row-oriented abstraction. IObservableDataRow exposes values as if each row were a traditional object with named properties, enabling intuitive access for UI and business logic.
Advantages of row-oriented access:
IObservableDataRow serves as a wrapper that references the DataTable’s metadata and column arrays. When a value changes, the row raises change notifications for listening components.
POCO DataSet is designed to balance internal performance with external readability. Its hybrid column / row approach enables efficient storage and lookup while exposing a row-oriented API for clarity and ease of use.
Performance benefits:
Readability benefits:
A pure row-based model is intuitive but inefficient. A pure column-based model is fast but hard to use. POCO DataSet combines both: column-based storage internally with row-based access externally.
POCO DataSet is intentionally designed as a modern alternative to ADO.NET DataSet. While the classic DataSet was built around WinForms tooling and XML serialization, POCO DataSet targets JSON-based, metadata-driven architectures and lightweight modern frameworks.
Key differences:
These differences make POCO DataSet more predictable, extensible, and suitable for modern web, cloud, and UI-driven applications.
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.