wiki:GuiUpdateProject

Version 4 (modified by Samuli Seppänen, 12 years ago) (diff)

--

Introduction

Historically, there have been many, many client GUIs for OpenVPN. Practically all are work of a one person, and many of them are completely unmaintained. Here's a snapshot (12th May 2011) of native Windows GUIs from our related project list:

There are also tons of inactive client GUI projects and probably dozens of in-house client GUI implementations. This fragmentation of development effort hurts both users (who never get to use a really good GUI) and developers (who have to reinvent the wheel over and over again).

OpenVPN project has distributed an OpenVPN-GUI with it's Windows installers for years, but core OpenVPN developers have put very little emphasis on developing the GUI; this is understandable, as it's outside the scope of the project. OpenVPN releases prior to 2.3-alpha1 included a very old (released 2005) OpenVPN-GUI. Releases starting with 2.3-alpha1 use a more modern OpenVPN-GUI.

Here's a list of potential reasons why so many OpenVPN GUIs exist:

  • Existing GUI(s) are lacking some special functionality
  • Hacking together a customized GUI is relatively easy
  • Making a good-quality general purpose GUI requires lots of work
  • Working with others necessarily means extra development overhead
  • Most GUI projects are small and don't show up anywhere (except our related projects list)

There are a few steps between now and a general purpose GUI:

  • Find out the most common GUI features people need (and implement those)
  • Merge existing projects together (if possible)

Requirements

Functional requirements

Describe what is the core reason why this applications exists. These should be visible to the user.

  • Create a tunnel
  • Close down a tunnel
  • Support multiple OpenVPN configuration files

Non-functional requirements

These describe the qualities of the application, such as look and feel and performance.

  • Operates from the system tray

Constraints

These are similar to non-functional requirements, but imposed upon from outside.

  • Must run on Windows XP SP3 and above
  • Must use the management interface