Developing in Dipforge
Developing using Dipforge’s Rapid Application Development framework is easy, powerful, and scalable. It is built on a strong and flexible foundation that is based on the following core concepts:
- A dynamic typing system that is based on an open standard Resource Description Framework (RDF), this makes data interchange easy, and flexible.
- Data storage is via a distributed graph structure. This means that all reads are of a local copy of the data which makes horizontal scaling, rapid development and prototyping simple as accessing data does not require going though multiple layers.
- All data changes are managed via a fast asynchronous workflow engine and Dipforge’s Enterprise Service Bus (ESB). This means keeping other systems in sync with Dipforge is both straight forward and fault tolerant.
The Rapid Development environment is provided through Dipforge’s built in Web IDE. This makes collaborative development easy as everyone can work on the same environment through the browser based IDE. No need to install complicated IDE’s and libraries to get started, simply point your browser at Dipforge and start developing:
- Open a browser and point it at the dipforge installation. If on localhost the url will be http://localhost:8080/, otherwise replace localhost with the hostname of your installation.
- Login to Dipforge using your username and password. If a fresh install the username will be admin and password will be the one used during installation.
- Open the IDE application by clicking on
For more information on how to use dipforge visit http://dipforge.net/introduction-to-dipforge/.
Once the Web IDE is open a list of projects will be provided. There are a default set of projects provided by Dipforge and they provide all the core infrastructure for an installation. These projects include the following:
- bss: This is short for Business System Services and provides the admin shopping cart, package and user functionality available through the menu.
- desktop: This provides the desktop functionality that a user logs into. It provides the application launcher, the application panel and news feed panel.
- dipforge: This is a core project, all central dependencies go in here. If a class, service or view needs to be accessed from multiple projects it needs to be added here.
- example: Just the name explains it is an example project.
- ide: The web ide application is a project itself.
- oss: This is short for Operational System Services and is used in conjunction with the bss project but provides the service end points for it.
- public: This project is public facing and does not require users to authenticate when accessing. This provides the landing page for dipforge and can be used for any public content required by Dipforge.
- social: This provides the twitter like feed that appears on login.
- test: A test project.
Each project consists of the following sections
- Configuration provides the configuration for the project. In here you define types (the model or M of the MVC pattern), times (cron or batch process), methods (service end points that can be invoked) and actions (the mapping of actions on a type to the flows that need to be performed)
- Controls are the C in the MVC pattern. Controllers are implemented in groovy and provide the means to access the data stores and manage the processes. They can also be used to implement RESTFUL end points.
- Flows are the workflow definitions that will be executed when an action is performed on a type, such as update. These are implemented using Leviathan script, a DSL(domain specific language) that aims to make writing workflows quick and simple.
- Libraries are the external java libraries that can be used by this project.
- Package provides Groovy classes that can be used by the controllers and services.
- Services are the end points that will be invoked by the workflow scripts in order to interact with different systems. Services can also be used for testing and batch processing.