Hash and verify passwords for web user login
Security is becoming an increasingly important topic as business applications become more frequently accessible through the web and are, as a result, more vulnerable to threats. As 4D is closely paying attention to security matters, in 4D v16 R5 we are providing you with a couple of security improvements, and one of them relates to the web users’ password protection through password hashing.
By the way, if you want to know more about how 4D is helping you to protect your data and with the security in general, I recommend you to take a look at this blog post.
Programmatically manage headers and footers in 4D Write Pro
We’ve received several customer requests to provide the ability to use the 4D Write Pro template with headers and footers to create other documents based on this template. Well, we heard you and this is available in 4D v16 R5.
A new set of commands have been added to 4D Write Pro to fulfill this need. Some of these commands can be used to get references of headers, body and footers inside documents. Others are handy to get a reference to the frame (header, footer, etc.) where the cursor is currently located, or to set the cursor into a specific frame.
Automatic row height in list boxes, a new 4D View Pro feature!
Starting with 4D v16, you can set a different row height for each row in your list box. So with a few lines of code, you have a list box with rows that conform to the content. With this 4D v16 feature, we gave full control to the developer to precisely define the height for every single row of the list box.
With 4D v16 R5, we’ve decided to go further, and provide you with a fully automatic mode. It’s now possible to display lists in a gorgeous interface without any programming. You only need to set a few properties in the list box, and 4D does the rest for you. It’s magical, fluid, and again … not a single line of code!
Don’t be afraid of undefined values
With 4D v16 R4, we introduced Object Notation which is a great enhancement to the 4D language: your code is fast, flexible, efficient and elegant! This feature created a lot of interest on the 4D forums and we received a lot of feedback from our customers highlighting situations when there were undefined values making the code challenging to write.
With 4D v16 R5, we have taken your feedback into account and have simplified the use of undefined properties and values with Object Notation.
More security for your 4D Server
Over the years, security has become a core topic for business applications. Transport Layer Security (TLS) and its predecessor, Secure Sockets Layer (SSL), both frequently referred to as “SSL”, are cryptographic protocols that provide communications security over a computer network. The TLS version that your application is using for web or client/server connections, for instance, contributes to its security level.
4D supports all TLS versions: 1.0, 1.1 and 1.2. The protocol version used is negotiated between the server and the client when establishing the connection. To increase the security level, beginning with 4D v16 R5, the default minimum supported version is TLS 1.2, older versions are rejected, as they could be unsecure.
Passing data back and forth between forms
Wouldn’t it be great if you could just open a form and pass it some parameters to initialize your form objects? What about being able to also get the data back to process, after it’s been modified by the user? 4D v16 R5 makes your coding so much easier by greatly simplifying communications with forms.
Until now, when you wanted to display data (not coming from the database itself, but computed or external) to multiple users, you had two options: either write complex code to handle data display in multiple processes, or create as many forms as necessary with a bunch of global variables. But you know that global variables are not an optimized way of coding, from a memory point of view.
So get rid of your complex code and global variables! With 4D v16 R5 you can just bind an object to your form and use it internally with the new Form command. Painless…and powerful!
Enhance IPv6-related user interface
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.
Finely control your tips in 4D
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!
Retrieve the license information by programming
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:
- version,
- platform,
- number of available and consumed connections for 4D Write Pro,
- number of available and consumed connections for 4D Client,
- expiration date,
- …
Create your own process and user monitoring
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.
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