Composite Extensions for WinForms - Commands?

Feb 22, 2010 at 4:20 PM

Hi there, 

I stumbled across Brian Noyes' blog posts on composite extensions for WinForms - looks very interesting indeed. I have downloaded the demo app for Prism2 and played around with it. Ok looks pretty simple to use in a Winforms environment. 

I'm working on a legacy project which really needs to be in a composite library and the task has come to basically refactor all the code so that it can be maintained/extended (sound familiar?!). I'm investigating various methods of doing this and have taken a look at CAB/Prism. CAB well its a bit of a beast isn't it. Prism looks way way more advanced (and simpler to use), but the problem is, the legacy app is Windows Forms (it used to be Delphi, has already undergone one re-write...) and I doubt the stakeholders would appreciate a WPF re-write. 

The composite extensions appear to allow dependency injection, view injection etc... very nicely with Winforms. However there is one thing I am not sure of - what about commands? Would anyone know if/how I could implement some sort of command method (perhaps a hybrid of CAB's commands with CAL's ICommand interface?) that would allow me to bind to Windows Forms controls and enable/disable them?

Another question is am I crazy to do this using Prism + Composite Extensions + Winforms or should I stick with CAB (or *gulp* suggest re-write to WPF)?