Scrivere una API di programmazione per un progetto esistente? [chiuso]

2

Ho già un progetto in C #. Ora dovrei implementare un sistema di plugin. Per questo sistema di plugin devo implementare una programmazione api / sdk. Non voglio, i plugin hanno accesso agli assembly utilizzati dal mio programma esistente. Questo è il motivo per cui scriverò una API di programmazione che limita / specifica l'accesso al mio programma. Ma come potrei fare questo? Ho appena creato un nuovo assembly che fa riferimento ai miei assiemi dal mio progetto esistente ed espone funzioni specifiche con l'aiuto aggiuntivo di un modello di facciata? Qualcuno ha un'altra idea di come potrei risolvere questo problema?

    
posta Marcel Hoffmann 14.10.2015 - 11:03
fonte

1 risposta

0

I plugin devono essere caricati in modo dinamico per gli assembly .NET? Se vuoi isolare i plug-in dall'accesso ai tuoi assembly, potresti prendere in considerazione altre architetture di plug-in:

  1. I plug-in possono essere processi separati e utilizzare la comunicazione tra processi per interagire con l'applicazione principale. In questo modo i plug-in avranno accesso solo all'API che hai scelto di esporre.

    C # è stato diverso da fare IPC - link - e c'è anche WCF che non sembra essere menzionato in quell'articolo - link

  2. Puoi incorporare un linguaggio di scripting all'interno della tua applicazione principale e i plug-in saranno scritti in quella lingua. Uno dei linguaggi di script più comuni utilizzati a questo scopo è Lua e il risultato di google in alto per l'hosting nelle applicazioni .NET è NLua . Avrai bisogno di Sandbox degli script per impedire loro di accedere agli assembly. L'interazione tra i plugin e l'applicazione principale viene eseguita da passando oggetti agli script .

risposta data 14.10.2015 - 15:31
fonte

Leggi altre domande sui tag