Guest Post

Onboarding developers new to 4D? Here’s how we do it at Sweetwater

Automatically translated from English

Blog post by guest author Joel Levy, a 4D developer at Sweetwater: 

4D is the heartbeat of Sweetwater Sound. Our application harmoniously interconnects the diverse needs of over 700 concurrent users. We’re always seeking out more developers to fulfill the needs of a constantly growing company. Here’s a look into the strategies that Sweetwater uses to onboard developers new to the 4D platform.

Product

On resize… On resize… On resize…

Automatically translated from English

Wondering how to create a nice and dynamic user interface? Typically when a form is resized, the form objects whose horizontal sizing or vertical sizing properties are set to move or grow, are automatically resized. In some cases  (e.g., finer user interface management), developers choose to manage form object size and position by programming. To do so, they check the “on resized” event which is triggered within the form method. But what happens when the form contains one or more subforms? On many levels? This blog post gives you the answers!

Product

Multiple 4D data sources, interested?

Automatically translated from English

We’ve got an exciting new feature to announce in 4D v18 and the title may have already given you a hint!

This feature opens new possibilities for client/server work. Rather than being limited to the current database and requiring a permanent network connection, an application in 4D v18 can get data from another, remote 4D database that’s exposed on a 4D server!

A lot of options become available thanks to this feature. For example, you could organize your applications to work offline and only synchronize local data when remote data is reachable. Or you could consider publishing your data on multiple servers and switching from one to the other as necessary. Another option could be splitting your data model across different databases (e.g. local data, international data). What about having your data distributed in different places yet still accessible through a single 4D client code (project methods and form objects)? All of these scenarios are now possible and this blog post tells you how!

Guest Post

An enhanced UX with AJUI_Progressbar

Automatically translated from English

Have you ever executed an action, nothing seemed to happen, and you didn’t know if you should click again or continue waiting? There’s no feedback provided, even if the application is performing an action in the background? Perhaps the action requires some time to return a result? As you may know, 4D already provides a built-in progress bar component that makes execution time more tolerable, but if you want something with a more web like design then keep reading, because that’s what the AJUI_Progressbar gives you!

Tips

Build a web-based monitoring dialog, step by step

Automatically translated from English

Want to recreate the 4D Server Administration Window with a web interface? Want to conveniently check what’s happening in the 4D Server without needing to go to the server room, to use a remote desktop, or to consume a 4D Client license? It’s now possible to view all of 4D Server’s main parameters(e.g., memory usage, drive space, users, processes, and even the real-time monitor) via the web.

In this blog post, we’ll walk you through a set of commands that 4D delivered over various R-releases to build your own web-based server administration dialog. Additionally, the regional technical manager of 4D Hispano (Angelo Caroprese) has provided a complete component to be used right in your applications.

 

Guest Post

An ORDA Cheat Sheet

Automatically translated from English

Blog post by guest author Cannon Smith, a 4D developer from southern Alberta, Canada: 

The introduction of collections and entities has dramatically changed the landscape in 4D, giving developers new ways to map business rules to code. Just recently I refactored several thousand lines of code that were central to the business rules of our application, resulting in a significant speed improvement (5xs faster) which our users are very happy about. This refactoring was largely about moving from old code constructs to objects, collections, and ORDA.