4D Summit 2020 – Advanced Training by JPR


With the introduction of Objects, 4D started a revolution by introducing a real object-oriented development environment. This change was inevitable, due to the fast pace of computer evolution, the ready availability of memory and storage, and the constant necessity of increasing developer productivity. This revolution also introduced a terrific change in application analysis and programming. 
Session scheduling displayed in US timezone (times shown in USA times).

2 hours x 4 days
Online Training
499 USD

NEW Training format!
This Advanced Training explains in detail how 4D works, “under the hood”. The omnipresence of references in handling every kind of object should become a natural way of approaching modern programming in order to optimize development and maintenance time.

Who should attend this session?

  • 4D developers who are wanting to get the most out of ORDA in their applications.


At the end of this session, you'll be able to :

  • Understand the way ORDA works
  • Select the most appropriate tools and techniques to reach your goal
  • Optimize your code to save time and memory use
  • Spend less time debugging and maintaining your code
  • Make educated guesses on data distribution between DataClasses.

What's covered in this session?

Objects in 4D

  • Similarities and differences with JavaScript objects
  • References vs Pointers
  • Understanding references
  • Internal structure of objects
  • Properties hash table
  • How ref counting works
  • Dot notation vs Bracket notation: how to choose
  • Correct use of objects
  • Use objects with Form to minimize Subforms coding
  • Comparisons between objects and other types of structured information storage
  • Objects, forms, and subforms: Sharing information & communication
  • User-defined classes
  • Optimizing programing with classes 


  • Fully understanding the code
  • Traps to avoid
  • This & objects


  • Optimizing their use
  • Using references in a clever way
  • Comparisons between collections and arrays: Speed and Memory use
  • Optimization of queries in collections
  • Callback functions best practices

DatasStores, DataClasses & Entities

  • Connections between entities and records
  • Physical location of the different types of data
  • Understanding stamps
  • Understanding LockCounts
  • Comparison between collections et entity selections: what to use and when
  • Collections and entities: What does 4D load in memory and when
  • Explanations about lazy loading
  • Collections of entities: Memory use, managing locks, etc.

Relational Attributes

  • Explanations about the data model
  • How ORDA handles relations
  • Converting from classic 4D to ORDA, step by step
  • Getting the best from optimizations made by 4D.
  • Integration within contexts
  • Types of programming to avoid

Server Optimization

  • Programing for ORDA
  • How do contexts work
  • Analysis of data transfers (analyzing tool supplied)
  • Transfer Optimization
  • Finding the best balance between block sizes & block counts depending on the network
  • Optimization of server cache management
  • Contents of server & client Caches


  • Different types of classes in 4D
  • OOP inheritance detailed mechanism
  • Smooth conversion from classic 4D methods to ORDA classes
  • Detailed analysis of how classes work
  • Comparison between class functions, formulas, and callback functions

Extending DataClasses

  • Using DataClasses functions to optimize client-server and external DataStores
  • Preparing light client aware programming


  • Understanding locks
  • Optimistic vs Pessimistic locking
  • Choosing which mode to use
  • Complete review of optimistic programming
  • Why locked becomes useless
  • Multi-user & multi-process and the concept of sessions

Multi-Source Programming

  • How to write generic code to prepare for the use of external data sources as application components
  • Importance of sessions.
  • Data transfer optimization on slow networks
  • Slow networks techniques
  • Traps to avoid

Session materials

  • Example application source codes for each part of the training
  • PDF Files fully explaining the important points of the example applications
  • The Keynote or Powerpoint presentations used during the training
  • Video recording of the four sessions

Course of the training

The training takes place over four days with a 2-hour session per day (Tuesday - Friday) including a 30-minute Q&A.

Participants will receive documents and support materials at the end of the training.

Pricing in local currencies

499 USD - 449 GBP - 499 EURO - 4 990 SEK - 815 AUD - 61 400 JPY - 775 CAD (tax excluded)
599 CHF (tax included)

After registering, you will be invoiced for the training in accordance with the appropriate sales conditions.


The training is available OnDemand on the 4D Store, so you can watch it on your schedule, instantly!

Session time

US Pacific Time  (GMT-8)    • 9:00 am - 11:00 am           (San Jose, San Francisco)
US Central Time (GMT-6)    • 11:00 am - 01:00 pm          (Chicago)
US Eastern Time (GMT-5)   • 12:00 pm - 02:00 pm          (Boston, New-York)

Argentina Time (GMT-3)  • 02:00 pm - 04:00 pm            (Buenos Aires)

If you want to attend a session in the European/Asian time-zone, click here.