Prerequisite Knowledge
Overview
This section lists the main knowledge areas which are relevant when developing in/with Etendo. The exact required knowledge level depends very much on the task one needs to under take. Some development tasks will consist primarily of changes through the Etendo UI which require very little deep technical knowledge. Other tasks can be more involving and require changing or extending Etendo. In this last case, a technical understanding of the Etendo product is also required.
General Knowledge
To develop in/with Etendo, it is at least required to have a basic understanding of the following technology:
- Java: The programming language used in all the server side components of Etendo. It is used in all levels from the core components to ERP business logic.
- J2EE: The platform used for server programming in the Java language it adds libraries to provide enterprise capabilities to java applications running on an application server.
- Gradle: The tool used to execute the build tasks related to Etendo like compiling, deployment to an application server, exporting and importing the database schema, etc.
- IntelliJ IDEA: An integrated development environment that helps in all the development tasks related to Etendo like editing source files, debugging, executing build tasks, etc.
- SQL: A database computer declarative language. It is used across all the Etendo server side components to access data stored in the relational database management systems used: PosgreSQL and Oracle.
- HTML: The markup language used to render the Etendo user interface in the web browser used by Etendo users.
- XML: The markup language used to describe different documents in Etendo like REST Web Services, Jasper Reports, configuration files, template files, etc.
Database
If the development tasks are primarily in the database area, then a developer would also need to have experience with:
- PostgreSQL or Oracle: The target database used.
- Database schema concepts like constraints, foreign key, triggers, indexes...
- PL/SQL: The language used to develop business logic in the database side.
UI / Client-Side Code
Etendo requires a web browser like Internet Explorer, Firefox, Chrome or Safari to render the user interface. For developments focused on the user interface there will be required experience with:
- JavaScript: An scripting language used by web browsers to provide access to the user interface pages. Developers should be able to read, write and debug JavaScript code using the development tools provided by web browsers.
- SmartClient: The RIA Framework Etendo is based on, it is based on JavaScript it includes a large collection of widgets and other utilities for the client side.
Data Access Layer
For server side developments in the Java programming language that access the database, the following technologies are used:
- Data Access Layer: The Etendo component used to strengthen the development of business logic in Java.
- Hibernate: The library Data Access Layer is based on that provides Object/Relational mapping and enables developers to use an object model to access relational databases. To make the best use of the Data Access Layer, its main concepts are important to understand how to create more advanced queries, especially the Hibernate Query Language (HQL) and the Hibernate Criteria API.
Web Services
To consume and extend Etendo web services, a developer needs to have knowledge in the following areas:
- REST: The style of software architecture used to provide web services in Etendo.
- XML Schema for XML Web Services, to represent the XML media type provided by this type web services.
- JSON: A text based standard designed for data interchange, it has a close relation with Javascript and it is used for JSON Web Services in Etendo.
This work is a derivative of Prerequisite Knowledge by Openbravo Wiki, used under CC BY-SA 2.5 ES. This work is licensed under CC BY-SA 2.5 by Etendo.