top_t.gif
Page d'accueil Profil Produits Recherche Ressources end.gif

RES-Reach™ RES-Reach™ RES-Reach™ RES-Reach™

Entrevue avec un programmeur Patrick Jean, CSD 66

Quand avez-vous commencé à utiliser RES-Reach?
J'ai été embauché ici à ma la fin de mes études. J'avais eu un aperçu de reach et d'autres produits pendant mes études, mais c'est ici que j'ai commencé à l'utiliser, pour un projet d'intranet important que je réalise de façon autonome.

Quelle comparaison pouvez-vous faire entre reach et les produits similaires que vous connaissez?
Il est élégant et facile à utiliser. Avec d'autres produits, en général vous devez gérer beaucoup de nouveaux marqueurs et apprendre beaucoup de syntaxe: c'est tout un langage que vous devez apprendre à insérer dans html, et vous avez à mélanger deux ou trois langages qui ont des syntaxes très différentes dans le même fichier, à moins de gérer en parallèle deux ou trois fichiers dans des syntaxes différentes.

Ils cachent le code dans des commentaires ou dans des fichiers différents. Ils enfreignent les règles de SGML/html. Ils mettent du code procédural dans un langage déclaratif. Le langage reach, lui, est du html avec quelques marqueurs supplémentaires. Avec d'autres produits que j'ai essayés, j'ai eu immédiatement des problèmes quand j'ai tâché de créer un DSN.

Qu'est-ce qu'un DSN?
C'est un "Data Source Name", un nom qui sert à indiquer à l'avance au serveur quelle base de données vous allez utiliser, et à lancer un processus de configuration pour la renommer. Vous faites ça pour chaque base de données sur laquelle vous aller faire une requête. Eh bien je n'ai jamais réussi à le faire du premier coup, et si vous n'utilisez pas le bon type de DSN, si vous changez de version du driver, ou si vous voulez modifier des détails après coup, vous devez tout recommencer, et des choses qui marchaient ne marchent plus. C'est la même chose pour porter votre application sur une autre machine: vous devez reconfigurer les DSN.

Avec RES-Reach, au contraire, vous indiquez le type de base de la données et son emplacement (en donnant son répertoire ou par un autre moyen), et voilà. Il n'y a pas besoin de DSN. Je peux même le faire dynamiquement. Tel utilisateur correspond à telle base de données. Je peux créer des bases de données à partir du programme et lancer immédiatement des requêtes dessus. Je peux créer un fichier dBASE personnalisé dans le répertoire de chargement de l'utilisateur sans même avoir une copie du langage de commande de dBASE! Mais d'habitude je le laisse en blanc et par défaut ce sera MS Access.

Quelle version de Access? 2, 95, 98?
N'importe laquelle. Dans certains cas, j'accède à plusieurs bases de données qui utilisent différentes versions dans la même page. Les détails sont réglés automatiquement.

Est-ce que RES-Reach est facile à utiliser?
L'installation a été si facile que j'ai eu peur d'avoir manqué quelque chose. Elle installe un composant comme service NT, donc c'est toujours immédiatement disponible. Un moment j'ai eu deux serveurs Web et plusieurs répertoires d'exécutables, et différentes permissions de copie sur le fichier "exe". Tout a été pris en compte.

Le langage lui-même est simple à apprendre. C'est juste du html avec 3 paires de marqueurs supplémentaires: "if', "data" pour lancer les requêtes SQL et "record" pour naviguer dans les ensembles d'enregistrements. J'utilise aussi ce qu'offre le Web, mais tout est généré dynamiquement: JavaScript, le paramétrage des applets, les feuilles de style, etc.

Moi qui suis tout le temps en train de consulter les manuels html, JavaScript ou des serveurs, je n'ai pratiquement pas ouvert le manuel de RES-Reach après la première semaine.

À part la simplicité, quels sont les autres caractéristiques importantes?
Avant tout, l'emboîtement. Par exemple, si je veux créer un rapport qui indique les activités de chaque étudiant pendant un trimestre, je lance une requête sur le profil du professeur à partir de son code d'accès. C'est un ensembles d'enregistrements d'un ou zéro enregistrement au premier niveau. À l'intérieur, au second niveau, je place une requête pour trouver la liste d'étudiants de ses classes (une vingtaine). Au troisième niveau, il y a une requête qui trouve la liste des activités de l'étudiant, etc. Je peux faire cela avec n'importe quelle base de données, pas seulement celles qui ont des "curseurs". Avec l'emboîtement, je peux écrire des composants réutilisables qui sont appelés à partir de diverses pages avec différents contextes, je peux faire de la récursion, et je peux éviter les requêtes de fusion compliquées qui sont vite illisibles. Je peux même faire des opérations comme des fusions entre un fichier Oracle et un fichier Paradox.

Est-ce que ce n'est pas plus lent que d'envoyer une seule requête commune?
Peut-être, mais ça me dispense d'écrire un morceau de code que je ne comprends pas. Je peux faire la fusion dans une requête, ou bien la mettre à l'intérieur d'une autre requête. Mais au bout du compte, c'est très rapide. J'ai fait des mesures pour comparer les performances de l'application intranet avec le langage propre de la base de données langage à travers un réseau local: c'est l'intranet qui était le plus rapide.

S

i vous avec beaucoup d'utilisateurs en même temps, il fait du multi-fils. Des instances multiples peuvent fonctionner en parallèle simultanément: elle ne sont pas mise en file d'attente. Si la mémoire et les processeurs le permettent, vous gagnez du temps.

Et la sécurité?
Dans cette application, je limite l'accès, et suivant qui vous êtes, vous avez différentes requêtes, différentes bases de données et différent programmes. J'ai mon propre environnement de développement pour faire des essais, et un environnement de formation pour les nouveaux utilisateurs. Je peux les faire fonctionner simultanément avec une copie unique du logiciel. Le service RES-Reach tourne sur son propre compte, et je peux attribuer les permissions de façon à ce que seulement ce compte puisse lire les fichiers de programme et les bases de données pertinentes. Un hacker, même au courant des mots de passe, ne peut pas avoir accès à ces fichiers. Avec d'autres langages, je dois faire très attention aux permissions et aux erreurs de frappe sur les noms des fichiers dont l'accès n'est pas protégé, parce que le code source est dans un répertoire accessible par Internet au inonde entier. Avec RES-Reach l'extérieur ne peut que demander l'exécution d'un programme par le compte RES-Reach, et ne peut pas aller voir mon code ni mes bases de données.

Vous le recommandez plutôt pour des applications simples ou complexes?
Les deux! Il est suffisamment flexible pour ça. J'aime le niveau de contrôle qu'il permet. Je peux utiliser un nouvel en-tête http si je veux. Si, mettons, la prochaine version du fureteur Microsoft Explorer indique au serveur les paramètres d'affichage de votre machine ou lui signale qu'il a des formats de fichiers inhabituels, je pourrai utiliser ces informations. Si le nouveau fureteur inclut de nouvelles fonctionnalités comme un changement de spécification de cookies, je peux en bénéficier immédiatement avec la version présente de reach. Je peux traiter OFX (Open Financial Exchange) et XML (Extended Markup Langage) dès maintenant, alors qu'ils viennent à peine d'être inventés. Ce n'est pas caché dans un objet ou une méthode que quelqu'un implémentera éventuellement un jour. Mais si je ne veux pas m'embêter avec des choses comme les en-tête http, je n'ai pas à m'en préoccuper.

Page d'accueil Précédent Suivant Top.gif Think Locally Act Globally Langue Ecrivez-nous
Think Locally Act Globally