lack of support for nested user controls?

Topics: Bootstrappers & IoC, Getting Started
May 30, 2012 at 9:28 AM

Hello all,

I’m taking a lot of worry selecting an MVVM framework to convert to. The major considerations are:

  • ·         Not an orphan system.
  • ·         Design time integration with Expression Blend.
  • ·         Support for User Controls and nested user controls.
  • ·         Will continue to Windows 8
  • ·         Ease of use – learning curve.

Objective considerations lead to MVVM-Light: Blend-ability, more documentation, the author appears closer to MS (hasn't returne his MVP ;-) , many more downloads. But emotionally I’m favoring Caliburn.Micro.

However, I'm worried about the nested user controls as my main page today has a user control that contains nested user controls.

The author of Catel highlights lack of support for nested user contorls as a major disadvantage of other platforms (in. CM). Is this correct?



May 30, 2012 at 2:32 PM

There's no problem with nested user controls in CM. There's no problem with Blendability either. It all depends on what features you use. Do databinding conventions work with Blend? Sort of...but does any other framework even offer that option? No. So, saying that MVVMLight is more Blendable than CM is not true because all the equivalent features between the two frameworks are equally Blendable.

Caliburn.Micro also has a subset running with Win8. The subset we have running is functionally equivalent to the *whole* of MVVMLight. Will we be able to port the *entire* thing to Win8? I don't know. It depends on Win8 Xaml features, not on us. We'll port as much as we can get working on the new platform.

Remember that CM does a whole lot more than MVVMLight. MVVMLight is a bare bones implementation...I could probably write the whole thing in an hour or two from scratch. If that's all you need, just use MVVMLight. If you want more, Caliburn.Micro can do a lot more for you, enabling you to write less code. If you move to Win8, you are going to have to change a lot anyways. But, Caliburn.Micro does work there, but only the core features at the moment.

What type of app are you building?

May 30, 2012 at 2:49 PM

Honestly, this 'issue with nested user controls' you are speaking about, is not an issue.

I mean that it is not a matter of a framework lacking some functionalities, but mostly that some developers choose a wrong design, or ar not able to fully grasp the capabilities of the framework they are using.

Personally, I developed an application that builds an UI composed by many dockable windows, a ribbon, a status bar and so on... and every single (relevant) part is built dynamically through plugins... oh, and I used just CM.

CM is able to locate a view at runtime for a proposed view-model and, as long as you are capable to design the root view in a proper way, you can nest all the views you want.

Read the CM documentation carefully, so you can graps at least basic concepts and decide by yourself. ;)

Jun 2, 2012 at 4:04 AM

"I’m taking a lot of worry selecting an MVVM framework to convert to."

Not if you select Caliburn Micro.