Risoluzione di problemi con dispositivi simili

2

Problema:

  • App Winform per la manutenzione di diversi tipi di dispositivi (circa 10 tipi).
  • Alcuni dispositivi hanno più impostazioni simili (o le stesse) delle altre.
  • Ogni dispositivo potrebbe anche avere versioni software e hardware che potrebbero modificare il numero di impostazioni.
  • Ogni dispositivo ha un grande numero di impostazioni diviso in pagine (schede) e tali impostazioni potrebbero avere diversa natura (bool, int, float, string, ...).

Domanda:
La mia domanda è come risolverlo a livello di progettazione (come creare oggetti e anche GUI). Esistono alcuni modelli o best practice per app come questa?

Ad esempio, potrei creare la GUI separatamente per ogni tipo di dispositivo, ma alcuni di essi hanno gli stessi "blocchi" di impostazioni, quindi dovrebbe essere meglio creare UserControl per questo. Ma in questo "blocco" potrebbero esserci anche alcune variazioni in base alle versioni del software del dispositivo.

Modifica
Voglio spiegare più chiaramente, quale app mi piacerebbe creare e penso di aver trovato un'analogia abbastanza buona:
Immagina che sia un'app per l'impostazione della centralina per auto. Il meccanico può installare questa app sul laptop e selezionare il modello di auto dall'elenco dei modelli supportati e collegarsi a qualsiasi unità di controllo che desiderano e possono impostare tutto in quell'unità. Non importa se si tratta di Mercedes CLA 180, Fiat 500 o Mustang GT. Possono collegarsi ad esso e l'app mostrerà solo le impostazioni appropriate per l'auto specifica (e anche la versione del firmware specifica installata sull'unità collegata).

    
posta Artholl 06.04.2018 - 15:09
fonte

2 risposte

2

A quanto ho capito, ogni dispositivo supporta una gamma di funzioni e le funzionalità possono essere comuni a più di un dispositivo? Se questo è il caso, la tua architettura software dovrebbe riflettere questo.

È possibile dividere il software in singoli moduli che supportano una determinata funzione. Ognuno di questi può essere efficacemente sviluppato come un pezzo autonomo di software con la propria logica e l'interfaccia utente.

La tua applicazione principale deve solo servire da shell che carica solo le funzionalità relative al tuo particolare dispositivo e contiene funzionalità comuni a tutte le tue funzionalità (comunicazioni, registrazione, ecc.)

Visual studio è un esempio di questo. Lo studio di visualizzazione "core" non fa molto da solo, ma è possibile aggiungere funzionalità extra a seconda del flusso di lavoro che si desidera supportare (è possibile vederle durante l'installazione).

    
risposta data 06.04.2018 - 15:46
fonte
1

La tua domanda non è completamente chiara. Ma farò del mio meglio per capire e rispondere. Sono d'accordo con la risposta di @ richzilla. Posso anche pensare ad un altro scenario.

Soluzione: È necessario creare un elenco di funzionalità che possono essere comuni (funziona ovunque) e diverse (le modifiche necessarie per i diversi dispositivi). Probabilmente avrai un wizard di installazione per il tuo software da installare. Quando viene eseguita la procedura guidata di installazione, quella in cui è possibile definire in base alla versione o al tipo di dispositivo, quale funzionalità deve essere installata sulla macchina. Puoi anche definire alcuni valori nel tuo web.config durante l'installazione e il tuo software utilizzerà questi valori per tutta la sua durata.

L'installazione di base fornirà le funzionalità comuni richieste e diverse funzionalità possono essere opzionali (l'utente deve scegliere durante l'installazione) o il tipo di dispositivi che il software sta per installare.

Importante: Potrebbe essere necessario considerare tutte le situazioni e il design per tutte le funzionalità. Puoi leggere Iniezione di dipendenza per ulteriori informazioni. Quello che puoi usare per integrare diverse funzionalità. Se capisco correttamente ciò che stai progettando e sviluppando è molto complesso.

    
risposta data 06.04.2018 - 16:42
fonte

Leggi altre domande sui tag