---
title: Overview
order: 1
layout: page
---

[[datamodel.overview]]
= Overview

////
TODO

 * Item: typically a Java Bean, but can also be any other Java type
 * Individual values in an item: callback or bean property name
 * Collections of items: In-memory list or explicitly fetched on demand from a backend
////

The Vaadin Data Model is one of the core concepts of the library.
To allow the view (user interface components) to access the data model of an application directly, we have introduced a standard data interface.

The model allows binding user interface components directly to data that can be viewed and possibly also edited.

Notice that the Data Model does not define data representation, but only how components access the data.
This leaves the representation fully to the implementation of the containers.
The representation can be almost anything, such as a plain old Java object (POJO) structure, a filesystem, or a database query.

Many data model implementations, such as data sources, are available as add-ons, either from the Vaadin Directory or from independent sources.
Installation of add-ons is described in
<<dummy/../../../framework/addons/addons-overview.asciidoc#addons.overview,"Using
Vaadin Add-ons">>.
Notice that unlike with most regular add-on components, you do not need to compile a widget set for add-ons that include just data model implementations.
