Which data management is the right one, depends from case to case. Most projects use a combination of the provides possibilities.
This q&a-entry offer an overview of the provided possibilities and provides for each possibility a conclusion with pros and cons and some remarks. The list should help to get a quick overview.
Please note, this is a wiki-entry. Feedback and enhancements are highly recommended. Who are interested about updates could subscribe this entry on the rights side and will get automatically an email on each change.
**[Content Management System] [CMS]**
* CMS entries could be overridden by the overriding-machnism.
* When a CMS entry is resolved, the projects dependencies are respected.
* To manage the CMS entries, an extended graphical Editor/View is provided and a public API exists for scripting.
* **+** Use the CMS for multi language content (like labels, texts, titles etc.).
* **+** Content which is related to a HTML Page (like CSS, JS-Scripts) should also be stored to the CMS. So all the stuff to a dialog is at one single place.
**[WebContent] [WebContent]** (like css or js files)
* When a WebContent entries is resolved, the projects dependencies are respected.
* The content of a WebContent is free accessible over the web.
* **+** The WebContent-folder could be administrated over the filesystem (e.g. via FTP, SSH, …).
* **+** The WebContent-folder is the rights place to store files (like images etc.). Specially in contrast to the CMS or a database.
* **-** Content which is related to a HTML User Dialog (like CSS, JS-Scripts etc) should be stored in to the WebContent or resource folder of the dialog (and not in the CMS). In this case the CMS serves only the multi language content.
**[WebContent] [WebContent]** (like css or js files)
* When a WebContent entries is resolved, the projects dependencies are respected.
* The content of a WebContent is free accessible over the web (as far as someone could guess the file name).
* **+** The WebContent-folder could be administrated over the filesystem (e.g. via FTP, SSH, …).
* **+** The WebContent-folder is the rights place to store files (like images etc.). Specially in contrast to the CMS or a database.
* **-** Content which is related to a HTML User Dialog (like CSS, JS-Scripts etc) should be stored in to the WebContent or resource folder of the dialog (and not in the CMS). In this case the CMS serves only the multi language content.
**Filesystem** (extern)
* **+** Because file management has to be implemented oneself, it is possible to control (and restrict) the access from the web (in contrast to the WebContent-folder).
* Otherwise the same pros and cons are true as for the WebContent-Folder.
**[HTML User Dialog][UserDialog]/resources**
* The content of a resource-folder is free accessible over the web (as far as someone could guess the file name).
* **+** The resources-folder is the rights place to store files (like images, js-scripts etc.) which belongs to the HTML User Dialog.
**[Datenbank] [DBStep]**
* **+** Read access to external systems
* **+** Data management of simple database structures (read and write) within Xpert.ivy .
**[Webservice] [WSStep]**
* **+** Read and write access to external systems (service oriented)
**[Persistency] [Persistency]** (Java Persistence API)
* JPA is a Java standart, it is well documented and widely used.
* There are some pitfalls. Start your first JPA experience with some simple examples.
* **+** management of relational database structures within Xpert.ivy
**[Environment Variablen] [Environments]**
* The following configuration could be configured for each environment: Database, Webservice and custom string variables
* **+** Custom string variables should be used to store data which depends on different environments (like Developmenet, Testing, Production)
* **-** The environment and the variable-values should not be changed at runtime (e.g. over the public API).
[CMS]: http://www.xpertivy.ch/releases/Xpert.ivy/5.0.latest/documents/DesignerGuideHtml/ivy.cms.html
[WebContent]: http://www.xpertivy.ch/releases/Xpert.ivy/5.0.latest/documents/DesignerGuideHtml/ivy.html.webContent.html
[UserDialog]: http://www.xpertivy.ch/releases/Xpert.ivy/5.0.latest/documents/DesignerGuideHtml/ivy.htmldialogs.html
[DBStep]: http://www.xpertivy.ch/releases/Xpert.ivy/5.0.latest/documents/DesignerGuideHtml/ivy.processmodels.elements.dbstep.html
[WSStep]: http://www.xpertivy.ch/releases/Xpert.ivy/5.0.latest/documents/DesignerGuideHtml/ivy.processmodels.elements.webservice.html
[Persistency]: http://www.xpertivy.ch/releases/Xpert.ivy/5.0.latest/documents/DesignerGuideHtml/ivy.persistence.html
[Environments]: http://www.xpertivy.ch/releases/Xpert.ivy/5.0.latest/documents/DesignerGuideHtml/ivy.configuration.environments.html