Developing OpenSim Addins/fr
From OpenSimulator
Languages: |
English Français |
Cette page explique comment développer, créer des paquets et distribuer des modules de région complémentaires poour OpenSimulator. Elle est écrite pour les développeurs qui désirent apporter des fonctionnalités supplémentaires en plus de celles apportées dans la distribution de base d'OpenSim, et qui souhaitent partager ces modules sous forme binaire.Ces instructions concernent les les modules de regionqui s'exécutent sur des simulateurs. On suppose que vous êtes déjà familiarisé avec les bases du développement de modules de régions.
Si vous cherchez à utiliser et installer des modules complémentaires existants, veuillez vous référer à cette autre page.
Contents |
Le package final
Vous trouverez un exemple de module complémentaire ici : https://github.com/diva/diva-distribution/tree/master/addon-modules/02AddinExample. C'est un exemple très simple qui ajoute une fonctionnalité au simulateur en pésentant un formulaire web à l'utilisateur pour lui demander son prénom et son nom. Les données recueillies sont stockées un fichier CSV composées de valeurs séparées par des virgules. Le formulaire Web sera disponible ici : http://yoursim/diva/addinexample. Le package final du module complémentaire contient :
- la dll du module de région (Diva.AddinExample.dll)
- une dll externe (CsvHelper.dll)
- un fichier .ini (AddinExample.ini)
- un fichier html (AddinExample.html)
Ces fichiers sont tous nécessaires pour que les utilisateurs d'OpenSim puissent faire fonctionner ce module complémentaire depuis leur installation ?
Directive pour les modules complémentaires
Comme d'habitude,les modules de régions doivent être annotés comme un module de région OpenSim Region:
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "AddinsExampleModule")] public class AddinExampleModule : ISharedRegionModule { ... }
Deplus, l'assembly qui contient le module de région devrait comprendre les directives suivantes :
// Ces lignes sont requises [assembly: Addin("Diva.AddinExample", OpenSim.VersionInfo.VersionNumber + ".1")] [assembly: AddinDependency("OpenSim.Region.Framework", OpenSim.VersionInfo.VersionNumber)] [assembly: AddinDescription("Example of how to create OpenSim Addins")] [assembly: AddinAuthor("Diva Canto")] // Les lignes suivantes ne sont pas requises, et si elles existent, elles seront spécifique à vos modules complémentaires (Addin) [assembly: ImportAddinAssembly("CsvHelper.dll")] [assembly: ImportAddinFile("AddinExample.ini")] [assembly: ImportAddinFile("AddinExample.html")]
La première directive [assembly: Addin("Diva.AddinExample", OpenSim.VersionInfo.VersionNumber + ".1")] établit le nom public de votre addin: c'est ce que les utilisateurs verront.Portez une attention spéciale au numéro de version. Même si vous pouvez utiliser tout numéro de version que vous souhaitez, il est fortement conseillé d'attacher le numéro de version de votre addin à celui de la version OpenSim que vous avez utilisé pour compiler votre code. La raison à cela est simple : .NET est très sensible à la compatibilité binaire, c'est pourquoi vous devez informer les utilisateurs à propos de la version d'OpenSim compatible avec votre addin. La façon la plus directe de passer cette information est de l'indiquer dans le numéro de version de votre addin. Ainsi, nous utilisons les premiers chiffres pour indiquer le numéro de version d'OpenSim et le dernier chiffre pour désigner la version de l'addin. Si l'addin devait évoluer tout en utilisant la même version d'OpenSim, ce dernier chiffre passerait à 2, tandis que lespremiers chiffres resteraient les mêmes.
La deuxième directive [assembly: AddinDependency("OpenSim.Region.Framework", OpenSim.VersionInfo.VersionNumber)] établit la dépendance avec la dll OpenSim que cet addin va compléter. Tous les modules de région complémentaires prolongent OpenSim.Region.Framework. Aussi, le numéro de version devrait être le numéro de version d'OpenSim utilisé car c'est la dll avec laquelle vous avez compiler votre code. Pour plus d'information sur le fonctionnement du versionig référez-vous à la page Installing_3rd_party_addins#Versioning
Les troisième et quatrièmes directives donnent une description et les informations de paternité de votre addin.
Les dernières directives incluent des fichiers additionnels dans le package. Ces fichiers sont nécessaires pour que le module complémentaire fonctionne dans les environnements de vos utilisateurs. Pour vos addins, soit ces lignes n'existeront pas soit elles incluront différents fichiers/bibliothèques. Dans ce cas, nous avons ajouté le fichier ini de l'exemple, le formulaire html et la bibliothèque externe, CsvHelper.dll, qui sont nécessaires pour que l'addin exemple fonctionne. La directive [assembly: ImportAddinAssembly("CsvHelper.dll")] a deux objectifs: (1) elle inclut cette dll dans le package et (2) elle informe les utilisateurs que quand votre addin est chargé en mémoire, cette dll devrait l'être aussi.