Dopo Ordinare le voci di menu alimentate da più moduli mi è stata rivolta una domanda, che è responsabile per l'ordine e l'allineamento delle voci di menu in un'applicazione modulare.
Il link precedente suggerisce che il modulo che offre la voce di menu è responsabile di dire dove sarà localizzato ("all'indice n", "dopo il modulo x", "prima del modulo y"). Molte altre risorse propongono un IMenuService in cui i moduli possono registrare o rimuovere le voci di menu, ad es. Framework PRISM .
Ma intuitivamente direi che l'applicazione principale dovrebbe assumersi la responsabilità. I moduli non dovrebbero necessariamente conoscere altri moduli solo per ordinare la propria voce di menu. Né il modulo in linea di principio dovrebbe decidere da solo dove appare nel menu in un contesto più ampio. Per esempio. la voce di menu di logout dovrebbe avere un po 'di offset rispetto ad altri elementi o una determinata voce di menu ottiene un colore speciale perché è considerata importante dall'applicazione al momento.
Quindi risultante da questa considerazione ho pensato a come l'applicazione principale (core) potrebbe gestirlo. Ma in questo caso l'applicazione principale deve avere conoscenza delle voci di menu e dei loro tipi di calcestruzzo. Pertanto, è necessario aggiornare gli elementi offerti dai diversi moduli o utilizzare il metodo di risoluzione del contenitore IOC per distinguere tra loro risultando in una sorta di anti-pattern del localizzatore di servizi. (Iniezione del costruttore con n dipendenze delle voci di menu non mi sembra neanche corretto)
Quindi non so se questa è una domanda basata sull'opinione, ma di sicuro una domanda di design.
Cosa proporresti come soluzione o in che modo questo scenario è gestito da altre applicazioni? Qual è il modo standard per comporre il menu?
Ulteriori informazioni: Attualmente sto sviluppando un'applicazione mobile modulare con Xamarin e Prism (con DryIOC) come framework MVVM e IOC.