Half-Blood Programmer

A Call to The Community: DockPanel Suite History and Future

This post may be revised and finally published to https://github.com/dockpanelsuite/dockpanelsuite/wiki. Please visit there if you want to receive updates.
DockPanel Suite homepage is now at http://dockpanelsuite.com.
Microsoft first introduced the docking panel layout in Visual Studio .NET (2002), and soon it became popular in application design. Many commercial .NET component vendors started to provide docking libraries initially, but there was no good free and open source alternative, until WeiFen Luo released DockPanel Suite (DPS for short) on SourceForge.net in 2006.
 
 
WeiFen Luo’s Efforts and Early Years
Its 1.0 release was available on Feb 13, 2006, one day before the Valentine’s day [1]. From the SVN repository we could no longer find the commits earlier than Mar 2, 2007. Therefore, we don’t know exactly when WeiFen decided to implement this docking library and the day he started.
 
This release has been downloaded more than 57,000 times on SF.net alone (binaries + source package), which is a huge success.
 
After that, WeiFen published several new releases. Release 2.2 was available on Nov 04, 2007 (more than 68,000 downloads)[2], and release 2.3 was available on May 08, 2009 (more than 68,000 downloads)[3].
 
Danilo Corallo wrote an article titled “A Visual Studio 2005-like Interface”[4] on CodeProject.com initially on Jun 06, 2006 to introduce this library for broader audience. The article has been reviewed for more than 586,000 times with an average rate of 4.89. This article was last updated on 22 Jan, 2007, so it only targets DPS 1.0. However, DPS 2.0 and above do contains breaking changes, so the sample of this article does not work with newer DPS releases.
 
SharpDevelop [5], the open source C#/VB.NET IDE, has chosen DPS as its docking library for years (till SD 4.0 migrates to WPF and uses AvalonDock [6] instead of DPS). It is interesting that from SD code base, DPS source files appeared as early as Jan 04, 2005 [7].
 
On Aug 16, 2009, WeiFen wrote in a discussion thread, that he would like to move this project to CodePlex.com [8]. However, this move was never carried out. But in this thread WeiFen linked one of his important blog posts on DPS [9], which documented his ideas on why WPF based docking library is better. WeiFen’s interest has been moved to WPF side product called WPF Docking [10].
 
Extended Maintenance by Steve Overton
Steve Overton stepped up and started to maintain this library in 2010 [11]. He managed to release 2.4 on Oct 30, 2010 with a few patches [12]. For the first time, DPS is released with binaries/source code/release notes. This release has been downloaded over 8000 times. Soon release 2.5.0 (with RC1 flag) was available on Nov 25 the same year with more patches included [13]. This is the last stable release that can be found on SF.net with accumulated downloads of 61,000.
 
Sidenote on My Work
I have been a DockPanel Suite user since 2007, where I used this great library in a commercial product. DPS is also used in my open source project #SNMP [14]. My main interest is how to use it on Mono and other operating systems. My attempt was initialized in May 2010 [15], and finalized in Feb 2012 [16].
This patch, as well as many other patches of DPS, has not been reviewed or merged to the trunk, which makes it again difficult for users to make use of them.
 
Sidenote on New Implementation
There is a new implementation published on CodePlex for DPS [17]. It claims that with the changes it resolves many DPS known issues. But whether its changes can be ported back to DPS is still under investigation.
 
New Hope and A Call to The Community
Frustrated DPS users started to discuss about the future of this project [18], and soon some agreed to create a fork on GitHub [19].
 
The new repository was created using svn2git [20] by me, and now is hosted on GitHub under dockpanelsuite organization,
 
 
The short term plan is to merge all existing/known patches for DPS 2.5 release, and prepare a 2.6 release. New features may appear in 3.0 release [21].
 
As NuGet becomes a new channel to distribute libraries, DPS 2.6 will also be available via NuGet [22].
 
If you have any patch to share, or you would like to help contribute to this new fork, please consider the following,
 
Guide on Submitting Patches
Note that you don’t need to create any issue, as a new issue will be automatically created when you finish step 4.
 
1. Learn about GitHub via http://help.github.com/.
3. Make the changes on your fork, and test it fully.
4. Create a pull request back.
 
Patches will be reviewed and merged as early as possible.
 
Guide on Reporting Bugs/Starting Discussions
Note that if you already have a patch for the issue you meet, please follow “Guide on Submitting Patches”.
 
1. Learn about GitHub via http://help.github.com/.
 
You may also use SF.net tracker [23], but it is not recommended. Issues recorded on SF.net may be gradually fixed in this fork.
 
References