Je veux refactoriser un grand WinForm en un assistant. Il est devenu grand et trop compliqué au cours des dernières années et il est temps de le repenser.
Il y a certainement un flux de travail clair sur le formulaire actuel.
Il y a des étapes claires impliquées dans ce processus avec peu de fourchettes de décision pour naviguer. Mais c'est un formulaire qui s'utilise fréquemment chaque jour (5 à 10 fois par utilisateur). Pourvu qu'il soit bien conçu, un assistant fréquemment utilisé serait-il plus ennuyeux pour un utilisateur qu'un formulaire unique qui vous bombarderait de toutes les informations à la fois?
De Conception d'interfaces p. 55 (Tidwell, 2010):
Assistant
[À utiliser lorsque] Vous concevez une interface utilisateur pour une tâche longue ou compliquée, et sera généralement nouvelle pour les utilisateurs - ce n'est pas quelque chose qu'ils font souvent ou que vous souhaitez contrôler de manière très fine [...]
Et plus loin:
Les utilisateurs experts trouvent souvent les assistants frustrants et rigides et limitants. [...]
Et en plus:
Mais le besoin même d'un Wizard indique qu'une tâche peut être trop compliquée. Si vous pouvez simplifier une tâche au point où une forme courte ou quelques clics sur le bouton peuvent faire l'affaire à la place, c'est un meilleure solution.
Pouvez-vous simplifier la tâche? Par exemple, la deuxième étape est-elle vraiment nécessaire?
Si votre flux de travail est le seul possible de toute façon - et qu'il n'y a pas de paramètres experts ou de cas spéciaux - le Wizard peut toujours fonctionner dans votre cas.
Connaissez vos utilisateurs! Veulent-ils/doivent-ils prendre des décisions, ou sont-ils d'accord avec la méthode standard?
Cela ressemble à une tâche votre, un assistant pourrait être approprié car, comme vous l'avez décrit, il existe un ensemble d'étapes distinctes et votre approche `` une seule grande forme '' est devenue grande et lourde.
En général, les assistants ont tendance à être utiles aux nouveaux utilisateurs, mais frustrent les utilisateurs expérimentés. Pour accommoder ces deux publics distincts, vous pourriez peut-être avoir l'assistant et la 'grande forme', au moins pendant un certain temps. Voyez ce que vos utilisateurs aiment ou n'aiment pas.
Aussi pour vos utilisateurs "expérimentés", vous pourriez peut-être créer des workflows qui sautent certains des points de décision. Par exemple, un type de paramètre (s) "Ne me demandez pas de confirmer" ou des flux de travail distincts pour qu'ils puissent choisir ce travail pour un scénario plus spécifique.