TL; DR
Voglio creare un'applicazione / framework host per i plugin. Da un lato voglio abilitare i plug-in per fare qualsiasi cosa e dall'altro voglio avere il controllo su di essi .
Sfondo
Mi piacerebbe sviluppare una piattaforma che abbia alcune funzionalità di base ed è principalmente un framework per i plugin.
I plug-in variano notevolmente in termini di funzionalità, ad esempio potrebbe esserci un semplice plug-in per il widget dell'orologio e potrebbe esserci un plug-in che è davvero un'applicazione completa che utilizza la mia applicazione come un launcher.
Gli unici plugin delle regole dovrebbero essere:
- Interrompi quando l'applicazione principale si arresta .
- Essere in grado di installato / disinstallato tramite l'applicazione principale .
Perché plug-in e non applicazioni separate?
L'applicazione gira attorno a un campo specifico che non ha molto software e iniziativa. Voglio consentire agli sviluppatori di distribuire facilmente i loro software e prendere il controllo di questo campo come una piattaforma all-in-one . Inoltre, ci sarà una API utile, semplificando lo sviluppo di software in quel campo.
La domanda
Come posso assicurare un certo controllo sui plugin che sto lanciando senza limitarne la funzionalità? dovrei:
- Richiedono che obbediscano a metodi di interfaccia come onClose () chiamati via IPC?
- Eseguili dal processo principale legandoli così ad esso?
- Obbligarli a implementare la loro GUI all'interno della piattaforma e permetterli di farlo? eseguire solo callback?
- Fai un altro modo?
Modifica
Prospettiva dell'utente finale
Gli utenti finali (che sono non orientati alla tecnologia ) dovrebbero vedere la piattaforma principalmente come un mercato per software designato per un determinato campo. I plugin sono facili da installare, disinstallare, eseguire e interrompere attraverso l'applicazione principale.