creapage.net

SGBD : développez universel ou ne développez pas !

Sashipa-Melba est une technologie de développement d'interfaces de bases de données un peu particulière. Elle fonctionne sous Windows et Linux. Elle est open-source et gratuite. Vous la trouverez ici.

 

 Logiciels générés

Les applications générées se composent d'une succession d'écrans. En voici quelques-uns tirés de l'interface DemoContact :

Le menu général :

En cliquant sur "Recherche de Contacts", on ouvre l'écran suivant :

Puis, en double-cliquant sur la deuxième ligne, on obtient la fiche de Jean-Paul :

On a donc des écrans pour les menus, les recherches, les ajouts - consultations - modifications.
De plus, on peut imprimer et exporter chaque liste depuis de son menu contextuel :

 

 Créer votre application

Je prendrai comme exemple la base DemoContact (la base de démonstration du kit de développement). Vous pouvez bien sûr transposer les commandes pour travailler sur une autre base.

Installations préliminaires :

Un joli petit dessin pour résumer les étapes de construction :

Etape 1 :

 java -cp "melbakit.jar:le_chemin_vers_le_driver_jdbc.jar" databasesashipa.Database2Sashipa 

Remarquez les deux points (le caractère ':') qui séparent "melbakit.jar" de "le_chemin_vers_le_driver_jdbc.jar". Sous Windows, il faut remplacer par un point virgule (le caractère ';') ...

Cette commande vous affiche les options de connexion disponibles. Relancez-là avec les informations de connexions vers votre SGBD. Par exemple, avec PostGreSQL :

 java -cp "melbakit.jar:/usr/local/javalib/postgresql/pg73b1jdbc3.jar" databasesashipa.Database2Sashipa -s postgresql -db DemoContact -u chocolat -p "70%" -cn "//localhost/DemoContact" -f "src_xml/democontact_auto.xml" -l fr 

Etape 2 :

 melbabuild democontact_auto 

Il ne vous reste plus qu'à exécuter l'application résultat. Soit en double-cliquant dessus, soit avec la commande :

 java -jar result/democontact_auto.jar 

 

Simple non ?

Avec Sashipa-Melba, plus besoin de développer !
Trop simple me direz-vous, mais l'application générée ne correspond pas à vos besoins...
J'y viens justement, et il me reste aussi la première moitié du titre à expliquer.

 

 Le langage Sashipa

Présentation de Sashipa

Le fichier généré par l'étape 1 est écrit dans un langage XML bien particulier : le Sashipa. Comme tout fichier XML, c'est un fichier texte que vous visualiserez avec votre éditeur préféré (Jext, UltraEdit, Emacs, notepad, vi, ...) . Il constitue le source de votre application.

En effet, Sashipa est un langage de description. Il permet de développer votre application entièrement, uniquement en la décrivant. Database2Sashipa (le programme de l'étape 1) vous propose un source par défaut à partir d'une connexion à une base de données. Mais il est bien sûr possible de le modifier ou de le ré-écrire complètement. Vous écrirez donc en Sashipa l'application qui correspond à vos besoins.

Elément Architecture d'une application Sashipa

Un fichier Sashipa est constitué de trois parties :

Vous apprendrez à écrire un fichier Sashipa complet depuis le site Web. Dans le cadre de cet article, nous nous contenterons de jeter un coup d'oeil sur la dernière partie, qui est extrêmement simple : l'élément architecture.

Le voici le voilà :

  <architecture guiType='application'>
    <dbAccessStage database='dbContact' architecture='clientDatabase'>
      <dbConnection type='jdbc' dbmsType='PostGreSQL'>
        <specificToJdbc>
          <dbConnectionDriver>org.postgresql.Driver</dbConnectionDriver>
          <dbConnectionProtocol>postgresql</dbConnectionProtocol>
          <driverClasspath>/usr/local/javalib/postgresql/pg73b1jdbc3.jar</driverClasspath>
        </specificToJdbc>
        <dbConnectionString>DemoContact</dbConnectionString>
        <user>chocolat</user>
        <password>70%</password>
      </dbConnection>
      <dbAccessLog>
        <filenameLogMain>Melba_Main.log</filenameLogMain>
        <filenameLogUpdate>Melba_Update.log</filenameLogUpdate>
      </dbAccessLog>
    </dbAccessStage>
    <languageDefinitionSet mainLanguageDefinition='french'>
      &frenchDefinition; &englishDefinition;
    </languageDefinitionSet>
  </architecture>

Remarquez l'attribut de l'élément dbConnection : dbmsType='PostGreSQL'. Si vous changez simplement 'PostGreSQL' en 'Interbase' ou 'MySQL', alors le MelbaLab vous générera une application pour Interbase ou MySQL. C'est en effet le seul endroit dans le fichier, qui contient des informations spécifiques au SGBD. Ainsi, le code décrivant l'environnement et l'interface utilisateur est indépendant du SGBD.

Vous pouvez aussi remplacer 'application' par 'applet' et une applet sera générée. Vous choisirez 'clientServerDatabase' plutôt que 'clientDatabase' si vous souhaitez générer une servlet pour activer la gestion multi-utilisateurs. Enfin, l'application générée est une application Java et fonctionnera sur tout Système d'Exploitation disposant d'une machine virtuelle Java.

SQFD ! Vos développements ne sont pas liés aux spécificités de votre environnement, ils sont indépendants de vos contraintes techniques : vous développez universel !