VncSharp: A .NET VNC Client Library
VncSharp is a Free and Open Source (GPL) implementation of the VNC Remote Framebuffer (RFB) Protocol for the .NET Framework. VNC (Virtual Network Computing) is a cross-platform client/server protocol allowing remote systems to be controlled over a network.
VNC was originally developed at AT&T Laboratories in Cambridge and is now being developed by RealVNC in the UK. You can download VNC clients and servers from RealVNC's website, or from a number of other parallel development projects.
VncSharp is a VNC Client Library and custom Windows Forms Control. VncSharp is also free software, released under the GPL. You can freely use VncSharp to bundle VNC functionality into your own .NET applications simply by dragging and dropping a control onto your form.
You can download the binaries and source code on the Download page.
Technical Details
VncSharp is written in C# and serves as a good example of building custom controls in .NET. What began as a port of the Java client evolved into a complete rewrite to take advantage of both C#'s and the .NET Framework's strengths. VncSharp supports all known versions of the RFB Protocol from 3.3 onward, including the newly released 3.8. You can read more about how VncSharp was written and how you can use it on the Documentation page.
What’s Left TODO?
The code is in beta form, and not yet finished. While the code works well, there are still a few features to implement and some known issues. There is no fixed date for a v.1.0 release. As time permits we will finish the rest, however none of us is working on this fulltime.
If you'd like to contribute and finish or fix something, please feel free and do so by sending code or comments to David Humphrey. Please also send any bug reports or other comments.
Here's a list of items still on our TODO list:
- The ZRLE encoding still needs to be implemented.
- As of RFB 3.7 there are some other esoteric encodings and extensions that we haven’t touched, most notably the ability to handle mouse cursor redraws at the client-side. This would be nice to add.
- We’d like to see this code compile under Mono and Dot GNU, but haven’t finished testing this yet. Nothing in the code ties this to Microsoft or Windows.
- It would be great to see VncSharp compiled against the Compact Framework for use on Mobile Devices.
- Finally, interested developers are asked to examine the code, which has been fully documented. In it you will find various TODO, HACK, and FIXME comments. There is still plenty of fun to be had!
Who Wrote it?
VncSharp was written by professor David Humphrey and two former Seneca students, Matt Cyr and Chuck Borgh. We were looking for a way to procrastinate during exams, and this seemed like just the thing.