Qual è il modo migliore per separare la logica dell'interfaccia utente (designer / editor) dal framework del pacchetto (come il pacchetto di Visual Studio)

StackOverflow https://stackoverflow.com/questions/158420

Domanda

Voglio separare le preoccupazioni qui. Creare e incorporare tutta la logica dell'interfaccia utente per il progettista XML personalizzato, il modello a oggetti, le convalide ecc. In un assieme separato. Quindi il framework del pacchetto dovrebbe solo registrare le informazioni del designer e richiedere un servizio UI e tutto funziona magicamente.

In questo modo non ho bisogno di giocare con l'assembly Framework del pacchetto (pacchetto Visual Studio), quando devo modificare la progettazione dell'interfaccia utente.

Questa domanda si applica anche a qualsiasi cosa in cui devi separare la logica dell'interfaccia utente dal framework Skeleton che la carica, come un plugin.

Ho diverse opzioni tra cui un modello ServiceProvider, un modello plug-in o altro.

Eventuali esempi, suggerimenti per motivi, collegamenti sono i benvenuti.

Aggiornamento 1: Quello che sto cercando è un pensiero come - " Prism (Composite WPF) si adatta al conto? Qualcuno ha lavorato su un progetto / applicazione che fa la separazione delle preoccupazioni proprio come ho menzionato sopra? ecc " (Sto ancora cercando risposte)

È stato utile?

Soluzione

Ho creato un VSPackage che carica un editor. L'Editor si trova in un assembly separato e implementa un'interfaccia che ho definito. VSPackage funziona con l'interfaccia, quindi qualsiasi modifica apportata all'editor (e al suo assemblaggio) non influisce su VSPackage purché non modifichi l'interfaccia.

Altri suggerimenti

Quello che stai chiedendo riguardo alle cuciture è molto simile alla separazione delle preoccupazioni che MVC il modello cerca di imporre.

ASP.NET MVC è già disponibile con un anteprima 5 .

È principalmente per il web ma penso che stiano pianificando di usarlo anche per WinForms, ma non sono sicuro.

Preferisco il modello Model View Presenter

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top