Besides the fact that it has a larger address space, IPv6 also has many other advantages over IPv4: built-in features like support of multicast transmission, increased security with IPSec (providing confidentiality, authentication and data integrity) and the ability to display, in the 4D client connection dialog box, all the 4D Server available even if they are published on a non standard port (different than 19813).
4D introduced IPv6 support with 4D v14, however some dialogs were not perfectly arranged for the IPv6 use cases. 4D v16 R4 provides some UI improvements for a better user experience for people using IPv6 network configurations.
4D v16 R4 is providing you with more flexibility regarding tips management. Beyond the possibility to enable or disable all tips at once using database parameters, you can now finely control how your tips will be displayed: the delay before showing it and for how long it is shown. And you no longer need to use 4D Pack, everything is included in 4D now!
When you perform analysis, reporting or debugging of your server application you may want to know the number of available clients, the number of consumed connections, the expiration date and many other information.
Now with 4D v16 R4, you can retrieve detailed information about the active license of your running 4D product (4D Server for instance). For example:
- number of available and consumed connections for 4D Write Pro,
- number of available and consumed connections for 4D Client,
- expiration date,
You need to get the list of processes running on your 4D server, 4D remote or 4D standalone to create your own Administration Window? You want to know which user initiated each process to create a monitoring window of your application or log this information in a database to analyze later your server load? It is now easy to retrieve this information by programming with a new command: Get process activity.
Here are 2 very common developer needs: 1. Depending on the user criteria, you want to rearrange the objects in the form. – 2. Depending on the selected item in a list, you want to show, hide or move the objects in the form.
In all theses cases, you need to change the tab order of the form objects. Now in 4D v16 R4, you can modify the tab order at runtime by programming. To do so, 2 new commands have been created: FORM SET ENTRY ORDER and FORM GET ENTRY ORDER.
From 4D v16 R4, we have added the support of pictures in object attributes. For example, if you use an object to exchange settings or data between methods, forms or processes, now, you can also pass an icon or a picture in this object. You don’t need anymore to temporarily save the picture on disk.
This new type can be used like any other object attribute type: you can use, get and set pictures in objects. You can also use the controls of the picture theme.
4D introduces a new Null type to ease the management of objects and collections. Thanks to the null value, you can represent a missing value and easily verify if your object or collection is correctly set.
4D v16 R4 introduces a new type of variable called Collection. What are these variables intended for? Like Objects or BLOBs, collections can be used to hold almost any kind of variable types like texts, numerics, booleans, objects and even other collections. The good thing is that, all these variables types previously mentioned can be mixed inside the same collection, where arrays must always contain the same type of elements!
You need a custom 4D Write Pro toolbar for your application but you’re concerned it might take too much time to implement it? Good news, with 4D v16 R4 standard actions can now be assigned to checkboxes and pop-up menus. Save time with this ready-to-use feature and easily create a user-friendly interface perfectly matching your needs!
You can now create a pop-up menu to control the font size or the border style for your 4D Write Pro area just in one click, no code needed! Just assign the action using the property list and it’s done. And the object status and value will be automatically updated by 4D depending on the context and text selection! Simple and powerful…
We use more and more the JSON format. For example, to save settings in a file, to store software configuration, or to exchange client-data on the web with other servers.
How can you validate that the received data is in the expected format? How can you validate that all the necessary information is actually present? How can you do this validation without writing a tiresome method for each type of JSON format?
Simply by writing a JSON schema and use the JSON Validate new command!