New class to perform TCP connections
With the release of 4D 20 R8, a game-changing feature has arrived:: the TCPConnection class. This modern class leverages object-oriented syntax and supports asynchronous network connection handling, providing a fresh and powerful alternative to the 4D Internet Commands. Using TCPConnection, you can connect to virtually anything—whether it’s servers, printers, cash registers, or industrial devices—making it a versatile tool for handling unique networking requirements.
In this release, the TCP client functionality is available, allowing you to connect to external servers and seamlessly exchange data.
Debugging 4D Code Directly in Visual Studio Code
For Visual Studio Code users working with 4D, a new extension called 4D-Debugger that works with 4D 20 R8 is now available.
The new 4D-Debugger extension brings powerful new debugging capabilities to Visual Studio Code, expanding on the features of the 4D-Analyzer introduced earlier. With this extension, you can set breakpoints, step through 4D code, and inspect variables from the Visual Studio Code interface. This tool integrates seamlessly, simplifying the debugging process and making VS Code a more versatile workspace for 4D projects.
Notarization on macOS: Changes to Component Structure
The macOS notarization process continues to evolve. Unfortunately, the internal structure of 4D components designed with 4D v11—intended to enable cross-platform compatibility—no longer meets the requirements introduced by Apple for Silicon-based Macs, making notarizing components increasingly challenging.
To simplify the deployment process, we have updated the component structure starting with 4D 20 R8. This new folder structure makes notarization and deployment as straightforward as deploying an application. However, there is an important caveat: the updated structure is not compatible with older versions of 4D (e.g., 4D 20 R7 and earlier), while older components will remain compatible with newer versions of 4D.
The Build4D component has also been updated to reflect the new structure. When building components, be cautious and ensure you are using the correct version of Build4D.
Important Reminder: Components built with 4D 20 R7 or earlier may encounter errors during notarization. The recommended solution is to update to 4D 20 R8.
4D Netkit: Get user information from Google
Being able to access Google user information efficiently is critical for creating responsive user interfaces and automating tasks like sending emails to multiple users within a domain. To meet these requirements, we have introduced a set of features to get specific user information and to retrieve all domain profiles and contacts.
Enhancing the Debugging Experience
Debugging plays a vital role in any development process, and improving the debugger’s functionality and usability can significantly enhance a developer’s productivity. From 4D 20 R8, 4D has introduced several improvements to its debugger and remote debugger. These updates focus on saving user-defined settings, making managing and reusing expressions easier, and redesigning the overall interface.
Deploy Stand-Alone applications without embedded license
Starting with 4D 20 R7 and upcoming 4D 20.6, you can now build Stand-Alone applications without needing an embedded license. Let’s dive into the details of this new behavior.
Improved FORM EDIT Command: Access Form Objects Easily
The 4D language allows you to develop outstanding business applications. Many of you have taken the initiative to create tools that streamline specific tasks: code, validating links to external elements like images, converting legacy code to ORDA, managing XLIFF resource files, or facilitating refactoring. These custom solutions enhance productivity and foster innovation.
In 4D 20 R8, the FORM EDIT command has evolved. You can now open a form and select a form object.
For instance, you can list the objects in a form from an analysis and introspection tool. Double-clicking on an element in the list will open the form, and you can select the form object to modify one of its properties using the new syntax of the command.
4D Write Pro commands optimized again!
As each new version is released, we take into account the feedback we receive from our customers on the general use of 4D Write Pro and its commands. While remaining 100% compatible, some commands and language functions are evolving!
Some commands, whose syntax have been improved in 4D 20 R8, now allow the use of modern parameters such as objects or collections. Others are now functions, making them easier to use. Finally, a number of new functions have been created. All this will make your code simpler, more generic and easier to maintain!
Enhanced Session Management for Development and Testing
With the latest 4D updates, we’ve extended the Session command to the Client/Server connection, enabling access to session storage at the Client level. Pairing this functionality with the new ‘Restrict’ event in ORDA classes makes filtering results based on session data—such as privileges, roles, or even geographic areas—easier than ever.
Developing an application in 4D meant working in a local environment, such as a single user. In standalone mode, the Session command always returned Null. This meant that you had to write complex code, checks whether the Session object was Null to read from “Storage” or “Session.storage”. This workaround, while functional, was not elegant.
With 4D 20 R8, this is no longer an issue. The Session command now returns a valid object, even in standalone mode, simplifying application development and testing.
4D View Pro: Excel import/export update
As part of 4D View Pro‘s continuous development, we’ve expanded the Excel import and export functionalities in 4D 20 R8. In this update, new language options have been added to align with the interface capabilities and give you more control over the exported workbook.
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