Crystalizer

Visualizing data relationships.
Crystalizer2 Demo
Crystalizer 2 is an application which allows you to see relationships defined in a database. It visualizes foreign keys, if you prefer. Crystalizer is however not an all-in-one solution, rather an opportunity or sample what can be done. The diagramming framework of Crystalizer in particular is extensible and just a collection of what the Orbifold has in terms of algorithms and Silverlight libraries. We wanted to create through Crystalizer a visualization of often encountered datasets in an enterprise, like:

  • CRM data and relationships between customer entities (invoices, quotes etc.)
  • hierarchical data stored in some form in business tables (team relationships, expense overvies etc.)
  • all sorts of XML datasets

The dependency on the diversity of data and data types in companies is kept to a minimum in Crystalizer by making the graph structure as generic and useful as possible. The ‘Structon’ table in the Crystalizer database can be easily created as a database view on top of existing table.

The fact that Crystalizer shows only person entities is just for convenience, there is nothing in the framework limiting the possibility to display documents, people, tasks and other entities.

Search

The search allows you to search the items in the default entity table. This can be extended to other entities (int the demo only ‘persons’ are shown).

Filter


The level of detail can be changed and the hierarchy will accordingly change automatically. For example, if you changed the level in the demo to ‘4′ you will see in the default screen something like below:

The other elements are just examples of how one could filter out or highlight in different colors the displayed data. One could, for example, highlight in red the sales figures below a certain value.

Details

The details screen gives the info regarding the central node and the related children. Obviously, the data displayed here depends on the entity shown and how much you wish to see. All of this can be easily changed through databinding and styling of the Silverlight controls.

View/zoom

You can alter the scale and pan around the diagram by means of the zoom slider and the thumbnail control. This is a useful feature when the amount of children grows in a certain direction. In this context, it should be emphasized that we have also the so-called truncated tree-views and tip-over-tree algorithms which can display larger amounts of children in a more pleasing fashion (not available in the demo).

Version 2.1

  • Simplification of the overall architecture, less code, less data exchange, better performance.
  • The data access has been rewritten on the basis of RIA Services. The previous data access was a wrapping around the asynchronous REST service.
  • The diagramming library has been rewritten in function of tree layout and mindmapping only. The unnecessary code related to other scenario’s was removed. A so-called truncated tree-layout has been added in order to visualize larger sets of children/parent.
  • In order to optimize the data access stored procedures have been added which fetch the necessary data in one go rather than the previous method which used an iterative data access.
  • Upgrade to Silverligh 3 of the hosting webpage as well as all Silverlight code (including the Silverlight Toolkit controls and the RIA service)
  • A level of detail has been added which allows one to display more than one level under the root. The minimum is set to 1 and the maximum to 5 though neither the data access nor the layout have problems displaying larger trees. Note that the data is reloaded after altering the level (modulo some delay related to the asynchronous behaviour of Silverlight).