Dopo qualche mese di utilizzo e a un passo dall’andare in produzione con le prime iterazioni stabili direi che ho acquisito abbastanza esperienza sul frameowrk Prism di Microsoft P&P. In 4ward stiamo lavorando su una Software Factories che aiuti a semplificare e guidare i team nell’utilizzo di Prism, e nel frattempo abbiamo riscontrato alcuni problemini.
Fate attenzione ai seguenti Memory Leaks:
- bug in DelegateCommand e CompositeCommand creano automaticamente un handler per ICommand.CanExecuteChanged, che non usa le weak references e non è possibile gestirlo dal proprio codice; di conseguenza MVVM che usano questi comandi rimangono in memoria se i comandi sono gestiti in una classe Singleton. (Nel source code disponibile su Codeplex, nella release V3 è presente una fix al problema, vedrò come applicarla alla V2)
- bug nel metodo CompositePresentationEvent<>.Subscribe() non consente l’utilizzo dei “weak event references” e quindi tutte le classi che usano l’EventAggregator rimangono referenziate una con l’altra ed è impossibile farne il dispose.