Créateur de module SDK

Pourquoi créer un module d’extension?

Un module permet d’exécuter ou de gérer n’importe quel type de programme ou connexion qui n’est présentement pas pris en charge par Remote Desktop Manager. Vous pouvez ajouter tout autre produit commercial ou votre propre processus développé par votre entreprise. En personnalisant la fenêtre de configuration, vous pouvez intégrer tous les paramètres et les réglages qui répondent à vos besoins.

Si vous développez un module d’un produit commercial, vous pouvez le partager avec la communauté RDM et ainsi contribuer au peaufinement de notre logiciel.

Une fois installé, un module ne fait qu’ajouter un nouveau type d’entrée dans RDM, comme s’il avait été intégré dès le début. L’intégration n’est pas perceptible puisque le nouveau type d’entrée est simplement ajouté à la liste. Une fois que vous avez ajusté les paramètres dans la fenêtre de configuration fournie avec le module, vous pouvez l’utiliser comme tous les autres modules.

Exigences

  • Tous les modules doivent être développés avec .NET Framework 4
  • Une connaissance de base de C# / VB .NET est requise
  • Utiliser un outil comme Visual Studio ou SharpDevelop pour créer la librairie et compiler le code.

Nous développons nos produits en respectant la norme de codage Microsoft StyleCop. Nous recommandons cet outil afin d’assurer la qualité et la lisibilité du code. Cela simplifiera le déploiement de votre code si vous décidez de le partager avec la communauté.

Module de session

Ce type de module d’extension ajoutera un nouveau type de connexion à l’application. Il sera alors ajouté à la liste des types d’entrée offerts. Il existe deux modes pris en charge :

Mode externe:

Ce mode exécute habituellement un processus externe ou un Objet COM. Ce module offre les mêmes possibilités d’une entrée de type Ligne de commande pour démarrer un processus. Vous pouvez lancer n’importe quel processus avec n’importe quels paramètres. Une fois qu’il est en cours d’exécution, vous pouvez le fermer soit par l’application elle-même, soit en utilisant la fonctionnalité intégrée de RDM.

Mode d’affichage intégré / Mode onglet:

RDM s’attend à ce que le module retourne un UserControl qui sera intégré directement dans l’application. Il sera affiché dans un MDI child ou comme une page à onglet. Il sert normalement à intégrer un ActiveX (Adobe Acrobat, Internet Explorer...) existant ou un composant .NET (shell tree view, FTP, RichTextEditor...).

Module VPN

Ce type de module sert à ouvrir et à fermer une connexion VPN spécifique. Il sera placé seulement dans la liste de type VPN. L’implémentation ressemble beaucoup à celle d’un module de session, avec quelques méthodes spécifiques de VPN.

Importer un module

Ce type de module sert à étendre la fonctionnalité d’importation de l’application. Le scénario typique consiste à :

  • Le module retourne la liste des sessions disponibles dans RDM.
  • L’utilisateur en choisit une parmi la liste proposée.
  • Le module reçoit la liste de sessions sélectionnée et remplit les informations de chaque entrée dans la nouvelle session
  • La session est enregistrée et maintenant prête à être utilisée.

Module d’outil d’application

Ce type de module sert à ajouter des outils configurés dans le menu Outils. L’outil configuré sera listé dans l’application.

Cet outil ne doit pas être spécifique à une session.

Module d’outil de session

Ce type de module sert à étendre une session avec un outil. L’outil utilisera les paramètres disponibles de la session à exécuter.

Par exemple, dans le cas d’un module permettant une fermeture à distance, le module utilisera le nom de la machine configurée pour exécuter l’application de Windows shutdown.exe.

Module de source de données

Ce type de module sert à ajouter ou à étendre une application avec un nouveau type de source de données. En implémentant ce type de module, il est possible de prendre en charge différents types de base de données ou différents modèles de sécurité.

Ce type de module est disponible seulement dans l’édition Enterprise.

Description - SDK 1.0 (Version précédente 6.0)

SDK 1.0 sert à créer des modules d’extension pour les versions 5.8 et 5.9 seulement.

Download_ArrowTélécharger l’aide de SDK 1

Note : Si vous voyez ceci, vous devez débloquer le fichier dans les propriétés afin de pouvoir l’afficher.

Schéma SDK 1 SDK 1.0 Schema

Description - SDK 2.0

Dans la version 6.0 de Remote Desktop Manager, nous avons mis à jour le SDK et créé de nouvelles fonctionnalités. Consultez la section « Quoi de neuf » ci-bas pour voir la liste. Pour plus d’informations, consultez la documentation et le schéma.

Download_ArrowTélécharger l’aide de SDK 2

Note : Si vous voyez ceci, vous devez débloquer le fichier dans les propriétés afin de pouvoir l’afficher.

Schéma SDK 2
SDK 2.0 Schema

Nouveautés dans SDK 2

IAddOnServices2
  • Ajout de la propriété ApplicationIcon
  • Ajout des propriétés DisableLocalPassword et DisableSharedPassword
  • Ajout de la propriété DefaultFont
  • Ajout de GetApplicationSetting / SaveApplicationSetting pour lire une option à partir du XML de l’application
  • Ajout de GetGlobalAddOnSettings / SaveGlobalAddOnSettings pour enregistrer les paramètres partagés spécifiques du module
  • Ajout d’une façon standard d’afficher un message (ShowMessage)
  • Ajout de méthodes standards ShowWaitProgress / HideWaitProgress
  • Ajout d’une boîte de messages ShowRequiredInstall
  • Ajout de ShowLogFile pour afficher le contenu d’une chaîne de caractères (string)
IApplicationToolAddOn
  • L’application gère correctement un UserControl intégré
IEmbeddedSessionUserControl2
  • Ajout d’une propriété (CanClose) indiquant si le contrôle de l’utilisateur peut être fermé
  • Ajout d’une liste de commandes spéciales pouvant s’exécuter dans des sessions ouvertes. Ex : Envoyer Ctrl+Alt+Supprimer
  • Ajout d’une notification (Disconnecting) qui apparaît juste avant la déconnexion
  • Ajout d’une méthode servant à se reconnecter
ISession2
  • Ajout d’un accès direct aux propriétés de la session du module (ISessionAddOnData)
  • Ajout de la propriété CredentialConnectionID
ISessionAddOn3
  • Ajout de la prise en charge du coffre et des identifiants en lot
  • Ajout de la prise en charge de la journalisation de la fermeture d’une session
  • Ajout d’une liste d’actions personnalisées dans une session. Par exemple, une action pourrait arrêter une machine virtuelle.
  • Ajout d’une fonctionnalité de reconnexion
  • Ajout d’une liste de mots clés pour le type de session
  • Exposition de ConnectExternal avec plus de paramètres
  • Exposition de CreateEmbeddedFrame avec plus de paramètres
  • Ajout de la possibilité d’obtenir les détails de la session (GetParameterDetails)
ISessionDataSourceAddOn (Édition Enterprise seulement)
  • Ajout de la possibilité de créer une source de données personnalisée avec des fonctionnalités de base
ISessionEditorUserControl2
  • Ajout de la possibilité d’exposer l’hôte (par exemple, pour trouver l’adresse MAC)
  • Ajout d’une propriété (ParentDialog) pour communiquer avec la boîte de dialogue parent afin d’assigner et d’effacer l’image
  • Ajout d’une notification (NotifyCredentialRepositoryModeChanged) lors d’une modification du mode de coffre d’identifiants
ISessionToolAddOn2ISessionToolAddOn2
  • Ajout de la possibilité d’exécuter un outil sur plusieurs sessions en même temps.
IVPNAddOn2
  • Ajout de la prise en charge du coffre d’identifiants

Tutoriels

Nous avons créé un tutoriel afin de montrer les bases du développement d’un module Bloc-notes pour Remote Desktop Manager.

Plusieurs autres extraits de code source sont disponibles ici.

Astuces

  • L’infrastructure du module offre plusieurs services. Utiliser la méthode statique de la classe AddOnServices pour :
    • Chiffrer / déchiffrer un mot passe enregistré dans votre module
    • Enregistrer un paramètre de chemin d’installation
    • Ajouter une entrée du journal dans le fichier journal des applications
  • Pour assurer la sécurité des informations, il est recommandé d’utiliser le contrôle PasswordTextBox pour vos données sensibles. Ce composant n’expose pas le mot de passe comme le Textbox par défaut de .NET Framework.
  • Une autre classe utile est ProcessArgumentBuilder. Cette classe sert à générer une chaîne de caractères comme paramètre de ligne de commande.

Modules d’extension les plus demandés

Si vous désirez participer dans le développement de l’un de ces modules d'extension, veuillez nous contacter.
Nous pourrions alors discuter d’un montant forfaitaire pour votre travail.

  • Module Adminpak
  • Module Croosloop**
  • Module Cygwin
  • Module Go2MyPC
  • Module Mikogo
  • Module MultiDesk**
  • Module NetViewer
  • Module Quest vWorkspace
  • Module Remotely Anywhere
  • TN5250 add-on

** Impossible de l’intégrer présentement.