Nouvelles

Modernisation de la base de code de RDM : un voyage de 2008 à 2024

Modernization of remote desktop manager rdm devolutions blog

Remote Desktop Manager (RDM) a connu une évolution remarquable depuis ses débuts en 2008 en tant qu’outil de test pour Internet Explorer jusqu'à devenir une solution complète et intégrative avec des capacités multiplateformes. Cet article met en lumière le parcours de modernisation de la base de code de RDM. Découvrez comment ces avancées, ainsi que notre engagement envers l'innovation et la productivité, permettent à RDM de répondre aux besoins évolutifs des professionnels de l'informatique.

David Hervieux

David Hervieux possède plus de 18 années d'expérience dans le domaine du développement logiciel. En tant que président-directeur général de Devolutions, il élabore la stratégie de l'entreprise et supervise le développement des produits.

Après avoir fondé Devolutions inc. en 2004, dans le but d’offrir des services de consultation en logiciel, M. Hervieux a changé la mission de l’entreprise dès 2010 afin de développer des solutions logicielles clés en main. Aujourd’hui, Devolutions est le chef de file mondial sur le marché de la gestion des connexions à distance et des mots de passe, avec plus de 350 000 utilisateurs dans plus de 140 pays.

Parlant du succès de Devolutions, M. Hervieux attribue cela à sa grande expérience dans l’architecture de logiciels, à son esprit entrepreneurial, son intelligence en affaires et son sincère dévouement à satisfaire les besoins de ses clients. Sa vision et son travail acharné ont été soulignés à l’événement Vision PDG durant lequel il a remporté le prix du PDG de l’année, remis conjointement par l’Association québécoise des technologies et Investissement Québec.

Afficher plus d'articles

Remote Desktop Manager (RDM) a parcouru un long chemin depuis sa création en 2008. Ce qui a commencé comme un projet secondaire pour tester Internet Explorer 6, 7 et 8 est rapidement devenu un outil, un produit, puis une plateforme complète intégrée à Devolutions Server et Devolutions Hub. En tant que fondateur et développeur principal de RDM, j’ai eu le privilège d’observer et de guider cette transformation. Dans ce blog, je partagerai des perspectives sur la modernisation de la base de code de RDM, depuis nos débuts modestes avec WinForms jusqu'à notre parcours multiplateforme actuel.

De WinForms à .NET 9 : bâtir sur une base solide

Lorsque j’ai commencé à développer RDM, j’ai choisi WinForms avec DevExpress pour sa simplicité et sa fiabilité. Au fil des années, cette infrastructure nous a permis de maintenir une base de code propre et à jour tout en tirant parti des dernières avancées de .NET. Malgré notre satisfaction avec WinForms, sa principale limitation reste l'absence de prise en charge multiplateforme, un enjeu de plus en plus important à mesure que RDM s’est étendu à Windows, macOS, Linux, Android et iOS.

L’année dernière a marqué une étape majeure pour notre équipe avec l’achèvement de la première phase de modernisation : la mise à niveau de tous nos projets vers .NET 8 dans la version 2024.1. Cet accomplissement a nécessité un travail considérable, mobilisant engagement et collaboration à tous les niveaux. Cette transition nous a offert une base solide, garantissant à la fois des performances optimales et une meilleure compatibilité. Pour la suite, nous sommes impatients de poursuivre ce parcours en passant à .NET 9 cette année.


Une vieille capture d'écran de RDM
Une vieille capture d'écran de RDM

Surmonter les défis de l'interface utilisateur avec WebView2

Pour unifier nos composants d’interface utilisateur sur toutes les plateformes, nous avons adopté WebView2, ce qui nous a permis de partager une grande partie de l’IU (interface utilisateur) entre les plateformes, réduisant ainsi la duplication et simplifiant le développement. Toutefois, l’utilisation de WebView2 a posé certains défis, en particulier sur les plateformes mobiles. Contrairement aux environnements de bureau, où l’on pourrait contourner certaines limitations avec un serveur HTTP local pour servir le contenu, cette approche n’est pas viable sur mobile. Nous avons donc dû générer directement le code et le contenu nécessaires, ajoutant ainsi de la complexité au processus de développement.

Malgré ces défis, WebView2 a joué un rôle clé dans l’implémentation de fonctionnalités comme les tableaux de bord, les rapports et d’autres outils à venir. Cependant, ses limites sur les plateformes mobiles et la demande croissante pour des expériences utilisateur plus natives nous ont poussés à explorer des solutions alternatives.

Adopter Avalonia UI : une nouvelle ère pour le développement multiplateforme

Avalonia UI s'est révélé être un véritable atout pour RDM en offrant une infrastructure unifiée permettant de créer des composants d’interface utilisateur multiplateformes à la fois performants et visuellement cohérents. Avant d’adopter Avalonia, nous devions réimplémenter les composants IU pour chaque plateforme, ce qui entraînait une duplication des efforts et rallongeait les cycles de développement. Grâce à Avalonia, nous pouvons désormais simplifier le développement, réduire la redondance et garantir une expérience fluide et homogène sur toutes les plateformes.

Ce changement améliore non seulement l’expérience utilisateur, mais il nous permet aussi d’introduire de nouveaux outils et fonctionnalités sur plusieurs plateformes plus rapidement que jamais. Avalonia UI nous donne les moyens d’innover plus efficacement, en faisant un élément clé de notre stratégie de développement future.

Migration de C vers Rust et .NET : priorité à la sécurité et aux performances

Une autre initiative majeure a été la migration de notre base de code pour s’éloigner de C et C++, en conformité avec les recommandations gouvernementales privilégiant les langages à sécurité mémoire. Nous avons adopté Rust pour de nombreuses implémentations de protocoles, notamment RDP (en intégrant IronRDP comme alternative plus sûre à FreeRDP), VNC, ARD et d’autres. Les garanties de sécurité et les performances de Rust en font un choix idéal pour ces composants critiques.

Nous avons également tiré parti des récentes avancées de .NET, comme la fonctionnalité Span, qui a permis à notre implémentation SSH d’atteindre des performances équivalentes, voire supérieures, à celles des implémentations natives en C. Cette transition renforce notre engagement à fournir une base de code entièrement managée, axée sur la sécurité et la maintenabilité.

Des capacités multiplateformes uniques

Nos efforts de modernisation ont abouti à des composants que même certains éditeurs de solutions propriétaires n’offrent pas, notamment :

  • Une pile PowerShell WinRM basée sur le web.
  • Une pile SSPI robuste écrite en Rust.
  • À notre connaissance, le seul client Apple Remote Desktop basé sur le web disponible sur le marché.

Ces innovations nous permettent de relever de nouveaux défis et de continuer à proposer des outils abordables et performants aux professionnels de l’informatique. Un autre avantage de Rust est son adoption native de WebAssembly comme plateforme cible, avec certains des meilleurs outils disponibles pour cette technologie. Cela nous permet d’utiliser directement des bibliothèques Rust dans le navigateur, ouvrant ainsi de nouvelles perspectives pour les clients web.

Perspectives d’avenir

Notre parcours de modernisation est loin d’être terminé. Dans notre quête d’une plateforme toujours plus performante, nous restons déterminés à exploiter les technologies de pointe et à collaborer avec les leaders du secteur. En adoptant des bibliothèques entièrement managées, nous visons à établir de nouveaux standards en matière de performance, de sécurité et de compatibilité multiplateforme.

Au cœur de cette évolution se trouve notre engagement envers les professionnels de l’informatique. Nous avons à cœur de simplifier leur travail, d’améliorer leur productivité et de proposer des outils qui s’adaptent à leurs besoins en constante évolution. Avec une base de code robuste et modernisée, nous sommes bien positionnés pour poursuivre cette mission pendant de nombreuses années. Nous sommes impatients de vous avoir à nos côtés dans cette aventure et de continuer à innover ensemble.

Articles similaires

Lire plus d'articles dans la section Nouvelles