LumisComparator

LumisComparator est un utilitaire pour UltraSoft AG qui permet de comparer les données de deux bases de données du programme Lumis.

Page principale de LumisComparator

  • Le programme ouvre la même table dans les deux bases de données à comparer.
  • Ensuite, il fait un "merge" des clés primaires pour que chaque table ait les mêmes lignes.
  • Et enfin, il colorie les données différentes

Ce petit utilitaire a été écrit en Delphi. Il a nécessité une quinzaine d'heures de développement. En plus de ce qui est décrit plus haut, il est capable d'extraire certaines données plus complexes (comme un fichier compressé dans un champ blob) et de demander à WinMerge de les différencier.

SCC

SCC est l'abréviation de SubCortex Client et SubCortex est le dépôt SubVersion qui contient le code source du projet Cortex.

Pour la gestion des versions, j'ai dû mettre en oeuvre un serveur SubVersion pour la société UltraSoft AG. Le choix de SubVersion était dicté par le mandant, car il possède déjà plusieurs serveurs de ce type pour d'autres projets.

Le projet Cortex est assez complexe. Il s'agit en réalité d'une vingtaine de projets et sous-projets qui constituent un framework permettant de construire rapidement des applications Web.

Pour gérer les dépendances entre les différentes versions des sous-projets, l'outil Maven a été utilisé. La combinaison Maven/SubVersion donne de très bons résultats. Le seul problème est qu'avec autant de projets, il est difficile pour les développeurs de gérer les bonnes versions. Il faut systématiquement ouvrir le pom.xml de tous les projets et gérer les dépendances à la ligne de commande. Mon client m'a donc demandé de réaliser un outil pour simplifier ces opérations...

Le programme SCC est développé en Java/Swing. Il utilise la librairie "snvkit" pour dialoguer avec le serveur SubVersion et une poignée de routines récursives pour les lectures sur le disque et l'affichage sous forme d'arbre.

La partie gauche de l'application présente tous les projets du dépôt et la partie droite affiche les différents outils.

SCC : page principale

Par exemple, un code de couleur montre les dépendances entre les différentes versions de sous-projets
SCC : Dépendances

Ou alors, la partie droite permet de visualiser le fichier "pom.xml"
SCC : pom.xml

Une fois le projet choisi dans l'arbre. Un simple click permet de télécharger l'ensemble des sources du projet et de tous les sous-projets avec lesquels il y a des dépendances.

UltraSoft AG

UltraSoft AG est une entreprise bernoise de développement logiciel. Après y avoir travaillé pendant une petite dizaine d'années, cette société est devenue mon premier client.

Quand j'ai quitté UltraSoft, l'entreprise était en pleine réflexion sur la technologie à utiliser à l'avenir. À ce moment-là (2007), la plupart des applications étaient développées en Delphi et les nouvelles n'étaient pas très bonnes.

Certains clients souhaitaient quitter la plateforme Windows, et ce n'était pas possible avec ce langage. Du point de vue technologique, c'était à peu près le seul reproche que nous avions à faire, le produit était plutôt abouti et très stable. L'entreprise avait un actif d'un bon million de lignes de code réparties dans trois produits phares.

Ce qui était largement plus inquiétant c'était la vie "business" de Delphi. À la base, l'outil de développement a été créé par la société Borland (pour tous ceux qui ont fait du pascal, nous connaissons cet éditeur pour avoir produit le célèbre Turbo Pascal, Delphi n’est que la suite logique de ce produit légendaire). Cette société est (était) loin d'avoir la taille et les ressources d'un Micro$oft ou d'un Oracle, par exemple. Elle a donc eu beaucoup de peine à s'imposer sur le marché même si ces produits étaient très bons techniquement par rapport à ses concurrents. Au cours de ma vie de développeur Delphi, j'ai connu l'époque Borland, puis Inprise, puis re-Borland, puis Codegear. La dernière étape de Delphi est Embarcadero, mais pour moi il était trop tard. J'avais choisi un autre langage...

Mon premier travail pour UltraSoft a été de reprendre une étude que j'avais commencée pendant mon Diplôme fédéral et qui passait en revue les différentes technologies à disposition pour remplacer à long terme le langage Delphi. Le choix s'est porté sur Java. La vaste palette d'outils mis à disposition autour de ce langage permet de faire beaucoup plus que Delphi le permettait, les applications sont automatiquement multiplateformes et les entreprises gravitant autour de cette technologie sont aussi nombreuses que prestigieuses.

UltraSoft a changé de langage de programmation, mais aussi revu en détail les processus de développement logiciel. L'organisation de l'équipe de développement, la formation, la modélisation, la programmation, la maintenance du code et les tests. Cela fait maintenant quatre ans que j'aide UltraSoft à mettre en oeuvre ce vaste projet.