» Danta Overview

» What it is?

Danta is a multi platform scripting engine that separates presentation and business logic, specially created for clients who build applications for Digital Marketing and eCommerce platforms. Danta ensures quality, accelerates delivery, and reduces the total cost of ownership for your eBusiness platforms, including AEM, Jahia and elasticpath (EP).

Danta is 100% compatible with anything else developed in AEM, regardless of the language used. This means that Danta components can be used with templates and components written in JSP, Sightly, ECMAScript, or any other language supported by AEM. In addition to AEM, Danta is compatible with Jahia CMS, having a specialised bundle that handles core interactions with specific functionalities of Jahia.

Danta provides the following business benefits:

  • Accelerates implementation time
  • Lowers development costs
  • Better and consistent quality to lower maintenance costs
  • Maximizes object re-use
  • Lower Total Cost of Ownership
  • Multiplatform compatibility

» Philosophical justification

Danta offers true separation of concerns between presentation and business logic. In all of the cases, the concept that each layer must be treated as an isolated domain of skills, knowledge, and processes is confused with simply removing inline scripting. They assume that the solution is to merely prevent any way to mix large chunks of back-end code (e.g. Java) with the front-end presentation (e.g. HTML), and end up completely missing the point.

Separating logic from business gives multiple advantages, some of them reside in development specialisation, a veteran front-end developer should have deep proficiency in all things HTML, CSS, & JavaScript; broad experience in frameworks spanning multiple technologies like AngularJS, React, Bootstrap; and insight into upcoming things like ES6 or PostCSS. They should not require knowledge of DB schemas or data models; AEM, Sling, or custom Java APIs; specifics of how servers are integrated; or any other mechanics of back-end operation. Likewise, a competent back-end developer should be concerned with the accessing, integration, & processing of data. They should not need to worry if results of their code's calculations are presented faithfully and without modification at render time. Moreover, they should not have to think about whether refactoring some business logic might affect how it's displayed.

Danta never requires a developer specializing in one domain to worry about intrusion from unrelated domains. For the presentation layer, Danta leverages the semantics of Handlebars, a language well known to front-end developers and widely adopted across the industry (including within parts of AEM). The back-end layer provides a simple Java interface to implement, and never exposes the option to breach another domain.

So we can say that, it allows front-end developers to focus on producing the best HTML, and back-end developers to concentrate on producing the best Java.

» Intentional lack of extensibility

Danta, is intentionally designed with no way to modify or extend the directives available to the presentation. This means that it's impossible for back-end functionality to intrude into presentation, so there's no need to constantly build complex tests for every code update.

Even more important, no modification of either the presentation or back-end logic will ever expose an exception or any other kind of failure to end users. The worst that could happen is addressing a nonexistent value returns a blank result.