Being a full-stack developer is a complex undertaking these days. As you might remember, it hasn't always been like this. There are multiple reasons for this evolution.
The new Jmix version 1.3 has been released recently. In this article, I will highlight the most important updates introduced in this feature release.
The concept of add-ons plays significant role in development with Jmix framework. In this article, we explore what is an add-on and how Jmix Studio helps developing add-ons and modular applications.
Legacy applications continue running mission critical business tasks. But when they imminently come to the end of their lifecycle, you need to choose the right option for cost-efficient modernization.
In this article, I will briefly describe the most noteworthy features introduced in the new release.
Developing business applications could be efficient. Oftentimes it is not. There are a lot of reasons for this, but one of the main ones is developers lack the right tool for the job.
One more year is almost gone, so it’s time for the traditional recap of what the team was working on and what we plan for the upcoming year.
The next version of Jmix – 1.1 - is available for download.
In this version, we introduce several major features:
- Migration from CUBA projects
- Kotlin support
- Full Java 17 support
Jmix Studio was updated too to support all these features.
Good search capabilities are always useful in any application which works with data.
We have released a stable version - 1.0 of the Jmix framework. We’ve spent most efforts on bugfixes and code stabilization to deliver the production-ready framework. But that is not all.
In Jmix, the JPA data model, hence database is a cornerstone of the application.
Jmix is a framework for data-centric application creation. Hence, data model and data access layer play one of the major roles in the framework. We use relational databases and JPA for data access in Jmix.
Jmix 0.9 is the last pre-release branch that should be considered as “almost stable”. We also deliver the latest version of the companion development tool for the framework - Jmix Studio: 0.9.1-202.
The data model is one of the cornerstones of any enterprise application. In this article, we will discuss the data access layer in Jmix, talk about what can be done with this framework and its tools, and how the data access works under the hood.
First of all, let me wish all of you a Happy New Year and congratulate that 2020 is finally over! It has been a rough year for the world, and I hope that 2021 will bring us more positive news.
CUBA started its way back in 2008. Since then it went through a few very important stages. At first it was an internal framework with no documentation and even less API. It was a company-wide thing that allowed Haulmont to develop Business Applications faster.
Soft deletion is a widely used pattern applied for business applications. It allows you to mark some records as deleted without actual erasure from the database. Effectively, you prevent a soft-deleted record from being selected, meanwhile all old records can still refer to it.
HTTP 1.1 is a well-known hypertext protocol for data transfer. HTTP messages are encoded with ISO-8859-1 (which can be nominally considered as an enhanced ASCII version, containing umlauts, diacritic and other characters of West European languages).
Code generation is a common thing in modern frameworks. Like every technology, code generation has application areas and limitations. In this article, we will have a look at code generation usage in CUBA Framework nowadays and discuss the future development of this technique.
CUBA is modern, productive and easy-to-learn - probably that’s why more than 40 universities all over the world use it for teaching enterprise computing.
How to build an actual stack of frameworks and libraries for a comfortable development process if you’re working remotely in a distant village, flying for 8 hours on a plane, or if the access to the world wide network in your company is so limited that you can’t use public artifact repositories, such as maven central?
Multitenancy is a reference to the mode of operation of software where multiple independent instances of one or multiple applications operate in a shared environment. The instances (tenants) are logically isolated, but physically integrated.
We are happy to present our new visual theme - Helium! Helium is much cleaner and brighter with less visual noise comparing to its predecessors. Theme comes with editor which allows to rapidly create custom color presets.
CUBA website in Italian launched! All the commercial services including consultancy & support, training and custom development are now available in Italian.
“It works on my local machine!” Nowadays it sounds like a meme, but the problem “development environment vs production environment” still exists. As a developer, you should always keep in mind that your application will start working in the production environment one day. In this article, we will talk about some CUBA-specific things that will help you to avoid problems when your application will go to production.
Rapid application development (RAD) model was formalized by James Martin in 1991 as an alternative to the rigid waterfall processes. The classic waterfall approach works perfectly in construction and many other industries where scope changes are rare and expensive. If you started building a bridge, it is unlikely that you would swap it for a ferry halfway through the process.
The seventh version of the CUBA platform was a big step forward. Internal architecture improvements and the new IDE built a great basis for further improvements. And we continue adding new features to make a developer’s life easier and their work more productive.
Since the very beginning, Vaadin was a cornerstone and crucial part of CUBA Platform UI. The article describes evaluation of the completely new Vaadin framework.
The low code application platforms (LCAP) have emerged in response to the complexity and variety of the modern software development landscape. Mendix is one of the most prominent players in this space according to Gartner, so let me use it as a reference in this article. However, similar conclusions would apply to Outsystems, Appian, Kony, Betty Blocks and many other platforms.
In this article, we will talk about the feature of the CUBA platform that exists for quite a long time, but is still not widely known - front-end SDK generator, and see how it works with CUBA’s REST API addon.
The RAD term may sound like an echo from the beginning of 2000s - have they been evolving? Let’s see.
CUBA team introduces up-to-date video tutorials that aim to reveal the most important and useful features of the platform and its instruments.
In CUBA, we continuously evaluate more traditional, front-end centric approaches for UI development. We want to share the latest news regarding front-end tools, libraries and code generation.
Working with spatial data and displaying maps is an inalienable part of many business apps. It can be city or regional information systems, oil-and-gas industry applications, transport infrastructure management systems, as well as delivery services and many more.
Not so long ago we've announced the major release of CUBA Platform - CUBA 7. Nevertheless, CUBA Team provides support for the previous versions of the platform. We're going to continue releasing 6.2-6.10 versions with security and bug fixes.
Almost any system operates with external data stores in some way. In most of the cases, it is a relational database and very often data fetching is delegated to some ORM implementation. ORM covers a lot of routine and brings along a few new abstractions in return.
Java developers have access to a number of useful tools that help to write high-quality code such as the powerful IDE IntelliJ IDEA, free analyzers SpotBugs, PMD, and the like. The developers working on CUBA Platform have already been using all of these, and this review will show how the project can benefit even more from the use of the static code analyzer PVS-Studio.
In this article, we’ll look at reflection API, pros and cons for its usage and review other options to replace reflection API calls - AOT and code generation and LambdaMetafactory.
The word “major” in the upcoming releases of CUBA and Studio is well deserved. It is the most important release for the last 3 years, based on thorough analysis of the community feedback on the forum, conferences and Java User Groups. However, it comes with even more changes!
Three years ago we announced the second publicly available major version of the framework. CUBA 6 was the game changing version - the licensing was turned from proprietary to Apache 2.0. Those days we couldn't even guess where it was going to bring the framework in long term.
Developers usually don’t like to change their coding habits. When I started working with CUBA, I didn’t need to learn a lot of new things, creating applications was a pretty smooth process. One of the things that I ought to rediscover was working with data.
Scripting is one of the most popular ways to make your application adjustable for client needs right at runtime. As always, this approach brings not only good, e.g. there is a well-known trade-off between flexibility and manageability.
In the developer's life it happens to change one framework to another. The article is exactly about this, it shows the impressions of an experienced RoR developer moving to CUBA Platform. What is similar and what is perpendicular, what is more productive and what is easier to understand - read more in the article!
It’s been half a year since the launch of the Marketplace. Within this period we’ve carried out a number of improvements, such as new components publications and creating of a special forum category. Our community have done its bit for the Marketplace progress, and we expect to keep the same pace of our community and services development.
The CUBA WebDAV Addon has been published on the Marketplace! The Addon provides your CUBA application with powerful functionality for collaborative work on documents in various formats. Automated migration from the standard CUBA file storage simplifies adding WebDAV support to existing projects.
This text discusses approaches to data validation. What are the common pitfalls that many projects fall into and what are the best practices Java applications should follow.
Up until recently, this training course was part of our commercial content. Now we are releasing it for free to help the whole community use the framework and tools more efficiently.
There is no secret, that the world of software developers, especially Java developers, is full of keyboard maniacs who’d better type 10-15 letters over one mouse click. And our community is not an exception, therefore we've been frequently asked questions like "How can I start a project without CUBA Studio?" or "Is there light-weight free command line alternative to CUBA Studio?". So, good news everyone!
As you probably know, Vaadin is one of the most popular web frameworks on Java. Most recently a new release of this framework for web UI development was issued – Vaadin 10.
COBOL, 4GL, minicomputers… - this terminology sounds forgotten nowadays together with phonograph records and punch cards. Unbelievably, in the enterprise world you still can meet these dinosaurs functioning, especially in big companies like international banks or world-wide manufacturers.
Reading requirements for yet another web project for internal corporate use you (at least myself) usually see a pretty common set: well-defined data storage structure (or sometimes it’s an existing legacy DB), lots of forms for data entry, quite complex business logic, reporting and integrations with lots of existing corporate systems from accounting to supply management, thousands of concurrent users. What are your first thoughts?
How secure a web application should be? Well, for many of us, web-developers, the question doesn't make much sense. "An application must be as secure, as it is possible. The more secure it is, the better". But it is not a definite answer. It doesn't help to form a security policy of a project. Moreover, sticking to just this single directive ("The more secure it is, the better") may prove to be an ill service. Why? That's what I'm going to discuss in this article.
These days we are starting the Marketplace - an all-new ecosystem around CUBA platform. From now and on developers can pick & choose new features from an add-on catalog on our website to enrich their apps with no hassle. The catalog consists of the add-ons which were developed either by Haulmont or by CUBA community. Both free and paid components can be found there.
As promised in my last post, we would like to announce our development plan for the year ahead. Of course, it contains only major features, with 100s of smaller improvements to come as well.
No doubts, that web technologies and tooling for creating UIs are way more advanced than what we see in the desktop side. JavaFX is borrowing more and more CSS, but still far from being ideal; JNLP is officially deprecated in Java 9. This situation makes us think using web tech for desktop clients. So, is it achievable? And if yes, then how?
At the dawn of 2018 it is good time again to recap what has happened with CUBA Platform over the last year. While 2016 was revolutionary for us with going open source, 2017 was more about maturity: we focused on delivering new features and offering new services to the community.
If you google "best java framework", most probably, you will stumble on this article: https://zeroturnaround.com/rebellabs/java-web-frameworks-index-by-rebellabs/, which gives a great overview about the landscape in the Java Enterprise world. However, from my point of view it lacks a very important thing - classification of the mentioned frameworks. Let's have a look at another angle at this ecosystem and go beyond the Java world.
Over the last months we were working tirelessly to bring our new website into life. Starting from the last week, frequent visitors could have noticed that almost every other page has been changed to provide more clarity to the content.
SQL, RegExp, Gradle — what do they have in common? All of them represent an example of using domain-specific languages, or DSL. Languages of this type aim to solve a specific problem, such as database querying, finding matches in the text, or build process description. Kotlin language offers a large amount of features for building your own domain-specific language. In this article we’ll discover the developer’s toolkit and implement a DSL for a real-world domain.
The article introduces a CUBA application component that allows developers to move the definition of Scheduled Tasks to design time using annotations. It explains when and why this approach brings advantages over the standard way of defining scheduled tasks at runtime. Also, this article touches some technical aspects of how this application component is implemented.
A few weeks ago we published the new minor release of CUBA platform and Studio. As always, it brings some very awaited features and improvements, making development process more straightforward, transparent and fast.
Since CUBA Platform was published as an open-source solution we are constantly moving towards increasing transparency. About a year ago we made CUBA issue tracker accessible, followed by publishing the platform roadmap. Finally, now we encourage everyone to contribute the code and influence CUBA Platform development.
As you already might have noticed we have published the new minor release of CUBA platform and Studio. The new version introduces mostly enhancements of the existing functionality, however, there are a few useful features have been included in 6.5.
This article covers major enhancements of Platform and Studio. The full list of changes is available in the corresponding release notes:
What if you got to the point when your legacy application should be migrated? We decided to provide a step by step guide and show how to migrate a legacy application to CUBA with minimum efforts, taking the official sample for the LightSwitch platform as an example.
The release candidates of the Platform and Studio version 6.4 are now available.
The 2016 is just gone, and it was so rich on events for our team, that I decided to recap what happened during it and where it has taken us.
After a number of requests and continuously coming questions on the future development plans of the CUBA Platform and Studio, finally, we are proud to announce that the roadmap is now available to the community.
We are proud to announce the general availability of the new release of the CUBA Platform and Studio!
As you may know, CUBA Platform is all about fast web enterprise applications development - achieving this via a combination of pre-built features, extensive scaffolding and visual UI design. However, development is only one part of the project lifecycle, so the platform team took one step further and provided developers with a fully scalable automatic deployment feature.
Attending conferences we always get to meet highly qualified decision makers, who frequently ask the same question: ‘How open is your framework and what if I need more than you offer out-of-the-box?‘. The question is very reasonable, as they simply don’t want to be stuck right in the middle of the development curve, then realise that the framework just doesn’t allow implementing some features or, likely, if you use open source product, it requires an unpredictably long time to dig deeper to poorly documented parts of the framework.
In this article I will illustrate how you can integrate 3rd party visual components into the CUBA Platform.
Update: After version 7 CUBA was renamed to Jmix, which is effectively 8th major version of the platform.
The long-awaited moment has come, and now we are happy to announce that the CUBA Platform has finally joined the free software community! From now on, all the runtime part of the platform is open source and distributed under the Apache 2.0 license. This means that you will be able to create and distribute your applications absolutely for free! So, go ahead and start your CUBA application right now!
In this post, I would like to highlight why and how we have changed the licensing track.
We are proud to announce the general availability of new versions of the CUBA Platform and Studio. The most radical change is licensing - since 6.1 version CUBA is distributed under the Apache 2.0 License. Also, as usual, the new version of the CUBA platform brings in several major new features, along with improvements and bug fixes.
When we started the development of CUBA Studio, we already had built up a large quantity of experience with Vaadin in CUBA Platform, because the generic UI of the platform is also built over this framework. So, why did we choose Vaadin? In this post I will highlight the most valuable features and interesting use cases.
After an incredibly busy few weeks, we’ve now had time to reflect on the exciting week we spent at JavaOne Conference in San-Francisco. The conference gave insights on where Java community is heading, sparked many ideas for the CUBA Platform and allowed us to meet some outstanding guys, so I decided to share our impressions on the event.
The new version of the CUBA platform has been released, bringing in several major new features, along with a number of bug fixes and improvements.
Haulmont Technology has been selected by Gartner to exhibit as an ‘Emerging Technologies Exhibitor’ at the Gartner Symposium, the world's most important gathering of CIOs and senior IT executives, taking place 8th - 12th November in Barcelona.
We are happy to announce the new release of the CUBA Platform is getting closer, with only a couple of weeks until the release, let’s take a look at what will the new version bring.
The new version of the CUBA platform has been released, bringing in several major new features, along with a number of bug fixes and improvements.
If you have experience of business application development, then most likely you will have encountered a requirement for the application to have a flexible reporting mechanism. The company I work for is mainly focused on developing business solutions and reporting is an essential, indeed, must have aspect of all the enterprise systems we develop. To enable flexible reporting in our systems, we have developed our own open-source (distributed under Apache 2.0 license) report generator - YARG (Yet Another Report Generator).
We are happy to announce that CUBA Platform will be attending JavaOne - the world’s most prestigious Java event in the heart of Silicon Valley! You are most welcome to meet the CUBA team on our stand and discover more or share your ideas about the platform.
How can the product be kept a step away from the potentially dangerous ideas of your customers, yet still satisfy them? How can it be possible to maintain the highest levels of performance for a product technically designed to function in a particular way, but now with a layer of numerous add-ins? How much of a challenge will be created by the fundamental need to provide unfailing and outstanding support to the developed solution?
A huge amount has happened recently. Following the official launch of CUBA on 1st of June, we have rolled out a new release, published our first article on a few Java sites and presented the platform at the Devoxx UK сonference in London. But before the rush continues, about it is an apt time to articulate the philosophy behind CUBA.
CUBA Platform was introduced to the public at Devoxx UK 2015: we met many of the 1000 participants, held over 50 comprehensive discussions, got some great feedback, had pleasant meeting with colleagues from Vaadin… All that has lead to a range of new fruitful ideas - thanks to Devoxx!
The new version of CUBA platform has been released! We bring more and more improvements and features, all aimed to make the development process more efficient.
So, what's new in CUBA platform 5.5 besides of bugfixes and how CUBA can make your life easier.
We are excited to announce that CUBA Platform is the Silver sponsor of the Devoxx UK Java conference, which will be held in London at the Business Design Centre, 17th-19th June.
Update: CUBA Platform made impressive progress since when this article was published. To get the most up-to-date information, I recommend reading it's new version, published recently in our blog.
CUBA Platform 5.4 has now been released, bringing new features, as well as a number of bug fixes and improvements. This is also the first release available on the English version of our website.
As usual, we have released a new version of Studio, supporting projects based on the Platform 5.4. Besides the automatic migration to the new platform version, this Studio release offers some useful new features