microsoft / xaml-standard

XAML Standard : a set of principles that drive XAML dialect alignment
Other
804 stars 50 forks source link

Discussion: Modularity #201

Open juanfranblanco opened 7 years ago

juanfranblanco commented 7 years ago

WPF / Silverlight / Xamarin.Forms with Prism / MEF has the capability to separate concerns using Modules.

Modules have also the capability to be loaded dynamically in certain scenarios, allowing the simple deployment of updates and/or new features.

As we move to a generic UI / Xaml standard it will be ideal to provide a generic way of modularisation, as we had in the past. Including the registration / discovery of modules, menus, navigation, messaging, contextual model data, etc, etc.

Dynamic loading could be enabled on supported platforms, desktop for Windows, Mac, and Linux. Either using Xamarin.Forms / WPF on Windows.

michael-hawker commented 7 years ago

This becomes especially important with the multi-platform aspect of the standard, as developers may want to inject different back-end viewmodels/models/services in different containers based on the platform they're running/building on.

GeraudFabien commented 7 years ago

I agree with you. Who don't? But the issue is too vague. If you want with your concept we can make issue "Discussion: Performance", "Discussion: Maintainability". Be more precise about what specific solution or problematic you want to talk about. Maybe you also can make many issue.

juanfranblanco commented 7 years ago

@GeraudFabien "I agree with you. Who don't?", some might. But this is not as generic as Performance (I hope so :) ).

This is to take what we have already for years (PRISM / MEF) and create a generic standard for modularisation. Xamarin.Forms focus has been (in the past) around mobile, so modularity and dynamic loading of modules has not been possible due to AOT compilation.

This should not be an issue in Desktop now, even if having a performance hit on Macs.

The discussion topic, is how we want to achieve modularity. What can we use as a base platform (if any).