Click here to Skip to main content
15,171,303 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
As part of the team developing a custom application framework that will be given to 3rd party developers, I need to come up with a simple yet complete solution in order to let the developers customize views (A) and the main application layout (B) of our solutions.

For B, we will be using a custom UI composite approach (similar to Prism, but simpler), where the main application layout will be configurable by the 3rd parties.

As for A, we will create UserControls that need to be customized and perhaps completely "overridable" by the 3rd parties.

Proposed solutions:

i) Giving out the XAML code of the main layout file and the the UserControls (A and B). In the case of A, the 3rd party developers will be able to use a default UserControl (located lets say in Views/Default) or to completely override it by creating the same control in Views/Custom.

ii) Giving out the XAML code of the main layout file and the UserControls (A and B) and use IoC (Unity for example) to swap/extend them.

My questions:

1.- Any comments regarding the proposed solutions? Any other idea?
2.- Do you know of anyone who has developed something like this?

Besides, whatever We come up with it should work on WPF, Silverlight and, as the framework support those three technologies. By this reuse of technologies, I mean the "publishing" mechanism, not reusing the XAML files among WPF/SL/ASP (makes no sense!)

Updated 12-Jul-10 2:01am

A subset of XAML works for WPF and silverlight. XAML does not work for ASP.NET, or is ASP.NET remotely as rich as WPF. Therefore, if you want uniform support, you have to accept that you WPF apps will be pretty lame, being only as good as an ASP.NET form can be.
Indeed. I might have forgotten to mention that the scope of the proposed solutions is just WPF/Silverlight. For something else (if possible using a similar idea) shall be used.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900