Delphi and ExtJS: event summary and looking ahead
As I mentioned in the prior blog post, the “Delphi and ExtJS” event, held in Milan on last October 26th, has been a success.
When I first had a contact with Ibuildings Italia, the Sencha reseller partner in Italy, we thought it could have been a nice idea to provide a free public event to let people come and see how ExtJS (a frontend JavaScript web framework owned by Sencha, a company recently acquired by Idera) and Delphi may work together. This would have meant a chance for existing Delphi developers who are looking for a web solution to gain some knowledge about features and capabilities of ExtJS and, at the same time, provide an opportunity for developers/companies with existing ExtJS frontends to consider integrations against existing Delphi (legacy or not) backend or C/S applications.
The subscriptions number we received in a few hours has been far larger than what we expected at first and we quickly had to double the room (let me thank all Ibuildings staff members for the organization of the event that has been smooth and properly handled from the opening of the subscriptions to the final survey and followback).
I was happy to join this event as an Embarcadero MVP to cover the Delphi part of the topics, while Federico Baron (Ibuildings Italia, scrum master) was assigned to cover the ExtJS introduction and feature showcase (including most used components like grids, charts and calendar). Mauro Pugliese (Ibuildings Italia, country manager) opened the event with a short presentation of Ibuildings and covering the meaning of the event and our collaboration.
From a technical point of view, ExtJS has some strong similarities with the Delphi approach:
- it has the concept of “component” (very familiar to every Delphi developer);
- there is a “build automation” (think about msbuild);
- the general ExtJS approach is strongly declarative (that really recalls DFM or XFM files);
- the concept of data stores really reminds me TDataset (with some additions like proxies that reminds me some remoting like Datasnap or similar ones in the Delphi area);
- the MVVM approach with a neat separation of the Model, View and ViewModel parts recalls me the separations you can gain across classes, Forms/Frames and DataModules;
- it provides a feature rich set of components to easily build complex applications in a consistent manner (like Delphi is capable of).
There are several ways to make use of ExtJS within a Delphi context and there are some different approaches to integrate (resulting in different commercial products like UniGUI or open source projects like Kitto or ExtPascal). Each project has its own strengths and capabilities and of course will fit differently according to the project your are building.
Another way to use ExtJS with Delphi is to build a Delphi REST server and you have multiple options here including:
- two offers by Embarcadero that are RAD Server and Datasnap
- another option by Embarcadero that is plain WebBroker technology
- commercial options like TMS XData or Sparkle
- several open source libraries including:
- mORMot (Synopse, Arnaud Bouchez)
- dmvcframework (Daniele Teti)
- MARS-Curiosity (me)
This last approach (pure Delphi REST server + pure ExtJS frontend) is highly decoupled and may be a long-term opportunity to embrace changes both server side and (web) client side, as well it represents an opportunity to also add a native mobile app in the picture without having a separate dedicated server for it.
During the event, I used MARS to showcase how to access data from a database (using FireDAC as DAC library) and serve JSON to ExtJS store with REST proxy. Also, some integrations are possible to implement server side sorting and grouping of data for ExtJS grids and other components. The second demo was about the ExtJS calendar component, where the application server acted both as a source for event data and as a store for newly created events (through the ExtJS web interface).
It has been a pleasure to meet over 40 attendees who were happy to ask a lot of questions about the topics shown during the event. We have a follow back training course on November 27-28-29, two days of ExtJS training (by an Ibuildings ExtJS expert) and the last day on Delphi-ExtJS integrations (by me).
Hope to see you all soon. Delphi rocks!
PS: don’t miss Marco Cantù session about ExtJS and Delphi in the CodeRage XII (that is starting today!)