I want to start the topic with a very important statement.
I think PureMVC is excellent. In particular the multicore version has enabled me to do some really cool things, and do them quickly. The source code is clean and I think Cliff Hall is verging on the genius - so I want to be sure I don't want to offend anybody by what I am about to say:
IMHO Pipes and the Pipeworks demo are a bit of an overcomplicated mess. I have just spent the whole day converting the demo to use my LICS Framework, and have managed to get rid of 298 lines of code without even trying (mainly from junction mediators and all the code associated with them). Thats a full 23% reduction without losing functionality. I was also very surprised by the amount of coupling between the modules in the demo, something Cliff isn't normally guilty of :-) Int the LICSWorks demo I have reduced the coupling quite a lot.
The LICS framework is an implementation of an Enterprise System Bus (
http://en.wikipedia.org/wiki/Enterprise_service_bus) using PureMVC. I think it works very well and is a far simpler approach to Multi Module applications than Pipes. It is outlined here.
http://www.dz015.com/?p=1The main changes for the demo are
1) The junction mediators are sort of represented by the module Workers - but workers are much simpler.
2) LICS provides a service locator (
http://en.wikipedia.org/wiki/Service_locator_pattern) for global service - I used this to provide a screen service for the components to attach to instead of them 'messaging' themselves to the shell. This is one of the strangest bits of the Pipeworks demo - I don't normally write apps like that, and so am not sure this was a good approach. The Service Locator in LICS is outlined here
http://www.dz015.com/?p=37I have zipped up the project and attached it to this post.
I will hopefully have time at some point to improve it even more in the future.
Let me know what you think