This is a Windows tabbed remote desktop application whose UI was designed to resemble Chrome's. Currently it supports Microsoft's Remote Desktop Protocol (RDP), Secure Shell (SSH), Telnet, PowerShell, and VNC but has a plugin architecture designed to enable third-party support for other protocols such as Citrix, etc.
- Release installer
- CI installer
- Microsoft Store
- WinGet:
winget install easyconnect
- Chocolatey:
choco install easyconnect
For an example of implementing a protocol plugin, you can look at the EasyConnect.Protocols.Rdp
project. You'll want to reference EasyConnect.Common
and EasyConnect.Protocols
and then implement classes that inherit from the following base classes:
BaseConnection
- This holds the configuration for a connection using your protocol. Make sure to implement your ownISerializable
constructor and overrideGetObjectData()
.BaseConnectionForm<T>
- This is the form that contains the actual UI controls and logic to create a connection using your protocol. The easiest thing to do is initially derive fromForm
, design the window (bear in mind that it will be displayed as a child of aPanel
control with aBorderStyle
ofNone
), and then change the base class toBaseConnectionForm<T>
.IOptionsForm
- This is the form that will allow the user to configure a connection using your protocol. LikeBaseConnectionForm<T>
, this will be displayed as a child of aPanel
control with aBorderStyle
ofNone
.BaseProtocol
- This serves simply to aggregate the previous classes and provide some display data for your new protocol.
That's it! Just make sure that the assembly for your protocol is in the EasyConnect directory and it will be picked up and used automatically by the application. The protocol plugin architecture is still evolving, so if you find limitations to the API or want other things added to enable you to implement your protocol, please feel free to contact me or send me a pull request. I'm also happy to accept pull requests for your protocol projects to include them in the main application.
This project is licensed under the GPL