UUID Improvements and Sorting with Version 7
Starting with 4D 20 R10, UUIDs are now generated directly using an internal algorithm instead of relying on system functions—giving you better control over their format and behavior. And with this update, you can now opt for version 7 UUIDs, which support chronological sorting. Let’s explore what this means for your applications.
Stricter class-based typing for objects
With 4D 20 R10, object typing takes a major step forward, giving you more confidence and control in your code. Instead of simply checking if a value is an object, 4D now verifies that it’s an instance of a specific class. This unlocks smarter auto-completion, inline validation, and stricter compilation checks, helping you catch mistakes early and write clearer, more maintainable code.
The benefits don’t stop at variables and function results. This enhancement also applies to your data model: you can now assign a user-defined or native class (like the new 4D.Vector for your AI implementation) directly to an object field in the structure editor. 4D then understands the full shape of the object, from design time to runtime, enabling a type-safe and more reliable development experience.
ORDA Classes to handle your data model
In a previous blog post, we introduced you to the world of ORDA data model classes. Now it’s time to get our hands dirty and learn more!
You already know that ORDA‘s structure (datastore, dataclass, entity, entity selection) is made up of objects. But they’re not just objects, they’re strongly-typed objects linked to specific ORDA classes. This means that you can write functions to hide the complexity of your data’s physical implementation.
Welcome to the world of ORDA classes
ORDA was a revolution with 4D v17. It opened a whole new world of possibilities and took you to another programming dimension. A dimension where you can easily develop applications using an object-oriented approach.
We didn’t stop there! We continued to add enhancements to ORDA through a set of features in each subsequent feature release. Now with 4D v18 R4, we’re thrilled to be going another step further with the availability of ORDA data model classes. Classes dedicated to your data model.
This will greatly elevate your code. Your applications can now easily expose services, be more manageable and easier to maintain, and seamlessly integrate with other applications.
This is another big feature made possible thanks to the projects!
ORDA: an up-to-date datastore without restarting
We’re thrilled to announce that 4D v18 R3 includes an enhancement that will have a huge impact on the developer’s experience. A feature many of you have requested, and 4D delivers!
When you work in 4D standalone mode during the development phase (writing and testing your code), you’re no longer required to restart your database in order to have an up-to-date datastore (ds) when the structure is updated!
Now you don’t need to restart the database each time you need a new attribute or a new table in your code! It’s all automatic!
When you call the ds command, you get an up-to-date datastore object. This means that several versions of this datastore object are handled at the same time … depending on when you updated your structure … without breaking running processes.
If you work in client / server mode, this works fine for code running on the 4D Server.
For remote clients, you simply need to restart the client requiring the structure’s update.
Improving databases tests
As a developer, you’re aware that improving the quality of your developments is often based on unit tests. In order to launch these tests, developers and QA teams need tools to launch 4D databases in different modes (single user / client-server) and distinct environments (Macintosh / Windows).
4D products can already be launched using command line parameters to allow automatic testing or deployment. What if you want to create your own update mechanism or you need to handle a server farm with hundreds of 4D Servers running? Maybe you want to specify which database file to use – or pass parameters on launch …
Compatibility settings – Nested Transactions (Part 3)
Welcome to our ongoing series about compatibility settings and “hidden” features for improved performance. In the first post, we looked at the QUERY BY FORMULA command and its impact on an application’s behavior. The second post was about the “Use period and comma as placeholders” compatibility option to avoid running into “the numbers are displayed as >>>>>>>>>” hassle.
In this third installment, we’re going to explore Nested Transactions.
What are transactions and how do I use them?
Imagine transferring €200,000 from one bank account to another. You withdraw the amount from the source account, and then you deposit it in the destination account. So far everything is normal and in a perfect world the operation will succeed. Unfortunately, here in the real world things can go wrong. Something happens and the money is lost. That’s very bad.
Well, transactions are here to ensure that this doesn’t happen with your applications! In this blog post explore in detail the use and importance of transactions, as well as several scenarios showing how they can save your business.
Write generic code with ORDA
ORDA was one of the major announcements of 4D Summit 2018, opening a world of new possibilities in 4D. To learn more about ORDA and its benefits, check out this post to see how ORDA will change the way you work.
Times inside objects… (and everywhere else)
Objects are at it again, continuing to demonstrate their utility to ease your life as a developer.
Using time (or duration) values inside of objects is now smoother and more intuitive. Beginning with 4D v17, times inside objects are set as seconds – and not milliseconds!
Contact us
Got a question, suggestion or just want to get in touch with the 4D bloggers? Drop us a line!
* Your privacy is very important to us. Please click here to view our Policy
