Mercator ERP n’est pas un programme « open source ». Et c’est un avantage pour nos utilisateurs.
Dans un ERP « open-source », les modifications de comportement du logiciel et l’ajout de fonctionnalités sont effectuées directement dans le code de l’application. Ces modifications seront perdues lors de l’installation d’une mise à jour.
Pour pallier à ça, les développeurs adoptent une stratégie modulaire : le code sur-mesure est placé dans des modules séparés qui ne seront pas nécessairement affectés par une mise à jour.
Certes, c’est mieux. Mais il restera toujours un travail à faire : s’assurer que ces modules séparés peuvent être « rebranchés » sur la nouvelle version du cœur. Cela implique des migrations et du testing, à chaque mise à jour. Et donc un coût non négligeable, voire même une indisponibilité de certaines fonctionnalités, le temps de les retravailler.
Dans Mercator, cette stratégie modulaire est prévue depuis la 1ière ligne de code. Les modules sur-mesure s’imbriquent sur des points d’appels qui, eux, ne seront jamais modifiés. En d’autres termes, une mise à jour du cœur de l’application n’impactera jamais les points de branchement des modules.
On compte plusieurs milliers de points de branchement entre le cœur et le code sur-mesure.
Pour les plus techniques de nos lecteurs, ces points sont définis dans des interfaces publiques ou des événements publics. La plateforme .net met à disposition le nécessaire pour bien séparer ces deux réalités. L’équipe de développement veille à ce que, au gré des versions, ce qui est « public » (au sens de la programmation objet) reste inchangé. Le framework .net contient tout ce qu’il faut pour enrichir l’API de Mercator sans jamais briser la rétrocompatibilité :
- Ajout de signatures sur les méthodes existantes afin d’augmenter le nombre de paramètre passés.
- Ajout de propriétés publiques dans les classes publiques de Mercator.
Cette architecture native du logiciel permet donc d’assurer une compatibilité ascendante, même en ce qui concerne les développements sur-mesure.