Platform CUBA: Roadmap 2018
As I promised in the last post , I am pleased to present the plan for the development of the Platform for this year. This is a strategic plan, in which we have included only major changes, but there will certainly be hundreds of minor improvements.
Disclaimer: This plan is not a dogma, and we will certainly implement something beyond it, but something we will postpone. However, in general, we are going to adhere to this plan, and we suggest that the development community on the CUBA Platform also focus on it.
Teaser: CUBA Studio will be built into IntelliJ IDEA!
So, let's go!
Studio Standalone Edition based on Electron, as well as Release 6.8.
For the rest of the month we are going to launch the marketplace on our website. It will become a public section for the exchange of add-ons, written by us or by any other member of the community. This important event gives rise to a new ecosystem around the CUBA Platform, allowing developers to increase the functionality of their applications with a minimum of effort.
Technically, most add-ons will be available as application components , so to add them to the project it will be enough to copy the coordinates of Maven in Studio.
To begin with, we will put together the already released add-ons, available now on GitHub:
Drag & Drop - support for drag & drop in the universal user interface CUBA;
JavaMelody - integration with a popular monitoring tool;
ZooKeeper - dynamic detection of middle layer servers;
Localization German, Spanish, Danish, Dutch, Portuguese, Chinese Simplified and Romanian.
We also know that some members of the community are already ready to publish their components, so the list should grow!
The second quarter is
Studio are waiting for the following improvements:
Multi-window support in SE version;
Support for "thin" components in Studio (for example, without Core or Web modules).
New add-ons will be published:
WebDAV - support for WebDAV protocol for remote work with documents;
LDAP - advanced integration with LDAP;
IMAP - an add-on for reading and displaying messages via the IMAP protocol, whose events can be intercepted in the business logic of the application;
Rich Search - advanced full-text search for menu items and screens.
Support for TypeScript.
The third quarter
The main changes will be presented in Beta versions of the Platform and Studio 7.
Platform 7 Beta
The main emphasis is on updating the stack: we go to Vaadin 8 and implement the compatibility of the Platform with Java 9.
We all know how to laboriously update the stack in already running enterprise applications. In CUBA, we do the bulk of the work for you related to the update. Of course, migration to the new major version of the platform can not be seamless, but it is still much easier than updating the whole stack of technologies manually.
Another significant change is the appearance of a new API and data layer for the UI. The CUBA platform has taken a trend on the event-driven architecture: new lightweight screen controllers with annotated methods for event processing will make your code cleaner and more convenient for testing. A typed API for opening screens will eliminate the need for casting types.
A new presentation layer of data will replace the mechanism of the data servers. This should solve many current problems, including in places an opaque API and limited interaction capabilities between viewing and editing screens.
Other important changes:
communication between layers based on websockets;
support for browser history;
simplified creation of composite components, i.e. components based on other components.
From the point of view of Polymer UI:
transition to Polymer 3;
improved support for the CUBA security subsystem;
transition to vaadin-elements instead of paper- * elements (material design as an additional option)
Studio 7 Beta
We pass to the most interesting. Starting with version ? Studio will be built as a plug-in for free IntelliJ IDEA Community Edition! All existing functionality, including the WYSIWYG editor, will be preserved, but now it will be added to the full functionality of the source code.
We understand that this is a fairly radical step, but we have come to the conclusion that it is necessary. First, these changes radically improve the usability of Studio. Developers will no longer have to jump from Studio to IDE and vice versa.
Secondly, the tools for working with the source code in IntelliJ offer great opportunities for automating platform-specific tasks, including code generation. As an example, in the future we will be able to implement the full support of Kotlin.
In addition, IntelliJ IDEA is now the most popular Java IDE in the world, and in our opinion - the best. The fact that Eclipse lost another 8% market share for 201? only reinforces this belief.
Finally, IntelliJ Community Edition is free, and therefore this change will not affect financially the users of Studio. We hope that many Eclipse users will change the IDE easily and will bring even more pluses than just a new Studio. And those who remain true to their IDE, CLI will come to the rescue (see below).
For that many developers love CUBA Studio, so this is an easy start. Here we will not look for compromises: we are going to create a separate version of IntelliJ with the plug-in CUBA Studio and the helper at startup. This version can be downloaded from our site in the same way as now Studio.
Development with CLI
As you know, the CUBA platform is an open source framework, while CUBA Studio is a tool with a commercial subscription. Now, if you want to create projects for CUBA for free, we recommend starting the development of a new project in the free version of CUBA Studio, and when you reach the limit of 10 entities, go completely to the IDE.
And although in practice this approach is quite convenient, it can not be called 100% open source. Simply download the framework with GitHub and start on it a new project - not the most trivial task.
To get around this, we create a simple, lightweight and IDE-independent tool with the CLI (command line interface). This tool will quickly generate the project infrastructure, entities, CRUD screens, etc., and also create and embed your own teams.
So we will give developers the choice:
free, fully open, IDE-independent Platform + CLI, on the one hand;
convenience and speed of visual development in Studio, integrated into IntelliJ IDEA, on the other.
Dashboards - dynamic frame for displaying custom widgets;
Admin Tools - a set of tools for deploying, administering and debugging CUBA applications;
Data Import - support for importing data from various sources with the ability to configure mapping;
Public registration is a component that allows you to enter the application through social networking accounts.
The final releases of the Platform and Studio 7 are released.
In the ever-changing world of jаvascript frameworks, it would be short-sighted to bet only on one of them. Therefore, the web portal team plans to support alternative front-end clients, such as React and Angular, on top of the universal kernel, so you can choose any frontend yourself.
Again, as in the case of Studio vs CLI, developers will have a choice:
the fastest in the development of a client based on Vaadin to create standard UI business applications;
an alternative client for solving any UI problems, based on any technology to your taste.
You can effectively combine these two approaches in one application, for example, build a public portal on anything, and then add to it as quickly as possible the admin on the basis of the standard Vaadin UI. That's exactly what we did when we created shop and personal cabinet to www.cuba-platform.com .
Here the main change is the new BPM. In short, we want to implement the full integration of CUBA with the BPM engine, so that the solution of most of the tasks does not require writing code at all, or requires minimum. This requires integration with the CUBA data model, its UI, services and the security subsystem, including:
specific for CUBA stenysila with the ability to quickly create their own;
the possibility of visual creation of process forms;
call CUBA services;
binding the CUBA entities and their attributes to the process variables;
linking process variables to CUBA windows and service parameters;
CUBA UI for logging and managing running processes and mapping assignments to
and much more!
Other add-ons will be released:
Messengers - support messaging through popular instant messengers, for example, WhatsApp, Viber, Slack, etc .;
Multitenancy - an add-on that simplifies the development of multi-user applications;
Data drafts - restores the data entered when the browser window is accidentally closed or the web server is dropped.
We have planned a lot of positive changes for this year: update the stack, simplify the work with the framework, new tools for the developer's convenience - Studio and CLI, an impressive expansion of the functionality of the platform due to the ecosystem of add-ons.
We invite the participants of our community to help us on this path both by pull requests into the platform code, and by adding addons to the marketplace.
It may be interesting