Può capitare che gli utenti debbano connettersi a molte istanze della stessa applicazione server unificata. Quando ciò accade, l’applicazione client unita scarica tante risorse locali quante sono le connessioni al server. Ma se la cartella Risorse del server è enorme, questo può comportare un notevole dispendio di tempo, volume e rete! Fortunatamente, 4D v18 R5 ha una soluzione per questo scenario!
Collegando l’applicazione remota a diversi server, come descritto nell’immagine precedente, si ottiene una cartella Risorse locale nel sistema:
Invece di utilizzare la cartella Risorse del server, che richiede molto tempo, si ha la possibilità di condividere la stessa cartella Risorse locale tra tutti questi server strettamente identici.
Applicazioni legacy REMOTE
Per condividere la cartella Risorse locale è disponibile una nuova chiave buildApp:
<BuildApp>
<CS>
<NomeClientServerSystemFolder>myApp</NomeClientServerSystemFolder>
Quando ci si connette a un server, le informazioni sul server vengono sostituite dalla stringa impostata durante la creazione dell’applicazione. Abbiamo mantenuto la chiave finale per consentire di utilizzare tutte le applicazioni remote che si desidera sullo stesso computer. La cartella locale Resources ha ora questo aspetto:
È sempre possibile connettersi al server utilizzando la finestra di dialogo di login integrata. In questo caso, la cartella cache utilizzata non è più quella composta dalle informazioni personalizzate (nome dell’applicazione, IP e porta), ma quella impostata al momento della creazione dell’applicazione.
REMOTO in esecuzione DIALOGO DI CONNESSIONE PERSONALIZZATO
In questo post abbiamo appreso come utilizzare un database di connessioni al posto della tradizionale finestra di dialogo di connessione 4D nelle applicazioni remote unite. Il comportamento si basa sull’utilizzo di un file 4DLink personalizzato con il comando OPEN DATABASE.
È possibile definire il nome della radice delle risorse locali utilizzando la nuova chiave cache_folder_name nel file 4DLink.
Utilizzando lo stesso esempio del post precedente, ecco lo snippet di codice di una finestra di dialogo per la selezione del server dove Form.selectedServer contiene le informazioni sul server 4D:
If (Form.selectedServer#Null)
C_TEXT ($xml)
C_OBJECT ($link)
$xml :="<?xml version="1.0\" encoding="UTF-8\"?><database_shortcut is_remote="true\" server_database_name=\"FA_RemoteConnexionServ\" server_path=\""+Form.selectedServer.IP+": "+Form.selectedServer.portID+"\" cache_folder_name=\""+Form.selectedServer.customCacheFolder+"\"/>"
$link :=Folder(fk user preferences folder).file("server.4dlink")
$link .setText($xml)
OPEN DATABASE ($link.platformPath)
End if
Tenere presente
Se modificate il vostro pacchetto di applicazioni server, l’aggiornamento automatico delle risorse locali verrà eseguito per ogni diverso pacchetto. Ma finché tutti i pacchetti dell’applicazione server sono rigorosamente identici, le risorse locali vengono scaricate solo quando sono necessarie: alla prima connessione al server!