A coworker and I were discussing ideas of how to design a wizard type UI that must dynamically generate pages depending on various modules/plug-ins installed on top of our product. The UI has to be able to generate new forms which are populated with controls depending on options selected in previous wizard forms or installation configurations.
For example, if a certain module is installed, a checkbox option may be added to a form to ask a user if they want to perform configuration tasks affecting that module, which in turn, if the checkbox is checked, will generate another form with options related to the desired task. To make things more complicated, the options selected in any particular module may effect the options and/or entire forms which may be displayed when a user is performing another task on a related module. Does anyone have any ideas of the best way to go about doing this sort of thing? We really can't write a separate page for each module, as they are unknown, and there could be multiple hundreds in the future. One of the ideas I have tossed about is to use attributes on methods that operate on modules, such as a WizardAttribute to indicate that a method can be called from a wizard form. By setting a WizardAttribute property like, Activated = true, we could enable and disable the functionality. By using Reflection, and retrieving the WizardAttributes applied to the modules, we would then determine which WebControl to create based on the types of the parameters and what text to display, and pass that information to a WizardBuilder to generate the page. We could also retrieve event information and generate the appropriate event handler, such as setting another modules WizardAttribute.Activated=false or true (can you change Attribute properties in this manner?). Does this idea seem feasible? The Web Service test page in VS.Net seems to do something very similar to what I have in mind. The page is dynamically generated, creating an input field and invoke button to test out a web method. I would like to expand the concept to build a control based on type of parameter, and to chain pages together based on the Attribute properties of other pages. Does anyone know what namespaces and classes ASP.NET uses to generate the test page or where to look? Or is there a better way to go about doing we are trying to do? Richard A. Hein Software Developer Level Platforms Inc. 36 Antares Drive, Suite 200, Ottawa, Ontario * 613-232-0098 * <mailto:[EMAIL PROTECTED]> [EMAIL PROTECTED] Please visit us at http://www.levelplatforms.com <http://www.levelplatforms.com/> You can read messages from the DOTNET archive, unsubscribe from DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com.