Aktuelles

Modernisierung der Codebasis von RDM Eine Reise von 2008 bis 2024

Modernization of remote desktop manager rdm devolutions blog

Remote Desktop Manager (RDM) hat seit seinen Anfängen im Jahr 2008 als Tool zum Testen des Internet Explorers eine bemerkenswerte Entwicklung durchlaufen und sich zu einer umfassenden, integrativen Lösung mit plattformübergreifenden Funktionen entwickelt. Dieser Artikel beleuchtet den Modernisierungsprozess der Codebasis von RDM. Entdecken Sie, wie diese Fortschritte und unser Engagement für Innovation und Produktivität RDM in die Lage versetzen, den wandelnden Anforderungen von IT-Experten gerecht zu werden.

David Hervieux

David verfügt über mehr als 15 Jahre Erfahrung in der Softwareentwicklung. Als Präsident und CEO ist er für die Unternehmensstrategie von Devolutions sowie die Produktentwicklung verantwortlich. Nachdem er Devolutions Inc. 2004 als Software-Beratungsunternehmen gegründet hatte, änderte er 2010 die Mission des Unternehmens, um sich auf schlüsselfertige Softwarelösungen zu konzentrieren. Heute ist Devolutions mit über 800.000 Nutzern in mehr als 140 Ländern ein führendes Unternehmen in diesem Bereich.

Rückblickend auf den Erfolg von Devolutions schreibt David diesen seiner umfassenden Erfahrung in der Softwarearchitektur, seinem Unternehmergeist, seiner soliden Grundlage in Business Intelligence und seinem absoluten Engagement für die Kundenzufriedenheit zu. David besitzt mehrere IT-Zertifizierungen und hat sein Informatik-Diplom an der Universität Montreal erworben.

View more posts

Remote Desktop Manager (RDM) hat seit seinen Anfängen im Jahr 2008 einen langen Weg zurückgelegt. Was als Nebenprojekt zum Testen von Internet Explorer 6,7 und 8 begann, entwickelte sich schon bald zu einem Tool, einem Produkt und schließlich in Kombination mit Devolutions Server und Devolutions Hub zu einer umfassenden Plattform. Als Gründer und Hauptentwickler von RDM hatte ich das Privileg, diesen Wandel mitzuerleben und zu lenken. In diesem Blog gebe ich Einblicke in die Modernisierung der Codebasis von RDM, von unseren bescheidenen Anfängen mit WinForms bis zu unserer aktuellen Multiplattform-Reise.

Von WinForms zu .NET 9: Auf einem starken Fundament aufbauen

Als ich mit der Entwicklung von RDM begann, habe ich mich wegen seiner Einfachheit und Zuverlässigkeit für WinForms mit DevExpress entschieden. Im Laufe der Jahre hat dieses Framework es ermöglicht, eine saubere, aktuelle Codebasis zu pflegen und gleichzeitig die neuesten Fortschritte in .NET zu nutzen. Obwohl wir mit WinForms zufrieden waren, ist die fehlenden plattformübergreifenden Unterstützung eine inhärente Einschränkung, die zu einem wachsenden Problem wurde, als RDM erweitert wurde, um Windows, macOS, Linux, Android and iOS zu unterstützen.

Das vergangene Jahr war ein wichtiger Meilenstein für unser Team, denn wir haben die erste Phase der Modernisierung abgeschlossen, indem wir alle unsere Projekte in der Version 2024.1 auf .NET 8 umgestellt haben. Diese Leistung war eine enorme Anstrengung, die das Engagement und die Zusammenarbeit aller Beteiligten erfordert hat. Sie hat uns eine solide Grundlage verschafft, auf der wir aufbauen können, um sowohl optimale Leistung als auch Kompatibilität zu gewährleisten. Wir freuen uns darauf, diese Reise fortzusetzen und noch in diesem Jahr auf .NET 9 umzusteigen.


Ein alter Screenshot von RDM
Ein alter Screenshot von RDM

UI-Herausforderungen mit WebView2 überwinden

Um unsere UI-Komponenten plattformübergreifend zu vereinheitlichen, setzten wir WebVIew2 ein, das es uns ermöglichte, große Teile der UI auf verschiedenen Plattformen gemeinsam zu nutzen und so doppelte Arbeit zu vermeiden und die Entwicklung zu rationalisieren. Allerdings war die Verwendung von WebView2 mit Herausforderungen verbunden, insbesondere auf mobilen Plattformen. Im Gegensatz zu Desktop-Umgebungen, wo es möglich gewesen wäre, einen Workaround wie einen lokalen HTTP-Server für die Bereitstellung von Inhalten zu nutzen, ist dieser Ansatz auf mobilen Geräten nicht durchführbar. Folglich mussten wir den erforderlichen Code und Inhalt direkt generieren, was den Entwicklungsprozess noch komplexer machte.

Trotz dieser Herausforderungen hat WebView2 entscheidend dazu beigetragen, Funktionen wie Dashboards, Berichte und andere kommende Tools zu ermöglichen. Die Einschränkungen auf mobilen Plattformen und die wachsende Nachfrage nach nativen Nutzererfahrungen haben uns jedoch dazu veranlasst, nach alternativen Lösungen zu suchen.

Einführung von Avalonia UI: Eine neue Ära der plattformübergreifenden Entwicklung

Avalonia UI hat sich für RDM als bahnbrechend erwiesen, da es ein einheitliches Framework für die Erstellung plattformübergreifender UI-Komponenten bietet, die sowohl leistungsstark als auch visuell konsistent sind. Vor der Einführung von Avalonia mussten wir UI-Komponenten für jede Plattform neu implementieren, was zu doppeltem Aufwand und langsameren Entwicklungszyklen führte. Mit Avalonia können wir nun die Entwicklung rationalisieren, Redundanzen reduzieren und gleichzeitig eine nahtlose und konsistente Erfahrung auf allen Plattformen gewährleisten.

Diese Umstellung verbessert nicht nur die Nutzererfahrung, sondern versetzt uns auch in die Lage, neue Tools und Funktionen schneller als je zuvor auf mehrere Plattformen zu bringen. Avalonia UI ermöglicht uns effizientere Innovationen und ist damit ein Eckpfeiler unserer zukünftigen Entwicklungsstrategie.

Umstellung von C auf Rust und .NET: Vorrang für Sicherheit und Leistung

Eine weitere wichtige Aktion war die Migration unserer Codebasis weg von C und C++, um den Empfehlungen der Regierung zu entsprechen, die speichersichere Sprachen bevorzugen. Wir haben Rust für viele unserer Protokollimplementierungen eingeführt, darunter RDP (wobei IronRDP als sicherere Alternative zu FreeRDP integriert wurde), VNC, ARD und andere. Die Sicherheitsgarantien und die Leistung von Rust machen es zu einer idealen Wahl für diese kritischen Komponenten.

Wir haben auch die jüngsten Fortschritte von .NET genutzt, wie z. B. die Span-Funktion, die es unserer SSH-Implementierung ermöglicht hat, eine Leistung zu erreichen, die mit nativen C-Implementierungen vergleichbar ist oder diese sogar übertrifft. Dieser Wechsel hat unser Engagement für die Bereitstellung einer vollständig verwalteten Codebasis bekräftigt, bei der Sicherheit und Wartungsfreundlichkeit im Vordergrund stehen.

Einzigartige plattformübergreifende Funktionen

Unsere Modernisierungsbemühungen haben Komponenten hervorgebracht, die selbst bei Erstanbietern fehlen, wie z. B.:

  • Ein webbasierter PowerShell WinRM-Stack
  • Ein solider, in Rust geschriebener SSPI-Stack
  • Nach unserem Kenntnisstand der einzige webbasierte Apple Remote Desktop-Client, der auf dem Markt erhältlich ist.

Mit diesen Innovationen sind wir in der Lage, künftige Herausforderungen zu meistern und weiterhin erschwingliche und produktive Tools für IT-Experten bereitzustellen. Ein zusätzlicher Vorteil von Rust besteht darin, dass es WebAssembly als Zielplattform integriert hat und über einige der besten Tools dafür verfügt. Dadurch ist es möglich, Rust-Bibliotheken direkt im Browser zu verwenden, wodurch sich neue Möglichkeiten für webbasierter Clients eröffnen.

Ein Blick in die Zukunft

Unsere Modernisierungsreise ist noch lange nicht zu Ende. In unserem Bestreben, eine noch bessere Plattform anzubieten, setzen wir uns weiterhin für die Nutzung modernster Technologien und die Zusammenarbeit mit Branchenführern ein. Mit der Umstellung auf vollständig verwaltete Bibliotheken wollen wir neue Standards für Leistung, Sicherheit und plattformübergreifende Kompatibilität setzen.

Im Mittelpunkt steht dabei unser Engagement für IT-Experten. Unsere Leidenschaft ist es, ihre Arbeit zu vereinfachen, die Produktivität zu steigern und Tools bereitzustellen, die sich an ihre sich entwickelnden Bedürfnisse anpassen. Mit einer soliden und modernisierten Codebasis sind wir gut positioniert, um diese Mission auch in den kommenden Jahren zu erfüllen. Wir freuen uns darauf, Sie auf dieser Reise an unserer Seite zu haben und gemeinsam weiter zu wachsen, während wir die Grenzen der Innovation erweitern.

Related Posts

Read more Aktuelles posts