Ho un progetto che carica dal database un file XML che definisce un modulo per alcuni utenti. XML viene trasformato in una raccolta di oggetti le cui classi derivano da un singolo genitore. Qualcosa come
Controllo - > EditControl - > TextBox
Controllo - > ContainterControl - > Pannello
Queste classi sono responsabili della creazione di controlli GUI per tre diversi ambienti: WinForms, DevExpress XtraReports e WebForms. Tutti e tre i framework condividono principalmente la stessa struttura di controllo e hanno un singolo genitore comune (Windows.Forms.Control, XrControl e WebControl).
Quindi, come si fa?
Soluzione a) La classe di controllo ha metodi astratti
Control CreateWinControl();
XrControl CreateXtraControl();
WebControl CreateWebControl();
Questo potrebbe funzionare ma il progetto deve fare riferimento a tutti e tre i framework e le classi saranno grasse con metodi che supporterebbero tutte e tre le implementazioni.
Soluzione b) Ogni implementazione del framework viene eseguita in progetti separati e ha l'albero delle classi esatto come il progetto Core. Tutte e tre le implementazioni sono collegate usando un'interfaccia alla classe Core.
Questo sembra pulito ma sto attraversando un periodo difficile che mi avvolge la testa. Qualcuno ha una soluzione più semplice o un suggerimento come devo affrontare questa attività?