La synchronisation modèle-code permet de visualiser votre code et maintenir un lien fort entre vos fichiers source et vos objets de modèle. Les genlets PowerAMC permettent d'automatiser les transformations post-génération et de gérer des fusions complexes de changements dans vos fichiers.
Les genlets sont de petites classes C# qui peuvent être utilisées lors du processus de génération afin d'effectuer des transformations sur les fichiers générés.
Les deux principaux types de genlets sont les suivants :
Transformlets – effectuent une transformation sur un fichier généré. Ils permettent de définir des politiques multicible réutilisables à appliquer au code généré. Par exemple, vous pouvez utiliser des transformlets pour ajouter un en-tête et une fin de fichier à chaque fichier ou pour vous assurer que chaque nom de champ statique commence par un trait de soulignement.
Vous pouvez enchaîner plusieurs transformlets pour accomplir les différentes étapes d'une transformation.
Mergelets – sont à utiliser lorsqu'un fichier donné est régénéré et que le contenu cible peut changer indépendamment du modèle. Cela peut être le cas avec un document XML dans lequel certaines sections sont générées depuis un modèle et d'autres modifiées par un autre système ou dans lequel les squelettes de code standard sont générés et que du code personnalisé est ajouté dans l'éditeur de code.
Dans le cas de code source, les mergelets peuvent être utilisés pour maximiser la lisibilité en préservant l'ordre et la mise en forme sur plusieurs cycles de génération, en comparant et fusionnant des éléments au niveau du code du modèle afin de traiter ce cas de figure.
Bien qu'ils soient très utiles pour les langages n'assurant pas la prise en charge de classe partielle (qui facilite la séparation du code généré et du code utilisateur), les mergelets de type code-model peuvent néanmoins servir pour les langages de programmation VB et C#. Un seul merglet peut être utilisé pour chaque génération, et il doit toujours s'agir du dernier genlet de la chaîne, après tous les transformlets.
PowerAMC fournit des templates C# pour trois formes de transformlets et de mergelets :