I. Résumé▲
Une des nouvelles fonctionnalités de 4D 2004 est la possibilité de construire des applications Client et Server. Assez semblable à l'application double-cliquable construite avec un 4D Engine (4D Volume Licence en 2004), les exécutables Client/Server sont des applications intégrées, pouvant être exécutées indépendamment de 4D.
II. Objectifs▲
Cette note technique a pour objectif de vous montrer les bases de l'outil Génération d'Application, permettant de construire des applications Client/Server « standalone ». À la fin de cette note, vous devriez :
- être capable de comprendre comment les applications Client/Server sont constuites ;
- être familier avec la création d'applications Clients avec mise à jour automatique ;
- utiliser les commandes 4D pour construire des applications Client et Server ;
- comprendre les clés XML d'un projet Client/Server.
Les applications Client et Server sont alors complètement personnalisées et ne nécessitent plus 4D Server ou 4D Client. Le comportement original, avant que cette fonctionnalité ne soit implémentée, obligeait un utilisateur à localiser le fichier de structure et à l'ouvrir avec 4D Server. Désormais, l'utilisateur peut simplement double-cliquer sur l'exécutable ou le « package » Server (ou l'exécutable ou le « package » 4D Client).
En 4D 2004, les deux fichiers utilisés dans vos bases (en excluant les fichiers de données) sont typiquement deux fichiers, indépendamment de la plateforme : un fichier structure compilé et son fichier de ressources. Ces deux fichiers peuvent être fusionnés dans l'application finale, une application Client et une application Server.
Pour le Client et le Server qui doivent être construits en application « Standalone », seulement quelques éléments sont requis :
- une version compilée de la structure ;
- 4D Client ;
- 4D Server.
III. La facilité de construction des applications personnalisées Client/Server▲
Une fois la construction faite, comme mentionné ci-dessus, l'utilisateur doit simplement double-cliquer sur l'application. Quand l'utilisateur clique sur l'application Server, elle se lance et aucune structure ne doit être spécifiée.
Quand l'utilisateur clique sur l'application Client, deux cas de figure peuvent se présenter :
- Le client se connecte automatique au serveur ;
- Le client affiche un dialogue de connexion au réseau demandant à l'utilisateur de localiser le serveur.
Dans la majorité des cas, le premier scénario se produit. L'utilisateur double-clique sur le 4D Client sans avoir à connaître l'emplacement du 4D Server. Ceci parce que la localisation du 4D Server est faite à la construction du 4D Client.
Le second scénario se produit si le 4D Server ne répond pas ou si la localisation spécifiée ne peut être trouvée.
IV. Construire des applications Client et Server▲
Client avec mise à jour automatique▲
Une option permet la mise à jour automatique du Client si le numéro de version de l'application a été augmenté. Cela signifie que si une nouvelle version du server est compilée et construite, le Client pourra détecter cela et se mettre à jour automatiquement.
Pour que cette fonctionnalité soit effective, le développeur qui construit l'application Client/Server doit mettre en place des paramètres de « versioning », ce qui est expliqué plus loin.
Cette fonctionnalité rend le déploiement plus simple, en évitant d'installer un nouveau client sur chaque machine lorsqu'une nouvelle version est disponible, un développeur peut faire quelques modifications au niveau du serveur, le recompiler et permettre à chaque client auparavant distribué de se mettre à jour eux-mêmes automatiquement.
L'image ci-dessus est le dialogue affiché par l'outil « Génération de l'application ». On l'ouvre en Mode Structure, Menu Structure -> Générer l'Application.
Option |
Description |
---|---|
Construire Application Client-Serveur |
Cette première case à cocher doit être cochée si vous souhaitez construire des applications Client et Server. |
Permettre la mise à jour automatique de l'application cliente |
Si elle est cochée, cette option permet à l'application Cliente de vérifier la version et si elle doit ou non se mettre à jour |
Version courante |
C'est une valeur numérique. Établit la version de l'application construite. Par exemple si vous passez cette valeur à 2, ceci rendra les versions construites avec la valeur 1 obsolètes. Le client se mettra alors à jour automatiquement. |
Dossier 4D Server |
Emplacement de l'application 4D Server. |
Dossier 4D Client Win |
Emplacement du dossier 4D Client Windows. |
Dossier 4D Client Mac |
Emplacement du dossier 4D Client Mac. |
Le dossier 4D Client Win est utilisé pour préciser l'emplacement du dossier contenant le 4D Client pour Windows. Le dossier 4D Client Mac est utilisé pour préciser l'emplacement du dossier 4D Clent Mac. Ceci permet aux 4D Client de fonctionner en cross-plateforme.
V. Le projet de construction d'application▲
Pour construire une application, vous devez avoir un fichier de projet. Ces fichiers sont des documents XML qui décrivent les options utilisées durant le processus de construction. Il y a toujours un fichier de projet par défaut qui se trouve dans le dossier « BuildApp » (qui lui-même se trouve dans le dossier « Préférences » à côté de l'application), appelé « BuildApp.xml ».
Pour débuter dans la construction d'applications Client et Server, seules quelques clés XML nous intéressent :
BuildServerApplication
True/False. Si la clé est mise à True (Vrai), l'application server est construite.
BuildCSUpgradeable
True/False. Sila clé est mise à True (Vrai), l'application Client en mise à jour automatique est construite pour les deux plateformes si l'emplacement a été indiqué.
CurrentVers
Version courante du Server et du Client
IPAddress
(optionnel, car 4e Dimension dispose de mécanismes internes pour la prise en charge du réseau) Adresse IP de l'application Server. Ceci est requis seulement si le Server doit être localisé sur un WAN (Wide Area Network : réseau pouvant s'étendre dans le monde entier) pour le Client. Cette clé contient l'adresse IP de l'application serveur (le cas échéant). Lorsqu'elle est spécifiée, l'adresse IP est stockée dans un fichier nommé « connection.txt », placé dans le dossier 4D Extensions de l'application cliente.
PortNumber :
(optionnel). Le numéro de port accompagnera le n° IP de l'application Server.
Cette clé contient le numéro de port TCP du serveur visé. Par défaut, ce numéro de port est le 19813 et il n'est généralement pas obligatoire de le préciser. Cette clé est requise lorsque le numéro de port du serveur a été modifié.
Lorsqu'il est spécifié, le numéro de port TCP est stocké dans un fichier nommé « connection.txt », placé dans le dossier 4D Extensions de l'application cliente.
HardLink :
Cette clé permet de modifier le nom des applications Clients et Serveur. Sa taille maximum est de 31 caractères. Si cette clé n'est pas passée, par défaut le nom de l'application est utilisé.
RangeVersMin :
Cette clé permet de spécifier le numéro de version minimal du Client, au-dessous duquel il ne sera pas autorisé à se connecter au Serveur (par exemple 2). Cette clé s'utilise conjointement à RangeVersMax.
Le numéro de version doit être spécifié à l'aide de la clé RangeVers.
RangeVersMax :
Cette clé permet de spécifier le numéro de version maximal du Client, au-dessus duquel il ne sera pas autorisé à se connecter au Serveur (par exemple 3). Cette clé s'utilise conjointement à RangeVersMin.
Le numéro de version doit être spécifié à l'aide de la clé RangeVers.
Chacune de ces clés se trouve dans les balises
2.
3.
4.
5.
6.
7.
8.
9.
10.
<Preferences4D>
<BuildApp>
...
<CS>
<CurrentVers>
1</CurrentVers>
<RangeVersMin>
1</RangeVersMin>
<CS>
...
</BuildApp>
</Preferences4D>
Ci-dessous un extrait de ce fichier XML :
VI. Construire des applications par programmation▲
Un nouveau thème, Outils, dans les commandes 4D 2004, inclut une commande GENERER APPLICATION qui reprend les fonctionnalités de l'outil « Génération d'applications ».
Cette commande prend un seul paramètre, optionnel, de type Chaîne, qui est l'emplacement du projet (fichier XML). La construction de l'application se fera avec les options spécifiées dans ce projet. Si aucun n'emplacement n'est précisé, le fichier projet par défaut sera utilisé (Préférences/BuildApp/BuildApp.xml).
En utilisant le projet par défaut :
GENERER APPLICATION
En spécifiant un projet :
GENERER APPLICATION
(
"C:
\\
MonProjet
\\
Projet.xml"
)
S'il est impossible de localiser le projet, un dialogue apparaîtra à l'utilisateur, afin qu'il puisse le préciser.
Si la construction a réussi, la variable OK passe à 1, sinon elle passe à 0. De plus, un message d'erreur apparaîtra si la compilation n'a pas réussi.
VII. Lancez la base Demo▲
Vérifiez que vous avez bien coché la case « Toujours compiler pour les deux plateformes » dans le dialogue Préférences (Mode Structure - Compilateur- Génération de code).
Lorsque vous lancez la base, passez en Mode Structure. Dans le Menu Structure, choisissez « Générer l'Application ». Ceci ouvrira le dialogue d'Outil de Génération d'applications :
Onglet « client/Server »
- Cochez « construire application client serveur » ;
- Cochez « permettre la mise à jour automatique de l'application cliente » ;
- Vérifiez que la version courante est à « 1 » ;
- Vérifiez ou localisez les emplacements de 4D Server et des 4D Clients.
Lorsque vous aurez terminé, le dialogue devrait ressemblait à ceci :
Cliquez sur Construire.
VIII. Construire des applications Client et Server▲
Si la construction s'est bien déroulée, elle a créé un dossier nommé : « Client serveur exécutable ».
Dans ce dossier se trouvent deux dossiers :
Le dossier Server contient l'exécutable Server :
et le dossier Upgrade4DClient qui servira à mettre à jour automatiquement les clients Mac et Win :
« L'exécutable » Client Mac doit être généré avec le Générateur d'application sur MacOS, pour obtenir le 4D Client personnalisé, à placer, lors de la première installation, sur le poste client Mac.
Lancez le serveur application par un double clic sur le fichier exécutable (sous Windows) ou sur le package (sous MacOS). Faites de même avec client :
IX. Mise à jour automatique▲
- Générez à nouveau l'application en changeant le n° de version ;
- Lancez le server application ;
- Lancez le client.
Vous devez obtenir le message suivant :
Après acceptation de la mise à jour :
X. Les clés XML▲
En menus créés dans la base Démo, la ligne de Menu -> Paramètres Client-Server vous ouvrira un dialogue qui vous permettra de mettre en place les paramètres de votre projet de génération d'application.
Saisissez de nouvelles valeurs (comme 3 à la place de 2 pour la version, RangeVersMin à 2 et RangeVersMax à 3, ou le nom des « exécutables » comme le 4D Client dans HardLink).
Cliquez sur le bouton Générer l'application.
Essayez de reconnecter le serveur. Vous noterez que le serveur permet la connexion immédiatement, sans aucune alerte même si la version du Client n'est pas la même que celle du Server. C'est parce que la version minimale indiquée permet ce comportement.
Note: Le code derrière ce dialogue utilise la commande GENERER APPLICATION qui permet de construire les applications Client et Server.
XI. Conclusion▲
Vous êtes désormais familier avec l'outil de construction d'applications et savez combien il est aisé de créer des applications Client et Server ainsi que des Clients avec mises à jour automatiques.
Essayez différentes combinaisons dans les valeurs du dialogue et notez le comportement.
Les Clients avec mise à jour automatique vous permettent de façon simple d'obtenir des 4D Clients de vos applications avec toujours les bonnes versions sans avoir à les réinstaller.
XII. Base exemple▲
Téléchargez la base exemple :
Base exemple