4D Blog

Home Product Share Local Resources Between Users with Windows Remote Desktop Services

Share Local Resources Between Users with Windows Remote Desktop Services

October 14, 2022

Product

This new feature improves the local resources management of 4D Client merged applications executed with Windows Remote Desktop Services. Lets’ see how.

Windows Remote Desktop Services allows users to open a Windows session or a RemoteApp, inside and outside the company network. By doing this, users can connect to their applications from everywhere through an internet connection. When the application is not optimized for Internet bandwidth usage, Remote Desktop Services are often used to limit it: no data is exchanged between the application and the server but only screen changes.

The STANDARD architecture

When a 4D Client merged application connects to a 4D Server merged application, a check is performed to verify that the application source code (compiled code, forms, external resources, etc., usually called “local resources”) on the Client side is the same as the Server side. If needed, the application source code is then downloaded from the 4D Server by the 4D Client merged application and stored in the user folder:
\Users\{UserAccount}\AppData\Local\{ApplicationName}\{ServerInformation}_ClientFolderSignature\
E.g. C:\Users\John Doe\AppData\Local\myApp\myApp_192_168_2_134_19813_157\

So, when several users open the same 4D Client merged application on a Windows server with Remote Desktop Services, local resources are downloaded by each user in its own user folder. There is then a copy of the same files in each user folder.

A new architecture at your disposal

To improve local data storing and transferring, 4D has developed a new option for projects in the BuildApp process to allow local resources mutualization. It is activated by this new BuildApp XML key:
/Preferences4D/BuildApp/CS/ShareLocalResourcesOnWindowsClient

The legacy behavior prevails if the new key has a “False” value or is missing.
And if this new key has a “True” value, the 4D Client merged application will use the local resources placed in this common path:
\ProgramData\{ApplicationName}\{ServerInformation}_ClientFolderSignature\
e.g. C:\Program Data\myApp\myApp_192_168_2_134_19813_157\

blank

Note that the logs folder is still placed in the user folder to avoid concurrent writings.

Update process

Windows Remote Desktop Services administrators are often easy with the application update process, but we wanted to remind the best practices for performing updates. An Administrator shall:
1. Disconnect all users running the 4D Client merged application to update.
2. Forbid users access to the 4D Client merged application.
3. Update the 4D Server merged application.
4. If an automatic client update is activated: in the Administrator session, launch the 4D Client merged application and validate the automatic update process. At the end of the process, the 4D Client merged application will be launched, connected to the 4D Server merged application, and automatic local resources updates will be performed in the shared folder.
5. If automatic client update is deactivated: in the Administrator session, update manually the 4D Client merged application and launch it to connect to the 4D Server merged application and perform automatic local resources updates in the shared folder.
6. Allow users access to the 4D Client merged application.
This procedure will ensure that users are not launching several instances of the 4D Client merged application, avoiding concurrent writings to the shared local resources or writing rights errors.

Keep in mind

It was not a best practice to add/modify/delete files or folders in the local resources folder because of automatic updates from the Server. This is even more true with this new behavior because the local resources folder is shared between users and often read-only for standard users! Better use the user’s Documents folder or, eventually, the 4D User preferences folder.

Discuss

Tags Deployment, v19 R7, v20

Latest related posts

  • June 16, 2025

    Generate, share and use web sessions One-Time Passcodes (OTP)

  • May 20, 2025

    Automatic Refresh of OEM Build Licenses

  • May 16, 2025

    New class to handle incoming TCP connections

Avatar
Damien Fuzeau
- Product Owner - Damien Fuzeau joined the 4D Product team in February 2019. As a Product Owner, he is responsible for writing user stories and translating them into functional specifications. His role also involves ensuring that the delivered feature implementations meet customer needs. Damien holds a degree in Software Engineering from the University of Nantes. He spent over 23 years at his previous company, first as a developer (discovering 4D in 1997), and later as Engineering Manager and Software Architect. The company was an OEM partner of 4D and deployed enterprise software based on 4D for thousands of users across hundreds of servers. Damien is therefore well-versed in 4D development and deployment in multilingual environments.
  • Deutsch
  • Français
  • English
  • Português
  • Čeština
  • Español
  • Italiano
  • 日本語

Categories

Browse categories

  • 4D View Pro
  • 4D Write Pro
  • 4D for Mobile
  • Email
  • Development Mode
  • 4D Language
  • ORDA
  • User Interface / GUI
  • Qodly Studio
  • Server
  • Maintenance
  • Deployment
  • 4D Tutorials
  • Generic
  • 4D Summit sessions and other online videos

Tags

4D-Analyzer 4D for Android 4D for iOS 4D NetKit 4D Qodly Pro 4D View Pro 4D Write Pro 20 R8 20 R9 Administration Authentication Build application CI/CD Class Client/Server Code editor Collections Compatibility settings Formula Listbox Logs Mail Microsoft 365 Network Objects ORDA PDF Pictures Preemptive Programming Qodly Studio REST Scalability Security Session Source control Speed Spreadsheet Tutorial UI User Experience v20 vscode Web Word processor

Tags

4D-Analyzer 4D for Android 4D for iOS 4D NetKit 4D Qodly Pro 4D View Pro 4D Write Pro 20 R8 20 R9 Administration Authentication Build application CI/CD Class Client/Server Code editor Collections Compatibility settings Formula Listbox Logs Mail Microsoft 365 Network Objects ORDA PDF Pictures Preemptive Programming Qodly Studio REST Scalability Security Session Source control Speed Spreadsheet Tutorial UI User Experience v20 vscode Web Word processor
Subscribe to 4D Newsletter

© 2025 4D SAS - All rights reserved
Terms & Conditions | Legal Notices | Data Policy | Cookie Policy | Contact us | Write for us


Subscribe to 4D Newsletter

* Your privacy is very important to us. Please click here to view our Policy

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