Products

Modernizing the codebase of RDM: A journey from 2008 to 2024

Modernization of remote desktop manager rdm devolutions blog

Remote Desktop Manager (RDM) has undergone a remarkable evolution from its early days in 2008 as a tool for testing Internet Explorer to becoming a comprehensive, integrative solution with cross-platform capabilities. This article highlights the modernization journey of RDM's codebase. Discover how these advancements and our commitment to innovation and productivity position RDM to meet the evolving needs of IT professionals.

David Hervieux

David has over 15 years of experience in software development. As President and CEO, David is responsible for Devolutions’ corporate strategy, and for overseeing product development. After establishing Devolutions inc. in 2004 as a software consulting service, David evolved the company’s mission in 2010 to focus on turn-key software solutions. Today, with over 800,000 users in more than 140 countries, Devolutions is a leader in the field. Reflecting on Devolutions’ success, David credits his extensive experience in software architecture, his entrepreneurial spirit, his solid foundation of business intelligence, and a total commitment to satisfying customers. David holds several certifications in the IT field, and earned his Computer Science diploma from the University of Montreal.

View more posts

Remote Desktop Manager (RDM) has come a long way since its inception in 2008. What started as a side project to test Internet Explorer 6, 7, and 8 soon evolved into a tool, a product, and eventually, a comprehensive platform integrated with Devolutions Server and Devolutions Hub. As the founder and principal developer of RDM, I’ve been privileged to witness and steer this transformation. In this blog, I’ll share insights into the modernization of RDM’s codebase, from our humble beginnings with WinForms to our current multi-platform journey.

From WinForms to .NET 9: Building on a strong foundation

When I began developing RDM, I chose WinForms with DevExpress for its simplicity and reliability. Over the years, this framework has allowed us to maintain a clean, updated codebase while leveraging the latest advancements in .NET. Despite our satisfaction with WinForms, its inherent limitation is its lack of cross-platform support, which became a growing concern as RDM expanded to support Windows, macOS, Linux, Android, and iOS.

Last year marked a significant milestone for our team as we completed the first phase of modernization by upgrading all our projects to .NET 8 in version 2024.1. This achievement was a huge effort, requiring dedication and collaboration across the board. It has provided us with a solid foundation to build on, ensuring both optimal performance and compatibility. Looking ahead, we are excited to continue this journey by transitioning to .NET 9 this year.


An old screenshot of RDM
An old screenshot of RDM

Overcoming UI challenges with WebView2

To unify our UI components across platforms, we adopted WebView2, which allowed us to share significant portions of the UI between platforms, reducing duplication and streamlining development. However, using WebView2 came with challenges, particularly on mobile platforms. Unlike desktop environments, where it might have been possible to leverage a workaround such as a local HTTP server to serve content, this approach is not feasible on mobile. Consequently, we had to generate the necessary code and content directly, adding complexity to the development process.

Despite these challenges, WebView2 has been instrumental in enabling features like dashboards, reports, and other upcoming tools. However, its limitations on mobile platforms and the growing demand for native-like user experiences have driven us to explore alternative solutions.

Embracing Avalonia UI: A new era of cross-platform development

Avalonia UI has proven to be a game-changer for RDM by providing a unified framework for creating cross-platform UI components that are both performant and visually consistent. Before adopting Avalonia, we had to reimplement UI components for each platform, leading to duplication of effort and slower development cycles. With Avalonia, we can now streamline development, reducing redundancy while ensuring a seamless and consistent experience across platforms.

This shift not only enhances the user experience but also positions us to bring new tools and features to multiple platforms faster than ever before. Avalonia UI empowers us to innovate more efficiently, making it a cornerstone of our future development strategy.

Migrating from C to Rust and .NET: Prioritizing security and performance

Another major initiative has been the migration of our codebase away from C and C++ to comply with government recommendations favoring memory-safe languages. We’ve embraced Rust for many of our protocol implementations, including RDP (integrating IronRDP as a safer alternative to FreeRDP), VNC, ARD, and others. Rust’s safety guarantees and performance make it an ideal choice for these critical components.

We’ve also leveraged .NET’s recent advancements, such as the Span feature, which has enabled our SSH implementation to achieve performance on par with, or even exceeding, native C implementations. This shift has reinforced our commitment to delivering a fully managed codebase that prioritizes security and maintainability.

Unique cross-platform capabilities

Our modernization efforts have yielded components that even first-party vendors lack, such as:

  • A web-based PowerShell WinRM stack
  • A robust SSPI stack written in Rust
  • To our knowledge, the only web-based Apple Remote Desktop client available on the market

These innovations empower us to tackle future challenges and continue providing affordable and productive tools for IT professionals. An added benefit of Rust is that it embraced WebAssembly as a target platform and has some of the best tooling for it. This makes it possible to use Rust libraries directly in the browser and opens up new possibilities for web-based clients.

Looking ahead

Our modernization journey is far from over. As we strive to offer an even better platform, we remain committed to leveraging cutting-edge technologies and collaborating with industry leaders. By transitioning to fully managed libraries, we aim to set new standards for performance, security, and cross-platform compatibility.

At the heart of it all is our dedication to IT professionals. We’re passionate about simplifying their work, enhancing productivity, and delivering tools that adapt to their evolving needs. With a robust and modernized codebase, we’re well-positioned to continue achieving this mission for years to come. We look forward to having you alongside us on this journey and continuing to grow together as we push the boundaries of innovation.

Related Posts

Read more Products posts