Prerequisite Knowledge

From InfiniteERP Wiki
Jump to: navigation, search

Introduction

This page lists the main knowledge areas which are relevant when developing in/with Openbravo. 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 Openbravo UI which require very little deep technical knowledge. Other tasks can be more involving and require changing or extending Openbravo. In this last case also a technical understanding of the Openbravo product is required.

General Knowledge

To develop in/with Openbravo it is at least required to have a basic (one year) understanding of the following technology:

  • Java: The programing language used in all the server side components of Openbravo. 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.
  • Apache Ant: The tool used to execute the build tasks related to Openbravo like compiling, deployment to an application server, exporting and importing the database schema, etc.
  • Eclipse IDE: An integrated development environment that helps in all the development tasks related to Openbravo like editing source files, debugging, executing build tasks, etc.
  • SQL: A database computer declarative language. It is used across all the Openbravo 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 Openbravo user interface in the web browser used by Openbravo users.
  • XML: The markup language used to describe different documents in Openbravo 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

Openbravo 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 Openbravo 3 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 Openbravo 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 Openbravo web services a developer needs to have knowledge in the following areas:

  • REST: The style of software architecture used to provide web services in Openbravo.
  • 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 Openbravo.