Thursday, April 1, 2010

The birth of Envy project


“Envy” goes for an advanced environment variables editor that has a standalone version as well as plug-ins for various IDE.

The very idea of creating such kind of stuff came spontaneously to me and Denis Krjuchkov while we were discussing the upcoming release of Visual Studio 2010 in terms of compatibility with plug-ins made for the previous versions (VS 2005/2008). As you know, both of us at the current moment work for X-tensive company in a rather ambitious project called DataObjects.Net 4. In the project the approach with unit tests configuration through specialized environment variables is widely used.

In order to cope with such kind of task Tytan.Net plug-in for Visual Studio 2005/2008 is utilized. It provided the ability to manage environment variables of Visual Studio's process, but unfortunately had several minor drawbacks, for example, environment variables editor had quite poor keyboard support, it has no ability to remember variable values set in previous sessions, etc. The most important one is the fact that the project's development had stopped, so there is no any chance that the plug-in for Visual Studio 2010 will ever be released.

Thus, we came to the idea that we should make an attempt to create at least a replacement for it, a better replacement, we hope. In addition, the standard environment variables editor in Windows OS is the ugliest thing I've ever seen, especially when you have to edit the PATH variable. You know what I'm talking about, don't you? =) So why don’t just kill two birds with one stone and create the plug-ins as well as standalone one?

The vision

We are going to deliver a convenient and user-friendly environment variables editor which can be used as a standalone applications or can be plugged-in into Visual Studio 2008/2010 and SharpDevelop.

List of features:

  1. Simple and intuitive user interface
  2. Full keyboard support
  3. Automatic multiline editing for variables with multiple values, such as PATH
  4. Standalone application – a replacement of standard Windows environment variables editor
  5. Plug-in for Visual Studio 2008/2010 & SharpDevelop
  6. Ability to save and load a set of variables from external files.

The roadmap

Version 0.1 – Standalone application, just a window which contains a grid with 3 columns: variable acope, name & value. The 2 latter columns are editable. The form contains 2 buttons: Save & Discard which updates environment variables and resets the state of the grid contents to initial one, accordingly. In-place name & value column editing & variable removing are possible.

Version 0.2 – The same standalone application but with some features such as:

  • Filtering by text pattern
  • Multiline editing
  • Adding new variable

Version 0.3 – The standalone application again, but with another set of features:

  • Full keyboard support
  • Variable values history (remember a list of previous values for variables)
  • Application settings & auto-update

Version 0.4 – Plug-in for Visual Studio 2008. The source code of Tytan.Net should be investigated in order to find out how to create and register a plug-in into Visual Studio. At this step the installer will be provided as well because the procedure of plug-in registration might require additional steps.

Version 0.5 – Plug-in for Visual Studio 2010. As it is reported that the plug-in API in Visual Studio 2010 changed significantly, this step might take more time than the previous one.

Version 0.6 – Plug-in for SharpDevelop 3/4.

In the future posts I’ll write more detailed information about our competitors, development model, software architecture and so on. Stay tuned.

Happy April Fools' Day! =)


  1. You should add several intermediate versions:

    Version 0.3.5 Mouse wheel support.

    Version 0.5.5 Universal plugin/installer that can be used in VS2008 and in VS2010

    Version 0.7 Version for social networks. It should allow to monitor user's status and atomatically change environment variables.

    Version 0.8 Optimiation - use F#

    Version 0.9 Optimization - rewrite in pure C

    Version 0.9.9 Back to C# and use DataObjects as a history storage for all environment values ever changed by "envy"

    Future releases:

    N-tire application
    Cloud application

  2. Hello anonymous,

    Great ideas!
    Especially the mouse wheel support - we've absolutely forgotten about it!

    Moreover, when speaking about going public, we can launch a website where users will upload their favorite variables and download the most popular ones. In addition, we can invent the "Best environment variable" annual award. =)