Partitioning SL apps and on-demand loading of Xap files

Oct 10, 2011 at 12:59 PM


I am looking for an MVVM framework and comparing a few of them before I choose one.

Does Catel have support for SL applications that are partitioned into multiple Xap files with on-demand loading (like e.g. Jounce supports through MEF)?


Oct 10, 2011 at 1:12 PM


It depends how you look at it. Catel itself does not support multiple xaps, because we recommend prism for that. Catel itself is an MVVM toolkit with a service locator, lots of default services and a solution for the nested user controls problem (and much more, but I can't include everything it covers here).

We also support reflection on xap files (register xaps via AssemblyHelper.RegisterAssembliesFromXap()). As soon as a file is loaded on-demand, you can register it and it will work like you would expect.

Best regards,



Oct 10, 2011 at 1:19 PM

Hi Geert,

Can you elaborate on "we recommend prism for that"? Do you mean that I should not use Catel at all (and go with the MVVM support of prism) for my case or do you suggest a mixed approach (using some parts of prism and combining it with stuff from the Catel MVVM toolkit?

And indeed, there is much more in Catel and I have been reading some of the references articles.


Oct 10, 2011 at 1:22 PM

No, mvvm in prism is way too basic (seriously, it's just a class with INotifyPropertyChanged). But prism supports modules, which can be loaded on-demand. That part is not implemented in Catel, has actually nothing to do with MVVM.

So, if you want on-demand loading of xap files, we recommend a mixed approach (use technique A for xap files (say prism), and technique B for MVVM (catel)).