Quali tipi di modelli sono ideali per guidare flussi di lavoro complessi dell'interfaccia utente?

1

Sto sviluppando un'applicazione di procedura guidata molto complessa simile al software di preparazione fiscale. L'utente è guidato attraverso molte schermate, ognuna delle quali richiede alcuni dati. Diverse risposte portano l'utente a percorrere percorsi potenzialmente diversi e ci sono dozzine di schermate che alla fine vedranno.

Questo progetto è iniziato in piccolo, quindi ho codificato i passaggi "successivo" e "precedente" in base alle risposte sulla schermata corrente, ma è diventato subito ovvio che questa strategia non si ridimensiona. Sono sicuro di poter trovare una soluzione per conto mio, ma sono sicuro che ci sono modelli noti e migliori pratiche per questo tipo di problema. Ho fatto qualche ricerca su Google per un simile modello senza successo fino ad ora. Qualcuno può darmi qualche informazione su una buona soluzione a questo tipo di problema?

Per contesto, la mia interfaccia utente è Angular 2 e il mio back-end è C # Web API.

    
posta Charles Josephs 29.03.2017 - 17:49
fonte

3 risposte

3

Le nostre risposte API REST contengono le informazioni necessarie per visualizzare i collegamenti oi pulsanti corretti, in base allo stato dell'attività del flusso di lavoro nel momento in cui viene richiesta la pagina. Invece di codificare i collegamenti / pulsanti, vengono generati dinamicamente in base alle informazioni nel database di SQL Server.

HATEOAS ha introdotto questo concetto. Con HATEOAS, un client REST entra in un'applicazione REST attraverso un URL fisso semplice. Tutte le azioni future che il cliente può intraprendere vengono scoperte all'interno delle rappresentazioni di risorse restituite dal server.

    
risposta data 29.03.2017 - 18:11
fonte
2

Poiché provengo da uno sfondo Java, suggerisco uno strumento chiamato Spring Web Flow che può essere utilizzato come base per comprendere il problema. Webflow fornisce quella che viene chiamata una navigazione guidata nell'applicazione e fondamentalmente interrompe il flusso in quelli che vengono chiamati stati. Quindi uno stato può essere considerato come una vista e in base all'evento dell'utente può essere guidato in un diverso stato o navigazione. Uno sguardo in un tutorial sullo stesso aiuterà a comprendere il concetto per ottenere maggiore chiarezza sul problema.

    
risposta data 31.03.2017 - 09:52
fonte
2

Ogni volta che ho avuto un flusso di lavoro dell'interfaccia utente complesso, ho provato a definire un FSM al di sotto di quello che avrebbe guidato l'intera faccenda . In questo modo, hai la prevedibilità e puoi renderlo praticamente immune agli errori, poiché semplicemente ignori tutti gli eventi che non sono previsti dallo stato corrente. Ti suggerirei di provare qualcosa del genere.

Nei casi in cui avevo bisogno di implementare l'FSM, ho usato State Pattern o Pattern visore . Lo schema di stato è migliore se hai un numero limitato di eventi, ma il numero di stati può cambiare. Il modello di visitatore è migliore se hai un numero limitato di stati, ma il numero di eventi può cambiare.

    
risposta data 31.03.2017 - 10:20
fonte

Leggi altre domande sui tag