Profitez des offres Memoirevive.ch!
4D 2003: une très belle nouvelle version de la célèbre base de données

Un test très complet a été consacré ici, sur Cuk.ch, à 4D 6.8, première version à être sortie pour Mac OS X de ce programme de création de base de données relationnelles.

Je ne vais donc pas répéter tout ce que j'ai déjà écrit sur ce programme, si vous ne le connaissez pas, je vous conseille donc de lire cet article avant de commencer celui que vous avez sous les yeux.

Je vais malgré tout résumer en quelques lignes pour les paresseux ce qu'est 4D 2003 maintenant.

4D, c'est quoi, ça sert à quoi?

Dès que vous avez à faire avec des données quelconques, vous devez les classer, les ranger, et surtout pouvoir les retrouver.

Pour ce faire, il existe ce que l'on appelle les bases de données.

Il existe des bases de données mono fichiers, toutes simples, qui recensent des contacts par exemple: l'AddressBook de Mac OS X est une base de données, tout comme le sont Now Contacts et TopAddress.

Vous pouvez également classer votre collection de films vidéos, mais là déjà, d'autres besoins se font sentir, comme par exemple le fait de ne pas vouloir retaper à chaque fois certaines spécifications sur les acteurs et les auteurs des films.

C'est dans ce cas qu'entrent en jeu les bases de données relationnelles. On va créer une relation entre le fichier des films, le fichier des acteurs et le fichier des réalisateurs. En ce cas, nous travaillons avec trois fichiers. Le fichier acteurs contiendra toutes les données concernant les... acteurs, et une seule fois. Le fichier des réalisateurs sera identique, à la différence près qu'il regroupera les réalisateurs, comme il se doit.

Le fichier films lui ira chercher les données dans le fichier des acteurs et des auteurs, lorsque vous entrerez par exemple le nom ou le code de ces derniers.

Avantage de cette solution? La non-redondance des données, qui finit toujours par prendre trop de place, le gain de temps à la saisie, et l'automatisation de la correction des données. On corrige une faute d'orthographe dans le prénom d'un acteur et tous les films qu'il a joués sont automatiquement corrigés.

Remarquez que les liens peuvent aller dans les deux sens! Rien de plus simple en fait après avoir entré quelques films de prendre un auteur dans le fichier ad hoc, et de lister les films qu'il a joués qui font partie de votre fichier "Films".

Évidemment, on tombe très vite dans des complications assez importantes, et c'est là qu'intervient la puissance d'une application comme 4D pour créer votre base. Les liens se tirent graphiquement (ce qui n'empêche surtout pas d'avoir réfléchi sa base AVANT de commencer le travail sur la machine) et l'environnement de travail est une simple petite merveille.

La concurrence? C'est FileMaker.

Vous remarquerez (ceux qui me connaissent depuis Pommea.com) que je reste très zen dans cet article. En effet, j'ai cessé de comparer les deux produits.

FileMaker, c'est pour le enduser, l'utilisateur qui veut lui-même se faire une petite base, même relationnelle, avec quelques boutons.

4D, c'est pour le développeur, qui veut créer une application pour un ou plusieurs utilisateurs. Je suis sûr que vous avez travaillé un jour ou l'autre sans le savoir avec un programme développé sur 4D.

Bien entendu, il existe toujours des développeurs qui vont utiliser FileMaker comme plateforme de développement, tout comme il existe des utilisateurs exigeants qui vont travailler avec 4D pour leur propre usage.

Les avantages de 4D par rapport à FileMaker résident principalement dans l'environnement de développement, dans le vrai langage de programmation et sa facilité de mise en úuvre, encore plus certainement depuis la sortie de la version 2003 comme nous allons le voir plus bas.

Une application écrite sous 4D se reconnaît à sa barre d'outils dédiés, ses bulles d'aides, ce qu'est bien incapable de réaliser FileMaker (bien que QuickPay, testé ici, prouve le contraire au niveau de la barre d'outils, grâce à un plug-in très efficace, peut-être celui-ci mais je n'en suis pas certain.).

FileMaker a pour lui la facilité et le côté "bricole" qu'adorent certains. Mathieu ne devrait pas me contredire.

Bref, à chacun son application! Personnellement, j'ai choisi.

4D 2003, un nouvel éditeur de méthode magnifique

4D 2003 intègre maintenant un véritable petit bijou d'éditeur de méthode, l'endroit où l'on écrit notre code.

Rappelons qu'une méthode peut être associée à n'importe quel objet de votre interface, à un formulaire (le modèle de FileMaker, donc une façon parmi d'autres d'afficher les données), un fichier ou même à la base elle-même.

C'est donc dans cet éditeur que nous allons programmer, il est donc primordial qu'il soit bien pensé. Honnêtement, il l'était déjà, mais là, les améliorations sont vraiment conséquentes.

Pour commencer, les lignes sont maintenant numérotées, ce qui est bien pratique en phase de débogage, lorsque le compilateur vous annonce une erreur à la ligne 324. L'affichage de ces numéros de lignes peut être désactivé.

La taille d'une méthode passe de 32Kb à... 2Gb! Il faudra être prolixe pour utiliser toute cette nouvelle place! Sérieusement, il n'existe de fait plus de limites, ce qui est une bonne chose, les 32Kb pouvant être pénalisants lorsque le code est conséquent.

Il est possible de travailler par blocs, lorsque l'on copie ou déplace des morceaux de code, par glisser-déposer par exemple.

Toujours à propos des blocs, 4D affiche à l'écran (il l'imprimait à l'époque seulement) les barres tout à gauche du code reliant par exemple un SI et le FIN de SI correspondant. Lorsque les boucles sont imbriquées, les barres sont plus ou moins épaisses pour nous permettre de nous y retrouver, On aurait souhaité ici peut-être un usage de la couleur pour différencier encore mieux les barres, mais ce plus est déjà tellement génial comme ça que l'on ne va pas jouer les difficiles!

Encore plus fort, comme on le ferait dans le Finder avec un dossier, il est possible de contracter et de déployer un ou des blocs représentant une structure conditionnelle ou une boucle, pour mieux voir cacher du code inutile à un moment de la saisie. Dingue je vous dis, j'en ai presque les larmes aux yeux!

Une méthode déployée à gauche, et là même contractée à droite

Vous tapez le début d'une commande puis la touche "Tab", et vous avez la liste des commandes correspondantes qui apparaît et vous n'aurez plus qu'à choisir celle qu'il vous faut. Pratique, et déjà disponible dans d'autres programmes de type RealBasic. Mais pourquoi ne pas profiter des bonnes idées quand elles existent?

Je tape "cherch" et j'obiens une liste des commandes correspondantes

La fenêtre d'édition de code peut se diviser en plusieurs parties, de manière à voir par exemple le début le milieu et la fin de son code. C'est souvent très pratique et évite les longs scrollings sur les méthodes longues. Il suffit pour ce faire de prendre la zone ombrée située au-dessus de l'ascenseur vertical et de la tirer vers le bas, et le tour est joué. Pour supprimer la division du code, on repousse l'ombre à sa place initiale et le tour est joué.

Le début de la méthode en haut, le milieu... au milieu et la fin de la méthode en bas, en un seul coup d'oeil

Le copier-coller est maintenant multiple: vous sélectionnez une partie de code, vous tapez CTRL-Shift et un chiffre de 0 à 9. Pour coller ce presse-papier, vous taperez Option-CTRL et le même chiffre. Et si vous ne vous rappelez plus où vous avez rangé un presse-papiers, vous pourrez toujours, via le menu contextuel, consulter l'historique du Presse-papiers et sélectionner celui qui vous convient afin de le coller à l'endroit où se trouve le curseur. Personnellement, j'aurais bien vu une palette avec des cases numérotées de 0 à 9, avec le contenu des presse-papiers correspondant. Ça aurait été encore plus pratique. Pour ceux que ça intéresse, je rappelle le test sur Copy-Paste situé ici qui fait exactement ce que je souhaite ici, également à l'intérieur de 4D.

Il est également possible dans 4D 2003 de sauvegarder une méthode en vue d'une importation dans une autre base par exemple, et pour nous permettre de nous y retrouver, il est même prévu de pouvoir les commenter.

Et puisque nous en sommes aux commentaires, l'une des limitations les plus gênantes de 4D saute enfin dans cette version 2003: dans les méthodes, les lignes peuvent faire plus de 80 caractères (elles sont tout de même limitées, mais à 32'000 caractères!) et ne seront plus tronquées après validation. Ouf! De même il est maintenant possible de commenter et décommenter un groupe de lignes d'un seul coup via une commande de menu. Très pratique pour isoler quelques instants un bout de code.

Deux petites choses bien sympathiques maintenant: d'abord, le fait de pouvoir insérer rapidement une structure de type IF/ELSE/ENDIF. Il ne reste ensuite plus qu'à entrer votre code propre aux bons endroits.

Ensuite, le fait de pouvoir inverser des expressions. Je m'explique, Dans une méthode ouvrant un fichier de préférences par exemple, vous allez prendre un certain nombre de paramètres en ouverture de méthode que nous allons retourner en sortie. C'est fort pratique et permet un gain de temps, tout en évitant les fautes de frappe inévitables.

D'un simple clic, on passe du groupe du haut à celui du bas

Pour en terminer avec cet éditeur de méthodes (je sais, j'ai été un peu long, mais vu les utilisateurs "cibles" de 4D, cette partie est très importante), il faut encore signaler la possibilité nouvelle de choisir les listes des objets cliquables situées en bas de l'éditeur, à l'aide d'un menu contextuel. C'est vraiment pratique, puisqu'on n'a pas besoin partout des mêmes listes. L'éditeur l'a bien compris puisqu'il est même possible de sauvegarder une configuration pour une méthode particulière.

Un éditeur d'état tout beau tout neuf

En mode Utilisation, vous pourrez réaliser maintenant des états (qui sont des rapports déclinés sous forme d'impression, de fichiers HTML ou texte, de graphe (4D Chart) ou 4D View, et qui permettent d'effectuer toutes sortes d'opérations mathématiques sur ces données) de manière bien plus rapide que dans les anciennes versions.

Vous disposez en effet d'un mode assisté qui vous guidera étape par étape vers ce que vous voulez réaliser. À tout moment, vous pouvez permuter vers le mode manuel, pour retoucher une étape, et repasser ensuite vers l'assistant. À noter que tout ce module a été réalisé en langage 4D.

Vous pourrez également à tout instant vérifier l'aperçu de votre travail qui sera visible à l'écran dans le logiciel de MacOS X "Aperçu".

Je précise que les chiffres sont maquillés pour le test... Il s'agit de l'aperçu du réglage de la figure précédente

Vous pourrez également, créer, à l'aide de cet éditeur d'état, des tableaux croisés, toujours en étant assisté par 4D.

Ce générateur d'état est en fait un plug-in et pourra être appelé par une méthode dans une zone plug-in d'un formulaire 4D. L'utilisateur final pourra ainsi bénéficier de sa puissance comme bon lui semble. Enfin, vous restez tout de même maître de la chose puisque vous pouvez, par programmation, donner plus ou moins de possibilités à votre client.

Tout dans un état peut être personnalisé, des cadres, de l'image de fond, en passant par les couleurs et les polices. Un certain nombre de formats prédéfinis sont également à disposition.

Très fort tout ça.

Un éditeur de barre de menus amélioré

Avec 4D, vous allez créer des applications avec barre(s) de menus personnalisées. C'est le cas depuis toujours (en tout cas depuis que j'utilise le produit, en version 3). Cette nouvelle mouture nous offre quelques améliorations notables, comme le fait, pour le programmeur, de nommer ses barres, ce qui est tout de même plus clair que "barre 1", "barre 2".

Et puis, à chaque commande peut être associée maintenant une action standard, comme on a toujours pu le faire sur un bouton.

Le menu Édition, tout préparé, peut être personnalisé sans que l'on perde ses fonctionnalités.

Et puisque l'on parle de menus, signalons, dans un autre domaine, qu'il est possible maintenant de passer directement du mode Structure (dans lequel on dessine les formulaires et l'on programme sa base) au mode "Menus créés" (qui émule votre application) sans plus avoir à passer par le mode "Utilisation".

Des nouvelles commandes très utiles

Chaque nouvelle mouture de 4D, comme d'ailleurs de tout logiciel de programmation, apporte son lot de nouvelles commandes de son langage.

Cette fois, nous trouvons en particulier une nouvelle gestion de l'impression avec une commande comme "Fixer Option impression" en rapport avec des constantes pour ces options, comme l'alimentation, la gestion de la couleur, le format, l'orientation, le recto verso, l'échelle et j'en passe.

Un énorme progrès par rapport aux versions précédentes qui ne fonctionnaient bien qu'avec un type d'imprimante donné lors de la programmation. Ici, cette nouvelle gestion devrait être utilisable avec toutes les imprimantes, en particulier pour celles disposant d'un fichier de description (PPD).

Il est possible également de connaître pendant l'impression, le taux de remplissage d'une feuille, pour savoir par exemple si une zone insécable aura ou non la place sur ce qui reste à disposition, afin de la faire passer, si besoin est, sur la page suivante.

Autre plus considérable de la version 2003, la possibilité de bouger les taquets de formulaire par programmation (les taquets sont, dans 4D, les lignes qui permettent de définir où s'arrête le corps, les zones de rupture ou les pieds de page par exemple. C'est fort pratique et cela permet d'éviter de devoir dessiner à l'avance plusieurs formulaire pour répondre à différents cas de figure. Ici, un seul suffira, tout va se passer au niveau du formulaire.

Les taquets 4D, gérables maintenant par programmation...

Un serveur Web partagé

Le serveur Web 4D peut être maintenant partagé sur plusieurs machines clients, et cela permet à la fois de faciliter sa maintenance, voire de décharger la machine principale par exemple. Selon l'option choisie, les dossiers partagés situés sur plusieurs machines seront synchronisés automatiquement. Nous disposons ainsi d'une bonne tolérance de panne, bien meilleure en tout cas que si les données ne sont conservées que sur une machine.

Il este aussi possible de mette certains fichiers disponibles à certains utilisateurs derrière un FireWall sur une machine, et d'autres, entièrement publics, sur un autre ordinateur. Bref, les possibilités sont infinies.

Le compilateur intégré

La navigation dans les versions précédentes de 4D entre le compilateur et l'environnement de programmation pouvait être à l'époque rébarbative.

Ce n'est plus le cas maintenant, puisque le compilateur est entièrement intégré à 4D lui-même (Developper Édition et Advanced Kit).

Rappelons que le compilateur permet:

  • de vérifier la syntaxe puisqu'il est nettement moins tolérant que le vérificateur syntaxique de 4D standard

Nom de dzou! 44 erreurs dans ma petite base, que le correcteur de base n'avait pas vues.
Je vais devoir me remettre au travail! Remarquez, ça va aller vite, puisqu'un clic
sur l'erreur m'amène immédiatement à la bonne ligne et dans la bonne méthode. Quel progrès!

  • de créer des applications double-cliquables autonomes, ou qui seront utilisées avec 4D Runtime Classic (qui n'a rien à voir avec le Classic de MacOSX: il s'agit ici du Runtime utilisant une base compilée, sous Mac OS 9 ou Mac OS X, et même sous Windows).

Mais ne nous réjouissons pas trop vite. L'utilisateur de 4D pourra compiler des bases ne dépassant pas 50 enregistrements en écriture (mais illimitées en lecture). C'est parfait pour proposer des bases sur un CD par exemple, mais trop limité dans la plupart des situations. Pour pouvoir réellement créer des applications double-cliquable, il faudra passer par l'achat d'un 4D Engine sponsorisé ou non (dans ce dernier cas, il sera plus cher que dans le premier, ben oui!).

Il n'empêche, la correction de la syntaxe est, elle, bien présente, et sans limitation. Un vrai bonheur.

Les Web Servicies

L'une des grandes nouveautés de 4D 2003, c'est l'intégration des WebServicies, basés sur le langage XML et Soap.

Toute application moderne se doit ou se devra de proposer de telles solutions. En fait, ces Web Servicies permettent à n'importe quelle application de dialoguer avec toute autre les offrant également, quelle que soit la plateforme, ou le langage de programmation.

Il sera ainsi possible d'interroger par exemple Google à l'intérieur même de 4D, ou de demander une intégration de calculs Excel également dans un formulaire. Pour cette dernière possibilité, il est à noter qu'elle n'est possible que sur PC puisque Microsoft n'a pas intégré de WebServicies dans sa suite Office v.X.

Soyons certains que cela devrait être corrigé dans une prochaine version, l'éditeur ne pouvant se permettre de se couper de ces nouvelles fonctionnalités sans être ridicule. Remarquez... non, je n'ai rien dit...

Les domaines d'application peuvent en fait être infinis. Vous pourrez ainsi demander un système de traduction à l'intérieur même de votre base, préparer un système de mise à jour des devises automatique.

4D2003 est à la fois un client (il peut aller chercher des données dans une autre application) mais aussi un fournisseur de services. Notons que ces Web Servicies sont véritablement un standard normalisé par le W3C (World Wide Web Consortium).

Pour être compatible avec les Web Servicies, une application doit être capable de fournir ou (et) d'aller chercher et comprendre une WSDL (une liste de description des Web services offerts, Web Servicies Description Language), au format XML, de manière indépendante du langage de programmation.

Pour bénéficier de ces WebServicies en tant que serveur, il faut adjoindre à 4D le Web Extention, ce dont je ne dispose pas, raison pour laquelle je n'ai pas pu tester ces nouvelles spécificités liées à 4D 2003.En tant que client par contre, tout est gratuit puisque Web Extention n'est pas nécessaire. J'ai vu quelques mises en application lors d'une journée de présentation du produit, et je dois dire que ces nouvelles fonctionnalités de Web Servicies m'ont tout bonnement laissé pantois.

Un assistant à l'intérieur de 4D nous guide pour mettre en place un Web Servicies dans notre base.

À noter qu'il faudra se faire à ces nouvelles technologies, qui devraient très bientôt être véritablement déployées dans tous les domaines d'application.

Je précise également que le Web Extention permet à un programmeur 4D de mettre en ligne une base 4D de manière très simple puisqu'un seul clic peut suffire pratiquement pour parvenir à ses fins.

En conclusion

4D 2003 n'est pas exempt de défauts, comme toute application qui se respecte. Ainsi, il n'est toujours pas possible de supprimer une rubrique créée dans un fichier ou même, un fichier en tant que tel. Notez que ça fait longtemps que je ne m'énerve plus avec ça, il suffit de ne pas utiliser dans les forumulaires et partout ailleurs ces objets inutiles. N'empêche, cela ne fait pas très propre dans la structure elle-même.

De même, je ne regretterai jamais assez le fait qu'en mode liste, le clavier soit inopérant. Prenons un exemple: vous cherchez le nom Dupond. Un appui sur la touche "D" ne vous mènera pas directement au premier nom commençant par cette lettre. Quel dommage! Oh, je sais bien que par programmation, il est possible de tout faire, mais cette fonction serait bien utile (on en a la preuve chaque fois que l'on utilise FileMaker).

Pour le reste, 4D 2003 est une vraie merveille. Je n'ai testé ici que le noyau dur de la gamme, mais il faut savoir que cette dernière est très étoffée, et permet de répondre à toutes les demandes d'une entreprise, grosse ou petite.

Je ne peux que vous conseiller de lire encore, si ce n'est déjà fait, le test consacré à la découverte de 4D 6.8, où vous découvrirez les bienfaits de l'explorateur de 4D, de sa fenêtre listant les propriétés d'un objet, de sa boîte à outils, et de toutes ces choses de base que je n'ai pas répété ici.

Oui, 4D 2003 est une véritable réussite, et je ne peux que féliciter l'équipe à la base française qui édite ce logiciel, et vous conseiller un détour, même si vous êtes en France, de l'éditeur suisse Ajar.ch, particulièrement dynamique sur les produits 4D.

Pour une fois qu'on a la chance de vivre dans ce pays au niveau informatique...

Aucun commentaire pour l'instant…