Stiamo sviluppando un'applicazione per l'elaborazione e la visualizzazione di dati 2D. Al momento i dati vengono visualizzati convertendo ciascun punto in un colore a seconda dell'intensità, quindi in un codice di livello piuttosto basso. Funziona bene Una nuova funzione mostra una griglia e un mucchio di linee che possono essere spostate con il mouse su quell'immagine.
Come al solito quando verranno raccolte nuove tecnologie, ho fatto una piccola dimostrazione per testare alcune cose: usando il diagramma di dati corrente, una linea è disegnata sopra che può essere spostata su / giù con il mouse, e a allo stesso tempo c'è un testo che mostra le coordinate del cursore. Ho provato diversi modi: usando un Canvas, usando un livello inferiore di Drawhelp di livello inferiore e usando l'api WriteableBitmapEx di basso livello.
Per me, non c'era alcuna differenza nella facilità di codifica e di velocità di visualizzazione. Sì, l'opzione Canvas aveva un paio di righe in meno codice rispetto alle altre, mentre ho avuto l'impressione che le opzioni di livello inferiore fossero leggermente più veloci da visualizzare. Ma nessun enorme differenes mi ha fatto scegliere uno immediatamente.
Quindi il problema ora è: non ho idea di come selezionare il sistema più adatto per il lavoro, ma è una decisione molto importante da prendere poiché la parte grafica dell'app probabilmente continuerà a crescere. Inutile dire che sarebbe un piccolo disastro se scegliamo A ora, e in un anno capiremo che B sarebbe stato molto meglio. Normalmente selezionerei l'opzione più veloce o più conveniente, o guarderei i requisiti futuri e userei il sistema che sembra adattarsi meglio, ma in questo caso non c'è semplicemente abbastanza differenza ei requisiti futuri non sono esattamente noti: per ora pensiamo è sufficiente se possiamo disegnare linee, cerchi e del testo e aggiornare la velocità non è così importante. Tuttavia, l'applicazione è nella sua fase iniziale, così come l'hardware sottostante e ci sono meno di 100 clienti. Tuttavia, potrebbe cambiare rapidamente. E così i requisiti.
La domanda è semplice: cosa fare? Alcune opzioni su cui ho pensato:
- sceglierne uno che "sembra" il migliore (WriteableBitmapEx ma probabilmente solo perché ho un'affinità con le cose di livello inferiore)
- scegli quello con la minor quantità di codice (Canvas, sembra anche molto facile sul livello dell'interfaccia utente con effetti e eventi del mouse e cosa no)
- crea una demo più ampia in modo che le differenze diventino più chiare sceglierne uno, ma metti tutto dietro un'interfaccia in modo che l'implementazione possa essere sostituita in un secondo momento (potrebbe essere un po 'di lavoro)