AvalonDock is a .NET library that can be used to arrange a series of WPF/WinForms controls into a docking layout. And the newly released version natively supports MVVM, Aero Snap and has better performance.
Version 2.0 of AvalonDock has been recently released, and it has been written from scratch using an MVVM approach. It also seems to be using the Command pattern. The documentation for version 2.0 is still not published, but you can refer to the Avalon.TestApp and Avalon.MVVMTestApp folders in alongside Version 2.0 sources to see the new API.
Using this library is easy – just wrap your controls within the controls provided by AvalonDock and your layout suddenly becomes dockable. Take a look at the Get started page to see some code samples and the purpose of different controls. You can of course instantiate or manipulate them in your C# code. In version 2.0, the concept remains the same but the names of the controls have changed so you should refer to the sample code mentioned above till the documentation is updated.
Interesting to note that the open source .NET IDE, SharpDevelop, also uses AvalonDock.