C# VNC Server

Could I have some tips or pointers on possibly creating from scratch a C# VNC Server or is there possibly already a Server creating, such as VNCSharp library for client, which gives me objects to create on easily.

Other than that, does anyone have any websites to talk me though the basic VNC protocol and using RFB or another way to capture the screen and send it to another device for rendering? Also, just like VNC, sending mouse positioning and being able to control the PC from the client is a must.

Thank you!