Pattern da utilizzare per collegare più origini dati a diversi widget di dati utente

5

Ho un'applicazione intranet client x server che fondamentalmente riceve i dati dal server, li formatta e li invia al client per la visualizzazione. Al server stiamo usando ASP.NET C # in esecuzione su IIS e sul client abbiamo i widget Javascript. Le richieste del client x server vengono eseguite tramite chiamate Ajax.

Ho molti (100+) oggetti server, che possono essere visualizzati in 10 diversi formati nel browser attraverso diversi widget grafici.

Quindi, fondamentalmente abbiamo la seguente struttura:

Quindi, per ogni oggetto server di cui ho bisogno, agli oggetti nnnWidgetDataGetter, effettuare una trasformazione dei dati nel formato dei dati del widget da inviare al client. Ogni widget può richiedere dati da tutti gli oggetti del server.

Usando un approccio normale, dovrei scrivere tonnellate di metodi, uno per ogni server di classe di base per ogni classe di datagetter.

Per evitare di scrivere centinaia di metodi con comportamenti simili, abbiamo deciso di utilizzare un approccio dinamico nelle classi DataGetter (classi statiche), in cui l'oggetto business viene valutato in fase di runtime, i dati vengono raccolti da questo oggetto, formattati e inviati al cliente.

Il problema è che usando la creazione e invocazione di oggetti dinamici perdiamo Intellisense, quindi il codice sta diventando molto grande e difficile da comprendere e mantenere.

Dopo un po 'abbiamo scoperto che non stiamo usando l'approccio corretto e abbiamo iniziato a pensare a sw patters che ci aiutassero a risolverlo.

Quindi stiamo cercando il modello corretto per risolvere questo problema che manterrebbe una struttura tipizzata in cui Intellisense potrebbe funzionare e che ci evita di scrivere centinaia di metodi diversi.

Apprezziamo molto ogni tipo di aiuto.

    
posta Mendes 20.06.2014 - 08:13
fonte

1 risposta

1

I pattern potrebbero darti un design pulito per trasformare gli oggetti server in dati widget. Tuttavia, non ti impediranno di definire la strategia per ciascun oggetto server (nella migliore delle ipotesi rimuoverà il codice duplicato).

Potresti utilizzare reflection o attributi per esaminare gli oggetti del server e avere un generatore generico per popolare il" DataGetter "desiderato.

    
risposta data 03.07.2014 - 17:49
fonte

Leggi altre domande sui tag