4D 20 R5 Beta Starts Today

Beta testing for 4D 20 R5 is starting today, and we’re thrilled to unveil a truly majestic feature release with a plethora of functionalities designed to empower your development experience!

Let’s explore all the exciting features this release has in store for you:

 

  • In 4D Write Pro, you can now wrap text around pictures and text boxes, tables are no longer restricted to 1000 lines, and effortlessly define both width and height simultaneously with a new attribute.
  • For programmers, enjoy new features like try-catch blocks for precise error handling, a 4D Singleton, to answer a highly voted feature request, and shared classes for easier shared object management, among other enhancements.
  • Visual structure editor information is now stored separately from table definition information to reduce conflicts in the catalog file.
  • ORDA comes with improved data restriction on entity selections for precise data retrieval and enhanced security.
  • The Visual Studio Code extension offers Workspace Syntax Checking, automatic 4D tool downloads, and GitHub Codespaces integration.
  • And that’s not all — There are over 20 new features to explore! 

Download 4D 20 R5 now (Exclusive to 4D Partners)

 Programming 

Try-Catch Blocks: Handling Errors with Precision

4D 20 R5 is shipped with the next evolution in 4D’s error handling system: the Try-Catch code blocks!

Additionally, to Try, which allows us to manage errors with precision for a single command, we added Try-Catch blocks to catch an error in a series of commands. By encapsulating code within the Try, Catch, and End try keywords, errors are localized and handled appropriately.

Shared Classes: Simplifying Shared Object Management

4D 20 R5 introduces shared classes, which simplifies the process of creating and using shared objects by automatically handling the necessary setup. Developers can effortlessly create or modify shared objects by simply adding the “shared” keyword to a class constructor or function.

4D Singleton: Universal Access Across the Application

4D 20 R5 introduces a handy feature: singletons, objects accessible throughout your entire application. They offer a multitude of functionalities, serving as hosts for interprocess values and utility classes and even as foundational elements for design patterns such as the factory pattern.

New Property Declaration and Initialization

In 4D 20 R5, developers can now declare and initialize properties in a single line, enhancing code readability and efficiency. This feature eliminates the need for separate initialization blocks, offering options for inferred or declared types and initialization values.

New 4D remote session object with a client-server connection

4D 20 R5 introduces an extended functionality to the Session command, which gives you access to a wealth of information about the session and an object shared by all processes in the session. This update now includes coverage for Client/Server connections and stored procedures, in addition to existing Web and Mobile sessions in 4D applications.

Simplified package management

Say hello to the Package Manager that simplifies package management by removing the need for a Components folder. Dependencies are managed through dependencies.json and environment4d.json files, providing clear insight into application dependencies. Access to both 4D and project Components folder components via the Design menu enhances usability, with future capabilities for direct dependency management.

 

 4D Write Pro

Text Wrapping for Enhanced Layout Flexibility

4D 20 R5 introduces text wrapping capabilities for pictures and text boxes in 4D Write Pro, enhancing document layout design. With flexible anchor modes, users can seamlessly wrap text around images and text boxes, creating visually captivating documents. The interface has been enhanced to offer more options and custom display controls for images and text boxes. All of this, of course, can also be achieved programmatically.

SECTION MANAGEMENT IN THE USER INTERFACE

In 4D 20 R5, managing section breaks is now integrated into the user interface, enhancing document organization and customization.

Efficient Document Sizing with WK Page Size

4D 20 R5 introduces document formatting with the new wk page size attribute. Set both width and height in one click, and choose from printer presets, your custom formats, or even ISO standards. This simplifies document creation and saves you time!

Unrestricted Table Population

In 4D 20 R5, the limitations on the size of tables in 4D Write Pro have been eliminated. Previously limited to 1000 lines, tables can now be dynamically expanded according to available memory, offering greater flexibility in document design than ever before.

 

 Project Mode

Enhanced Project Setup for Improved Version Control

In response to your feedback, all structure details, like colors and positions of tables, fields, and relations, are stored in a separate file called catalog_editor.json instead of catalog.4DCatalog

This makes managing changes and reviewing work easier, especially when multiple developers are involved.

This improvement simplifies change management and work review, especially in multi-developer environments, as adjustments to tables or fields no longer impact the catalog file.

 

 ORDA 

RESTRICT DATA ON ENTITY SELECTIONS

4D 20 R5 enhances data restriction on entity selections by refining the implementation of filters, ensuring more precise data retrieval tailored to specific criteria and user interactions, and securing data access through refined query and selection restrictions.

The restriction is done on the database level, fully automatic; there is no way to work around it. Imagine that as an automatically added search condition, such as a salesperson seeing only her own customers, a doctor seeing only data for his own patients, and so on. Even a request to all requests automatically reduces the selection based on the defined filter. The filter can contain context-specific values, such as the current user.

 Visual Studio Code 

WORKSPACE SYNTAX CHECKING

With 4D 20 R5 and the 4D-Analyzer extension, Visual Studio Code now offers Workspace Syntax Checking. It helps reduce errors and optimize coding by checking the entire 4D project for mistakes. Errors and warnings are shown in a sidebar, making spotting and fixing issues easy. 

AUTOMATIC TOOL4D DOWNLOAD

With version 0.2.0 of the 4D-Analyzer extension, rather than manually installing a 4D application and entering its path in the extension’s parameters, the extension automatically downloads a version of tool4d, stores it in a location on the system, and launches it in the background. This simplification aims to speed up the process of getting started and enhance development with VS Code for 4D.

GitHub CODEPACES Integration

GitHub’s Codespaces simplify remote development by enabling the editing of repositories from anywhere via Visual Studio Code or the Codespaces application.

With the integration of 4D projects, developers can enhance their coding experience with tools like 4D-Analyzer, which offers features such as code highlighting and auto-completion. 

4D Netkit

Draft Emails as templates

With 4D 20 R5, you can draft emails in Gmail and store them under specific labels in your inbox without hitting send. This allows you to easily access and modify your templates whenever you need to send a similar email.

PKCE FOR OAUTH 2.0

4D 20 R5 now includes PKCE (Proof Key for Code Exchange) in OAuth 2.0 authentication. By turning on the PKCEEnabled setting in the cs.NetKit.In the OAuth2Provider class, you increase security against interception and replay attacks

OAUTH2.0 AUTHENTICATION USING A CERTIFICATE

In 4D 20 R5, Netkit now supports OAuth 2.0 certificate-based authentication for enhanced security.

 

 

 4D View Pro

ENHANCEMENT OF CUSTOM FUNCTIONS

4D 20 R5 enables custom calculations on column or row contents within a spreadsheet without prior knowledge of the number of cells involved. This is made possible by allowing the passing of multiple cell ranges or objects to custom formulas, resulting in the retrieval of a collection or object containing all cell content within a 4D method.

 User Interface

CUSTOMIZE APP APPEARANCE WITH NEW WINDOWS TYPES

Two new window types allow you to design the window title bar yourself and add your own elements, such as buttons or a search box. This means complete freedom to tailor your application’s appearance to your specifications.

But that’s not all! We’ve also introduced several new commands designed to streamline your development process:

  • Reduce a window in the title bar on Windows or the dock on macOS, REDUCE RESTORE WINDOW
  • Know if the window is reduced in the title bar on Windows or the dock on macOS, Is Window Reduced
  • Know if the window is maximized, Is Window Maximized.

Improved Network Communication (QUIC)

IPV6 AND BROADCAST SUPPORT

QUIC, the new network system between 4D Remote and 4D Server, is now fully implemented and will be production-ready with the release of 4D 20 R5. 4D 20 R5 adds more functionalities that you can test in your own network.

The broadcast feature allows users to easily identify and connect to 4D Servers running applications on their network; it has been refined to provide more accurate server listings, ensuring users only connect to relevant servers.

Besides, IPv6 is also supported, which means you can use your 4D Server on an IPv6 network.

Need more technical details? The 4D 20 R5 Beta documentation is available on the 4D Doc Center.

Your feedback is greatly appreciated and will help us improve our product quality and better serve your needs. We’d love to hear your thoughts about any of the features above. Contribute to our beta forum (accessible for all 4D Partners). And don’t hesitate to tell us about your needs; we take votes very seriously

Not yet a partner? Don’t miss out on the opportunity to become a 4D Partner and engage in meaningful discussions. Join us today and be part of the conversation!

Avatar
• Product Marketing Manager • Intissar joined 4D in 2017 as a Product Marketing Manager. She works closely with the product, marketing, engineering, and technical support teams to highlight the ‘why’, the ‘how’, and the ‘what’ of new and updated features to different audiences. This close proximity allows her to craft messaging frameworks and write in-depth content and code samples for the 4D blog and website. After graduating with an engineer's degree in Computer Science from VINCI university, Intissar worked in several startups as a software engineer. Her hands-on experience includes software specification, design, and development, user training and support, and team management.