Bonjour,
je suis actuellement en charge du développement d'une application. Cette application à plusieurs dérivés en fonction de deux domaines métier. De plus une autre dérivés est une version légère de l'application. Voici un récupilatif :
-Application métier1
-Application métier2
-Aplication métier 2 léger
Ces trois applications repose sur une même base d'interface graphique et de méthode interne. Il y a donc une partie commune "Application base". De plus, ces applications utilisent des DLLs. Chaque application utilise certaines DLLs. Il y a cinq paquets de DLL.
Donc on a trois projets distincts, avec de nombreuses dépendances communes. Voici un schéma récupilatif de ce charabia :
L'ensemble est codé en C# (VB pour certaines vielles DLLs, pas d'évolution, juste de la correction de bug). On utilise l'IDE Visual Studio avec l'extension GitExtension.
Actuellement, on utilise donc l'outil de solution de Visual Studio pour l'ajout de dépendance dans le projet. Donc en ouvrant la solution de Application métier 1, on peut accéder directement aux sources des Dlls ou de Application base. Chaque projet (application et dépendance) a son propre dépôt. Donc on mémorise dans des notes les branchements de révision et on charge à la main, ce qui est peu pratique.
On aimerait avoir une méthode subversionnage adapter à ce genre de projet qui comprend plein de dépendance commune.
Le mieux serait lorsque l'on charge une branche/révision d'une des applications, il charge aussi la branche/révision correspondante dans les Dlls et Application Base. Le but étant de promouvoir les modifications des dépendances vers l'ensemble des applications, mais sans les rendre immédiatement obligatoire. Chaque modification dans les dépendances devra être répercuter un jour dans les applications.
Par exemple, je modifie Application metier 1 qui demande une modification dans Application base. Ensuite j'ai une correction de bug urgente dans Application metier 2. J'aimerais pouvoir corriger mon bug rapidement sans effectuer en plus les modifications de Application Base
Actuellement c'est possible, il suffit d'ovrir Application metier 2 et de recharger les révisions de chaque dépendance (grâce aux notes), mais ce n'est pas ergonomique et très sensible aux erreurs (il ne faut pas se tromper de révision des dépendances).
J'ai vu qu'il existait un système de gestion de sous-module dans Git, mais cela procède à une copie complète de chacune des dépendances. De plus, il faut faire des modifications dans la dépendance d'origine, ensuite demander une mise à jour dans l'application. Ce processus est relativement lourd. On aimerait faire des modifications directement depuis les solutions Visual Studio des applications.
Il est possible depuis une solution Visual Studio d'une application d'accéder et de modifier les sources des dépendances. Ce qui impacte l'ensemble des applications. Mais avec la gestion des sous-module de Git, cela n'est pas possible. Car les sources des dépendances sont dupliquées et il n'est pas possible de les modifier directement.
J'aimerais donc avoir vos idées ou une opinion sur le système actuelle.
Petite précision, on ne travaille que sur une application à la fois. Il n'est pas possible d'avoir plusieurs branches d'un dépôt Git active en même temps.
Partager