2008-11-07 9 views
3

Nous avons environ 10 applications qui font essentiellement la même chose, toutes écrites à l'aide du Wizard Control pour .Net 2.0. Le flux qu'ils suivent est assez simple:Conception d'Assistants Web modulaires avec .Net 2.0 Wizard Control

1. User selects option from a drop downs. 
2. Next page has more options more narrowed. 
3. User sees confirmation page. 
4. Report is generated. 

Certaines de ces applications ont des pages en option, par exemple en permettant à l'utilisateur de télécharger des images personnalisées pour le rapport et permettant à l'utilisateur de sélectionner des lignes de données spécifiques.

Je tente de fusionner ces applications, mais je ne suis pas sûr que j'approche de la bonne façon. Ma première tendance est de créer des tables de configuration en SQL pour piloter les menus qui apparaissent. Ainsi, par exemple, il peut y avoir une table avec le WizardId, Name, Theme, etc., également une table d'étapes, et une autre table pour relier tout ensemble.

Existe-t-il un moyen plus simple d'aborder ce problème?

Répondre

0

Nous avons réfléchi à ce problème dernièrement et j'ai trouvé deux options qui semblent toutes deux valables, mais qui ont différentes utilisations. Une façon de le faire, semblable à ce que vous avez décrit, est de créer les éléments suivants:

  • Une table qui contient les informations Assistant
  • Un tableau qui répertorie les types de questions à poser dans chaque assistant
  • Une table pour contenir les données saisies par l'utilisateur pour chaque question

Ceci est très flexible, mais le problème est que vous devez générer dynamiquement toutes les commandes dont vous avez besoin pour recueillir les informations (zone de texte, menu déroulant, radio, téléchargement de fichiers, etc) et stocker comment afficher ce contrôle dans votre base de données.

L'autre approche que nous avons essayée sur un projet récent consiste à associer un contrôle utilisateur à chaque assistant ou type d'étape de l'assistant. Ce n'est pas aussi modulaire, mais vous avez beaucoup de contrôle sur la façon dont les contrôles sont organisés et comment vous collectez les données. Je pense que les deux approches sont utiles dans différents scénarios. Aller avec une approche basée sur la base de données vous permet de générer de nouvelles questions et assistants facilement, mais il manque l'approche conviviale que nous voulions pour notre nouvelle application.