Why Your Search Stack Feels Broken — and How Vector Search Fixes It
You ask a question. Your system gives you keyword matches — close, but not the answer. The real insight? It’s buried in a doc, phrased differently, or hiding in a format your search can’t understand.
Now imagine search that gets what you mean — even if you don’t say it perfectly. That surfaces meaning, not just matching words.
That’s the shift we’re exploring in this blog post: what’s failing today, what’s replacing it, and why vector search is becoming the new default for teams that need clarity at scale.
Embed deployment license automatically into your applications
You’ve built the app. Now you need to ship it — fast, clean, and licensed. With 4D 20 R10, you can automatically embed your deployment license into your application builds — no manual setup, no machine-specific paths. Built for OEM and 4D Desktop – Business Edition licenses, this feature relies on just one setting to make your build file portable, version-controlled, and shareable across machines. License checks now run before the build starts, the logs show which licenses were used, and your settings stay intact if anything goes wrong.
One simple tweak, and deployment becomes one less thing to worry about.
New Class to Perform UDP Communications
4D 20 R8 introduced the TCPConnection class, bringing an object-oriented, asynchronous way to handle TCP client connections. Then came 4D 20 R9 with the TCPListener class to build TCP servers. And now, with 4D 20 R10, we’re completing the picture with the new UDPSocket class, allowing you to manage UDP communications between 4D and any remote machine, both as a client and a server. This is especially useful for IoT, real-time monitoring, or broadcasting exchanges. And the icing on the cake? This class supports preemptive and asynchronous UDP communication
Finally, this new feature is marking the final step in replacing the legacy Internet Commands plugin.
Let’s dive into the details.
Managing Calendar Events with Microsoft 365 or Google in 4D: Create, Update, Delete
Working with calendar events is a core part of many business applications. Whether you’re organizing a team meeting or managing an event’s life cycle, being able to create, update, and delete events programmatically is essential.
In this blog post, we’ll walk through how to perform these operations using the Office365.calendar or Google.calendar classes provided in 4D 20 R10, powered by the Microsoft Graph and Google Calendar APIs.
Recursive Dependency Management: Smarter, Deeper, Safer
Following the launch of the Follow 4D version rule, we’re excited to introduce a new level of automation and reliability in 4D 20 R10: fully recursive dependency resolution.
Whether you’re adding, updating, or removing a component, the Dependency Manager now acts recursively, ensuring every action you take is reflected accurately throughout your entire dependency tree.
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 – Get started with the touched event
ORDA is a core long-term feature that opens up a world of new possibilities in 4D.
We keep enhancing ORDA to help you write powerful code. As a result, your apps become easier to develop and maintain — and most importantly, they are optimized for great performance for your end users.
That’s why we’re excited to introduce a new feature in 4D 20 R10: in-memory data events.
In a typical user journey, the required data by the user is loaded into memory, modified according to user actions, and finally saved when the user clicks a Save button.
What if you could automatically trigger business logic when in-memory data changes? It’s now possible to format or prepare data as early as possible, so it’s ready to save when needed.
This is made possible by the new ORDA touched event on data — and the benefits are considerable.
Want to learn more? Keep reading!
Smarter Copy-Paste to Protect Your Data
You work across environments — test, production, staging — and you copy more than text. Sometimes it’s formulas. Sometimes it’s data that shouldn’t move as freely as your cursor does. With 4D 20 R10, paste behavior gets smarter.
Formulas copied within the same app stay intact. But across environments, only values are pasted — never the underlying logic.
ORDA – Get started with the entity constructor
The 4D language supports the concept of classes and thus, the concept of constructor.
On the another hand, the ORDA abstraction layer, through Data Model Classes, provides a great business benefit. It allows you to write business-oriented code and “publish” it just like an API. Datastore, dataclasses, entity selections, and entities are all available as class objects that can contain functions as well as computed attributes, and aliases.
This leads your apps to follow easily the MVC principles with powerful and optimized code.
To work with a complete object-oriented approach, starting from 4D 20 R10, entity classes can now have a constructor(). Need to set up initial values when a new entity is instantiated? It’s now possible! Keep reading to learn more …
Building Forms on the fly with New Data Source Commands
In application development, it is often necessary to build forms dynamically. For example, you might want to generate a search form on the fly, tailored to the user’s needs. In 4D, there are two main approaches for building dynamic forms: either constructing the entire form programmatically or adding objects to an existing form layout. For the second option, until now, it was possible to duplicate objects with OBJECT DUPLICATE, and modify the data source with OBJECT SET DATA SOURCE, all using a classic pointer-based approach.
With 4D 20 R10, new and powerful commands, OBJECT SET DATA SOURCE FORMULA and OBJECT Get data source formula, allow developers to bind a formula as the data source of form objects. Moreover, you can dynamically assign formulas to key listbox properties with the LISTBOX SET PROPERTY command such as Current item, Current item position, and Selected items.
This opens the way to a more modern, flexible and readable approach, thanks in particular to expressions such as Form.xx or the classes.
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
