Impostazioni di compatibilità – tutto il resto (Parte 4)

Tradotto automaticamente da Deepl

Abbiamo iniziato una serie di post sul blog dedicati alle impostazioni di compatibilità e alle opzioni segrete che possono aiutare drasticamente a migliorare le prestazioni e il comportamento delle vostre applicazioni(QUERY BY FORMULA, Transactions e period and comma). Questo ultimo post della serie fornirà una panoramica delle impostazioni rimanenti.

Ecco un esempio di una struttura creata molti anni fa. Le opzioni di compatibilità sono disattivate, il che significa che viene eseguita interamente in modalità v17.

Tenete presente che le impostazioni di compatibilità consentono di emulare un comportamento più vecchio, ma non dovrebbero essere permanenti. Garantiscono un tempo di migrazione più lungo, ma non aspettate troppo… con il tempo le opzioni di migrazione scompaiono. Considerando che le strutture create di recente non consentono di utilizzare queste vecchie impostazioni, esse vengono testate sempre meno, aumentando il rischio di comportamenti inaspettati.

Modalità Unicode

OS X, Windows NT e 4D v11 (e versioni successive) sono progettati e funzionano solo in Unicode. Il motore di database di 4D funziona solo con Unicode. Il linguaggio supporta una modalità di compatibilità, in cui ogni riga eseguita converte il testo da/verso Unicode per emulare la gestione della codifica MacRoman. E sì, questo riduce le prestazioni. Negli ultimi 10 anni sono state pubblicate molte note tecniche, sessioni del 4D Summit e corsi di formazione su come migrare a Unicode. Se non l’avete ancora fatto, è ora di iniziare.

Con Unicode abilitato, è necessario abilitare anche l’impostazione di compatibilità “Salva i metodi come Unicode”. Una volta abilitata, ogni nuovo metodo analizzato viene salvato in Unicode, consentendo l’uso di set di caratteri estesi come letterali nel codice. Non c’è alcun problema di compatibilità con il salvataggio dei metodi in Unicode, tranne nel caso in cui si utilizzino vecchi plugin per leggere/scrivere direttamente i metodi (ormai deprecati da tempo).

Infine (ma non certo per importanza), la notazione degli oggetti è possibile solo con Unicode.

Utilizzare il tipo di data invece del formato ISO negli oggetti

Questa opzione è nuova nella v17; per saperne di più, consultate il post del blog Date inside objects.

Usa la nuova architettura per le distribuzioni di applicazioni

Questa opzione facilita la creazione di applicazioni di sola lettura e, poiché il percorso dell’ultimo server o file di dati utilizzato non viene più memorizzato all’interno dell’applicazione, facilita anche la distribuzione degli aggiornamenti. Per saperne di più, consultate questo post del blog.

Impedisci la caduta di dati non provenienti da 4D

Se questa impostazione è attivata, le vostre applicazioni funzionano ancora in modalità 4D v2004, dove il trascinamento da altre applicazioni in 4D (ad eccezione di testo e immagini) non era possibile.

Se non è già stato fatto, è arrivato il momento di supportare il drag and drop. Per ulteriori informazioni, leggete i capitoli Trascinamento e gestione della pasta nella documentazione.

Non utilizzare la nuova modalità di riferimento al contesto

Questa impostazione è così vecchia che sinceramente non ricordo nemmeno se emula 4D 6.0 o 6.5.

Se non si usa il server Web di 4D, basta disabilitarlo. Se lo usate, è abilitato e non avete toccato il vostro codice da 15 anni, è ora di aggiornarlo…

Rimuovere “/” dagli URL sconosciuti

Imposta il server Web in modalità 4D v2003. Se questa impostazione è abilitata, è ora di riscrivere il codice.

Assegnazione automatica delle variabili

Se abilitata: URGENTE – LEGGERE SUBITO!

Si tratta di un potenziale problema di sicurezza, forse enorme (a seconda del codice).

20 anni fa questa era una funzione di comodo che è stata rapidamente sostituita da un approccio più sicuro (e che richiedeva più codice).

Se abilitata, le variabili HTML utilizzate in un modulo HTML vengono automaticamente mappate in variabili 4D, purché siano definite in Compiler_Web. Sebbene solo un piccolo sottoinsieme di variabili sia tipicamente definito in questa cartella, rimane la potenziale minaccia che tali variabili possano essere sovrascritte da un hacker.

Un modo migliore per assegnare le variabili (introdotto con 4D 6.5) è quello di usare WEB GET VARIABLES.

4D raccomanda vivamente di riscrivere il codice (se necessario) e di disabilitare questa impostazione.

… in conclusione

Questo post finale completa la serie sulle impostazioni di compatibilità; speriamo che vi sia piaciuto. Ora godetevi le vostre nuove conoscenze sulla compatibilità e divertitevi a configurare le vostre applicazioni per farle funzionare in modo sicuro e ottimale!

Thomas Maul
• VP of Strategy, 4D Product Line • When 4D's German subsidiary was created in 1988, Thomas joined the company as a Technical Director, helping to build the 4D developer community in both Germany and Austria. After many years supporting customers with technical problems and being increasingly involved in sales and management issues, he was promoted to Managing Director for 4D Germany in 1999. As a member of the executive board since 2005, he became part of worldwide strategy of the company, leading to his current position as Vice President of Strategy, 4D Product Line, responsible for defining and executing the overall strategy for the 4D product line in relation to the Program, R&D, Sales and Marketing teams.