Version 2.0

Here you can find a description of some new features/breaking changes/bug fixes of the new AvalonDock version (2.0).

I've rewritten AvalonDock 2.0 from scratch using a MVVM approach. In short there is a deep separation between the Model (that describes how the layout is composed), the ViewModel (which prepares the model to be consumed by the view) and the View (a set of stylizable controls that show the user controls).
I've put a lot of attention to WPF Logical/Visual tree managements:
  • There is one and only one logical tree which has the DockingManager as root. Even if a control is placed in a different window (Autohidden windows/floating windows) it always belong to the same logical tree (below the DockingManager).

Binding Issues
Version 1.* suffers of an annoying issue regarding binding that doesn't work for flyout panes and floating windows (for a detailed description of the problem please read Binding Issues. The problem here is that wpf logical tree is broken when a content is moved inside another window (like when user move a pane in a floating window).
Version 2.0 fixes this problem definitively.

MVVM Support
Using a MVVM approach in version 1.* is quite a challenge (you can find a great tutorial athttp://www.codeproject.com/KB/WPF/AvalonDockMVVM.aspx). Version 2.0 support natively MVVM because (as the logical tree is only one for DockingManager object) you can create your model and using the docking manager as the view.

Flyout windows perfomance
In version 1.* when a user put a content in autohide state a new window is created by AvalonDock. This windows must be synched in position and size with the docking manager. This leads to a performance issue because involves a lot of interop.
Version 2.0 use the same mechanism of VS 2010 (child windows with redirected logical tree) to show autohide windows increasing perfomance and stability.
For more info http://blogs.msdn.com/b/visualstudio/archive/2010/03/23/wpf-in-visual-studio-part-5-window-management.aspx

Floating Windows Aero Snap
Version 2.0 will support Aero Snap (http://blogs.msdn.com/b/visualstudio/archive/2009/11/05/tips-and-tricks-window-management-aero-snapping.aspx).

Floating Windows Integrated Docking
In Version 2.0 you'll be able to redock a dockable content inside a floating window (as happen in VS2010).

Focus and Activation
I'm working to mitigate/eliminate all the focus/activation problems that causes a lot of headache developing with version 1.2. This is what I've in mind (why not learn from masters :) : http://blogs.msdn.com/b/visualstudio/archive/2010/03/09/wpf-in-visual-studio-2010-part-3-focus-and-activation.aspx

Layout Serialization
In version 2.0 layout serialization/deserialization is much (much) more easy because layout is a model completely separated from the view. This will allow an easier integration with framework like PRISM/MEF.

WPF standard controls
In version 2.0 I've decided to use WPF standard controls, for example instead of creating a complex panel control I've used the standard grid panel. Using this approach I've reduced the number of classes/code to test and debug and the size of the resulting library.

Last edited Dec 23, 2011 at 3:21 PM by adospace, version 5

Comments

kcbtdev Sep 24, 2012 at 5:12 PM 
How is the restorelayout and savelayout functions performed now in 2.0? In the documentation it mentions in a second part will include this but cannot seem to find any links to part 2.

drukavina May 28, 2012 at 10:38 AM 
I'm also intereseted in migration. Considering the number of changes it feels like I'll have to rewrite it all. But I must say, it feels it will be worth it.

VictorLapin May 19, 2012 at 6:02 AM 
What about backward compatibility? How hard it will be to migrate apps from 1.3 to 2.0?

nordyj2001 Apr 13, 2012 at 3:41 PM 
Can't wait! I'm just starting a personal application that I would love to use AvalonDock on, but knowing that 2.0 is right around the corner, and will natively support MVVM, I can put it on hold until 2.0 is released. Awesome work so far, though, and can't wait for 2.0.

ptoluganti Mar 26, 2012 at 8:18 PM 
if i have multiple Anchorable in AnchorablesSource. Is there anything like as active Anchorable?

wblair8689 Feb 23, 2012 at 11:57 AM 
I second the vote for Prism Region adaptor. Although it sounds like it will be pretty easy to create one now with all of the MVVM changes.

floele Feb 21, 2012 at 6:17 AM 
Also looking forward to 2.0, your goals seem all highly valueable :)

Boinst Feb 15, 2012 at 11:08 PM 
I'm excited about v2. Thank you for the huge difference your library makes to our product.

DerekNash Jan 19, 2012 at 2:18 PM 
AvalonDock is a fantastic piece of work, and I'm really looking forward to seeing V2.0 in action! Keep up the great work!

ido_ran Jan 11, 2012 at 9:08 PM 
Can't wait for version 2.0. Hope it will have good support for RightToLeft flow direction as well.

skovour Jan 11, 2012 at 2:42 PM 
It is great to hear that Avalondock is getting redesigned. I am actively working on version 1.0 to integrate into our product line. Please consider including a feature to integrate avalondock into Prism Region Adapter. That would be a great feature provided you are already planning to make the control to support MVVM. Looking forward to get my hands on version 2.0.

adospace Jan 8, 2012 at 5:27 PM 
First commit to SVN later this week, thanks for your words!

tibel Jan 7, 2012 at 7:20 AM 
Sound great,
can't wait to get my fingers on...when you think you will publish the first version/source?

joachimb Dec 28, 2011 at 3:06 PM 
I am glad to hear that you continue development of this great control! The lack of MVVM in the old versions was the main stumbling block, but now I can hardly wait to get my hands on your first release with all those goodies in it! ;-)
Joachim

adospace Dec 24, 2011 at 1:17 PM 
I believe that layout docking interface like AvalonDock are hard to be integrated in the new metro UI interface with live tiles. Even VS2011 is built using the same layout manager of VS2010.
Maybe in the future AvalonDock could be based on WinRT stack but for now I'm committed to create a really stable and powerful library for WPF.
Ado

BernardSofaTeam Dec 24, 2011 at 9:13 AM 
First welcome back home, it is a great pleasure to see you back here !
This is also an opportunity to thank you for AvalonDock.
As many people I have question about the future of WPF/AvalonDock. Windows was made of windows, Metro design will be made of "live tiles" : Is there Metro UI features that could/should be integrated in AvalonDock V2 so that it can have the look and feel of Metro UI applications ?

Bernard from the Sofa Team (sofawpf.codeplex.com)