Le premier site francophone dédié au développement Pocket PC


Présentation de Mesoke
Auteur
Stéphane Sibué
Date 28 octobre 2002
 
   

 

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é

 
       
   
 
   
Copyright 2001-2004 - Tous droits réservés
 
   

iPAQ est un produit de COMPAQ.
Visual Tools est un produit de Microsoft Corporation.
Toutes les autres marques et produits présents dans ces pages sont la propriété exclusive de leurs sociétés respectives.