Welcome, guest ( Login )

WikiHome » GridWidget » DataProvider

DataProvider

Version 15, changed by brian 01/18/2006.   Show version history

Dojo DataProvider Page

This is a page for discussion about Dojo work towards having a:

  • data-provider API
  • data-model
  • data bindings for widgets, including
    • dojo.widget.Chart
    • dojo.widget.Grid
    • dojo.widget.Tree
    • etc.

Related pages:

Ideas to discuss:



Meeting notes from 2006.01.12:

  • what: Dojo data-binding/data-provider meeting
  • when: Thursday, January 12, 2006 at 6:00 pm PST
  • where: JotSpot in Palo Alto
  • host: Dylan
  • people:
    • Alex Russell
    • Andy Cavatorta
    • Brian Douglas Skinner
    • Dustin Machi
    • Dylan Schienmann
    • Jesse Kuhnert
    • Tim Mansfield
    • Michael Tildahl
    • Neil Roberts
    • Tom Trenka

Agenda:

  • Discuss current proposals

General Requirements:

  • Data Synchronization
  • "Pluggable" backends
  • Specialized for particular uses?
  • Simple to "bind" Data Sets to object properties and propigate changes both ways
  • Getters/setter and CRUD contracts for Data Providers in order to specify queries and updates, not another query language

Ideas:

  • features: items, attributes, get a set, iterate, get values, etc., return a set from a query (not just the entire data set), synchronization (dojo.event.topic ? )
  • Brian Skinner: data models, semi-structured data, API that degrades towards conventional db models
  • Event data model diagram: http://dojotoolkit.org/~alex/data_event_model.png

Use Cases:

  • Autocompleting search field
  • Spreadsheet (Grid)
  • Tree

Glossary:

terminology comparison chart: http://openrecord.org/dojo/2006-01-09/data_model_comparison.html

Data Provider:
Widgets in the UI layer can be bound to a Data Provider, and the Data Provider provides data in a standard representation, independent of what Data Transport is being used. The Data Provider maintains a cache. When the UI layer asks for data from the Data Provider, the Data Provider may be able to satisfy the request out of its cache, without using a Data Transport to talk to the server. The Data Provider is smart enough to know when it can handle a request using the cache, and when it needs to hit the server.

Data Set: A collection of Data Items

Data Transport: Remote or local persistent place to get and put data from. A Data Transport returns data in whatever format the server finds convenient -- could be XML, or JSON, or whatever. The Transport will be fairly dumb, but may know enough to impose some limits on the amount of data coming from the server.

Data Item: A dictionary of values, keyed by attribute (or attribute name). The Data Item may be able to return meta-data about itself, or about its attributes. -- implementing a set of common methods (getKey, getValue, getLabel)?

Data Value: something like 5, "foo", 7/19/2005, or .._ A data Value might also have some meta-data, including things like ValueType (number, string, date, etc.), what user created the value, and when.

Sub-projects:

  • data provider and data model
    • Alex Russell
    • Brian Skinner -- data model
  • data transport
    • Tom Trenka -- morse code data transport ;-)
    • Dustin Machi -- RPC
  • widget interface APIs (and widget implementations)
    • Alex Russell

Attachments (0)

  File By Size Attached Ver.