Mesoke,
prononcez Mizoké
 |
Mesoke est le nom d'un générateur d'applications.
Ce programme permet de créer des applications sans écrire
la moindre ligne de code. La construction d'une application Mesoke
se veut intuitive et s'effectue par l'assemblage d'objets graphiques.
Les programmes générés avec Mesoke ne nécessitent
pas de runtime pour l'exploitation. Mesoke génère
des exécutables autonomes.
|
C'est la société Interscan
Systèmes qui commercialise Mesoke. Interscan Systèmes
est une société française possèdant de nombreuses
agences sur le territoire (Lens, Lyon, Nantes, Strasbourg et Toulouse).
Spécialisée dans l'identification code barre, les imprimantes
et les terminaux industriels, elle s'est tout naturellement mise à
promouvoir des solutions basées sur des terminaux de type Pocket
PC.
Le
package Mesoke
 |
Mesoke est conditionné dans une boite en carton qui contient
un CD d'installation et un dongle (clé antipiratage matérielle)
qui se place sur le port parallèle de votre PC de développement.
Comme vous l'avez deviné, le développement d'une
application Mesoke se passe sur le PC (Windows 98, NT, 2000, XP)
et les test s'effectuent soit avec l'émulateur (Pocket
PC 2000) ou directement avec votre PDA connecté.
Les cibles proposées sont assez nombreuses et globalement
tournées vers l'industrie. On y retrouve IT 700, EG 800,
ProGenie, iPAQ H3700, PPT 2700, Intermec 700, HHP Dolphin 7400.
En fait, le nombre de machines supportées est bien plus
important car si vous possédez un iPAQ H3800, il vous suffit
de choisir la plate-forme iPAQ H3700 comme cible pour que ça
fonctionne. Il suffit en fait de connaître les caractéristiques
globales des plate-formes proposée (en terme de processeur
et de type de périphériques embarqués) pour
arriver à faire tourner des machines équivalentes
sans aucun problème.
|
Des
modules spécialisés plein les manches
Voici une liste rapide des possibilités de Mesoke (dans sa version
1.64) :
Ecrans créés simplement par Drag and Drop.
Mise à disposition d'objets graphiques (Text Box, Combo, etc...).
Déclaration des enchaînements d'écrans, événements,
actions sur événements.
Saisie d'objets graphiques tels que signature, photo, etc...
Utilisation de la base de données Windows CE pour mémoriser
les données locales.
Requêtes temps réel sur des bases de données distantes
au travers du middleware PowWow.
Dialogue direct avec des ERP tels que SAP, BAAN, JD EDWARDS, PeopleSoft,
etc au travers des PowWow/ERP Bridges.
Support de nombreux périphériques tels que lecteur de
code barre, GSM, WIFI ou Bluetooth.
Mesoke,
un concept
Le slogan Mesoke est le suivant : "Le moyen simple et économique
pour créer rapidement des programmes fiables sur PDA ou terminaux
Pocket PC sans aucune connaissance d'un langage informatique".
Voyons ça d'un peu plus près...
 |
Avec Mesoke, l'ensemble des écrans, des liens et des actions
se définissent par une série de sélections
d'options. En fait, Mesoke considère qu'une application
est composée d'écrans (Screens), d'actions, de variables,
de tables et de Timers. A partir de là vous devez assembler
ces quelques objets pour créer votre application.
Au début c'est un peu déroutant, surtout si vous
êtes développeur, car une partie de nos réflexes
sont à mettre à la poubelle.
|
Screens
 |
C'est sûrement avec l'objet "Screen" qu'on est
le plus à l'aise. Comme avec la plupart des langages classiques,
la création d'un écran Mesoke s'effectue à
la souris en plaçant des contrôles dans une fenêtre.
La liste des contrôles graphiques n'est pas très
importante. On y retrouve les très classiques Label, Text
Box, Button, Combo Box, List Box, Check Box et Picture Box (Bitmap),
et aussi les moins classiques Bitmap Button et Drawing.

On peut dire que les contrôles les plus importants
sont présents, même si pour ce qui est de la présentation
des données, les contrôles Listview, Treeview ou
Grid manquent à l'appel. Il faudra se contenter de ceux
proposés.
|
Les contrôles peuvent répondre à des événements
bien précis qui ne sont pas tout à fait comme ceux que
l'on a l'habitude de rencontrer quand on développement avec eVB
ou même eVC++. Les événements sont plus liés
à la navigation entre les différents éléments
de l'application.
Par exemple, une fenêtre ne répond à aucun événement,
un bouton répond à l'unique événement "OnPress",
un Text Box à "GoOnEnter", un List Box à "OnDoubleClick",
etc... Simplification maximal, et c'est bien là le but recherché.
Variables
Une variable Mesoke ressemble beaucoup à une variable classique.
Elle possède un nom, un type (String, Numeric, Date), et une
valeur.

Actions
Les actions sont des sortes de scripts. Une action possède un
identifiant (son nom) et regroupe une série de commandes séquentielles
qui sont saisies à l'aide de boites de dialogue. Impossible d'utiliser
dans les scripts Mesoke un objet ou une variable non définie
car tout est proposé dans des listes, ce qui interdit l'utilisation
d'un élément non référencé.

 |
Les commandes disponibles ici sont au nombre de 20, mais de nouvelles
commandes font leur apparition à chaque nouvelle version
de Mesoke. Le signe "=", par exemple, correspond à
une opération d'affectation entre un objet et une variable,
entre 2 objets, ou entre 2 variables. L'écran des paramètres
de la commande s'adapte automatiquement à la commande invoquée
et il n'y a plus qu'à remplir les blancs :

|
En analysant d'un peu plus près la liste des commandes possibles,
on se rend vite compte qu'il est possible d'appeler une fonction externe
'External Function' à partir d'une DLL, ce qui permet d'étendre
les possibilités de Mesoke d'une manière qui ressemble
fortement à ce qui est fait avec des langages comme eVB où
les fonctions critiques (en temps ou en puissance de calcul) sont confiées
à des librairies dynamiques.
Nous venons de voir ce qu'en jargon Mesoke on appelle "Operation
Action". Il existe en fait d'autres types d'actions :
| Message Action |
Permet de créer des boîtes de dialogue
de messages |
 |
| Transaction Action |
Permet de communiquer très simplement avec
le middleware de transfert de données "PowWow"
(un autre produit très connu proposé par Interscan) |
| FTP Action |
Permet de télécharger ou de placer des
fichiers depuis un serveur FTP |
| RAS Action |
Permet de gérer l'ouverture ou la fermeture
d'une connexion RAS |
| GetRecord Action |
Permet de lire un enregistrement d'une table |
| EditRecord Action |
Permet de modifier un enregistrement d'une table |
| DelRecord Action |
Permet de détruire un enregistrement d'une
table |
| CopyTable Action |
Permet de copier une table entre le périphérique
mobile et le PC |
| SQL Action |
Permet d'exécuter sur une base une requête
SQL |
Tables
Toutes les tables que vous allez manipuler dans votre application doivent
être déclarée au préalable en créant
une entrée dans la section "Tables" et où vous
devez stipuler le nom de la table, son format (provider), sa structure.
Il est possible de se connecter à des tables CEDB ou encore SQL
Server CE, le paramètre "Provider" stipulant la chaine
de connexion à utiliser (utilisation d'ADOCE et des providers
OLEDB).
Timers
Les timers Mesoke se comportent de manière classique. Après
qu'un certain temps se soit écoulé (en secondes) une action
(prise dans la liste des Actions de l'application) est exécutée.
Ma
première application Mesoke
Pour "jouer" avec Mesoke, j'ai développé une
toute petite application qui permet de saisir le nom et le prénom
d'une personne et ensuite de les ajouter dans une liste sous la forme
Nom+Prenom.

Rien de bien compliqué donc...
Etape 1 : Création de la fenêtre avec ses contrôles
D'un clique droit dans la fenêtre où sont détaillés
les composants de l'application (Screens, Actions, Variables, Tables,
et Timers) je sélectionne "Insert -> Screen" ce
qui me crée une fenêtre vide. Je lui donne le nom "FormMain".
 |
FormMain se compose de 2 Text Box (TXT_Nom et TXT_Prenom), d'une
List Box (LST_Noms) d'un bouton (BOU_Ajouter) et pour fait beau
d'une image bitmap de CodePPC avec un Label en dessous indiquant
"Mon premier programme avec Mesoke".
Jusque là no problemo, drag en drop, ni plus ni moins,
avec la saisie du nom de chaque contrôle en plus (il est
possible de garder les valeurs par défaut pour le nom des
contrôle, mais perso j'ai horreur de ça).
|
Etape 2: Création des variables
Pour ajouter le nom et le prénom dans la liste j'ai besoin de
3 variables :
| NomPrenom |
Chaine |
|
| vEspace |
Chaine |
Séparateur entre nom et prénom (ici
+) |
| vVide |
Chaine |
Chaine vide |
NomPrenom me permettra d'effectuer la concaténation des champs
Nom et Prenom avec un signe + entre les deux. Cette valeur sera ensuite
ajoutée à la liste LST_Noms.
vEspace contiendra le signe + car on ne peut pas concaténer
une chaine avec un constante, uniquement avec une autre variable. En
fait, vEspace se comporte là comme une sorte de constante.
Pour la même raison que vEspace, vVide contient une chaine vide
car après l'ajout, les champs TXT_Nom et TXT_Prenom seront vidés.
Etape 3: Création de l'action "AjouterDansListe"
Il faut créer l'action qui sera lancée lors du clique
sur le bouton BOU_Ajouter. Cette action est de type "Operation
Action" et se compose de 7 lignes de commandes qui sont :
|
Commande
|
Paramètres |
Commentaire |
|
=
|
AssignTo NomPrenom
Operand1 FormMain.TXT_Nom |
On place dans la variable NomPrenom le nom saisi dans
TXT_Nom |
|
+
|
AssignTo NomPrenom
Operand1 NomPrenom
Operand2 vEspace
|
On ajoute à NomPrenom le signe + |
|
+
|
AssignTo NomPrenom
Operand1 NomPRenom
Operand2 FormMain.TXT_Prenom |
On ajoute à NomPrenom le prénom saisi
dans TXT_Prenom |
|
=
|
AssignTo FormMain.LST_Noms
Operand1 NomPrenom
|
On ajoute dans la liste la chaine NomPrenom |
|
=
|
AssignTo FormMain.TXT_Nom
Operand1 vVide |
On vide TXT_Nom |
|
=
|
AssignTo FormMain.TXT_Prenom
Operand1 vVide |
On vide TXT_Prenom |
|
Go To
|
GoTo FormMain.TXT_Nom |
On donne le focus à TXT_Nom |
Etape 4: Associer le bouton et l'action
Il suffit maintenant d'indiquer à Mesoke qu'il faut exécuter
l'action "AjouterDansListe" lorsque l'utilisateur clique sur
le bouton BOU_Ajouter :

Etape 6: Tester l'application
Il suffit maintenant de lancer l'application "Project -> Generate"
(en ayant pris soin de choisir la bonne plate-forme dans les propriétés
du projet) pour vérifier que la compilation se passe bien et
pour exécuter le programme de manière autonome :

En
pleine évolution
Mesoke est un jeune produit. Il est en constante évolution.
Voici une liste des évolutions qui ont eu lieu en quelques mois.
Le travail fourni par les développeurs de Mesoke est impressionnant
:
Mesoke Version 1.6 (9/08/02)
1) Removed bugs:
- Ftp download did not work properly with modified files;
- Import && Export actions did not work correctly during Paste,Copy
&& Delete;
- Database access memory leaks;
2) Improved Operation Dialog;
3) The program automatically creates DB table for Import Action;
4) Added the Sorted property to ListBox;
5) Added IfFileExist subaction;
6) Timer timeout is set from variable;
7) Added Http Action;
Mesoke Version 1.67 (5/09/02)
1) Added subaction: Len, Trim$, UCase$, LCase$, If (InString) Then,
CopyFiles;
2) Added entries:
- ClearDBTable for Import Action;
- LastSource,MaxLength for Edit Control;
- Align for Static Control;
- BoxIcon for MessageBox;
- Sorting for ComboBox;
3) Modified entries:
- ShowInpOnEnter for Edit Control;
- Mask for DeleteFile subaction;
- BoxTitle for MessageBox;
- Mask for IfFileExist subaction;
- Added the show Picture from file for Drawing control (WorkType = Picture);
4) Added NewItem Tollbar;
5) Horizontal scrollbar is automatically shown in list;
6) Items are automatically sorted in the Items tree;
5) Removed bugs:
- Space characters in the end of a variable are not saved;
- In combobox impossible to enter more than 8 items;
6) Added Index creating for database tables;
7) Added Like operation && ORDER BY statement for SQL Query;
8) Removed small bugs and modified dialogs design;
Mesoke Version 1.69 (30/09/02)
1) Modified menu && toolbar design;
2) Added entries:
- Password && StayOnTop for Project;
- ProgressDlg, ProxyName && ProxyPassword for HttpAction;
- ProgressDlg for FtpAction;
3) Removed bugs:
- When 2 Mesoke programs work in one time on HHP Dolphin, scanning barcode
generates crush;
- Copy/Paste database index;
- HardLock protection does not work on Windows XP;
4) Added Gray format to IQImage of Drawing Ctrl;
5) The ".txt" extension is not added automatically to file
during export action;
6) Integers during db export is left padded with '0' characters;
7) Added DateTime field;
Mesoke Version 1.70 (2/09/02)
1) Removed bug when clicking on TableLink entry of Export action;
2) Internal program reorganization (Report strings are moved to the
resources table);
Conclusion
Mesoke est un produit qui est destiné à
tous, programmeur ou non. La mise en oeuvre de modules spécialisés
(tels que FTP, HTTP, Synchronisation, etc...) rend la création
d'une application communicante avec base de données relativement
simple.
Le paradox, est que pour effectuer des opérations
très simples, comme de la manipulation de chiffres ou de chaines,
Mesoke n'est pas bien armé, du moins, pas encore bien armé
car sa grande forme reste que ses concepteurs le font évoluer
constament et surtout sont à l'écoute des utilisateurs
pour décider quelle nouvelle fonction doit être en priorité
implémentée. Il arrivera un moment où il sera tout
de même nécessaire de connaitre quelques bases en programmation
pour utiliser cet astucieux générateur d'applications.
Stéphane
Sibué