I am about to undertake the task of expanding a recently completed Flex app that utilizes Cairngorm. Its basically a workflow application to allow users to create large batches of PPT and PDF documents that are generated on the server. The existing application is for a specific type of document, and we're about to expand it to allow the generation of different kinds of documents, and I'm not yet sure how to best architect it. As it stands now, the application consists of the following screens, which for the most part are encountered in a chronological fashion.
Dashboard -> Create Worklist -> Configure Documents -> Preliminary Generation and Approval -> Full Batch Generation -> Document Delivery The app will eventually need to support the configuration and batch generation of several different types of documents. They will all require slightly different steps and levels of control. For instance, the first doc type we are adding will not utilize the Configure Documents and Preliminary Generation and Approval steps in the sequence described above. Document Delivery will be used for all doc types, and the layout of the screen should remain fairly consistent, but the logic behind the controls and specific data held in the components will vary from doc type to doc type. I realize this is very general, so I am really looking for overarching approaches. Do I need to do some sort of reverse code-behind, where I have a base MXML file for the screens that I can then extend/alter via script files? Should the whole deck of screens for each doc type be a module or should each screen be a module? Whats the best way to structure my Command and Event classes since I will have some generic and some that are doc type specific? Pointers anyone can give are appreciated, even if they're as general as suggestions on analysis patterns I can follow to better diagnose the situation myself. At this point I am just kind of stuck on where to even start on breaking things apart. Thanks, Ben