What's new in version 2.0
AvalonDock 2.0 has been rewritten from scratch using an MVVM approach. 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).
We've put a lot of attention to WPF Logical/Visual tree management. There is one and only one logical tree which has DockingManager as root. Even if a control is placed in a different window (auto-hide or floating), it always belongs to the same logical tree, below DockingManager.
Binding Issues fixedVersion 1.* suffered from of an annoying issue regarding binding that didn't work for flyout panes and floating windows. The problem here is that WPF's logical tree breaks when content is moved inside another window, such as when a user moves a pane in a floating window.
Version 2.0 fixes this problem definitively. For a detailed description of the problem please read
Binding Issues.
MVVM support addedUsing an MVVM approach with version 1.* was quite a challenge (you can find a great tutorial at
http://www.codeproject.com/KB/WPF/AvalonDockMVVM.aspx). Version 2.0 supports MVVM natively because you can create your model and using DockingManager as the view.
Flyout windows perfomance improvedIn version 1.* when a user put content in autohide state, a new window was created by AvalonDock. The window's position and size had to be kept in sync with the docking manager. This lead to a performance issue due to a lot of framework interop calls. Version 2.0 uses the same mechanism as Visual Studio 2010, child windows with redirected logical trees, to show autohide windows. This provides increased perfomance and stability. For more info please see
http://blogs.msdn.com/b/visualstudio/archive/2010/03/23/wpf-in-visual-studio-part-5-window-management.aspx.
Floating windows Aero Snap support addedVersion 2.0 supports 'Aero Snap'. For details please see (
http://blogs.msdn.com/b/visualstudio/archive/2009/11/05/tips-and-tricks-window-management-aero-snapping.aspx).
Floating windows integrated dockingVersion 2.0 lets users redock dockable content inside a floating window, similar to the feature in VS 2010.
Focus and activationWe're working to mitigate/eliminate all the focus/activation problems that caused a lot of headaches when using AvalonDock versions prior to v2.0. This work has not yet been completed. We are contemplating using this technique to accomplish that:
http://blogs.msdn.com/b/visualstudio/archive/2010/03/09/wpf-in-visual-studio-2010-part-3-focus-and-activation.aspxLayout serializationVersion 2.0 layout serialization/deserialization is much easier because layout is now also a model completely separated from the view. This allows for easier integration with frameworks like PRISM/MEF.
WPF standard controlsVersion 2.0 makes use of standard WPF control. For example, instead of creating a complex panel control, AvalonDock now uses standard grid panel. Using this approach reduced the number of classes to test and debug and the size of the resulting library.