Abbiamo un'applicazione WinForms in C# 3.5 (SP 1). Vorremmo limitare l'applicazione a un processo in memoria con istanze di finestre multiple. Non stiamo cercando un approccio MDI, ma di avere istanze di moduli principali separate senza avviare più processi di applicazione.Restrizione dell'applicazione WinForm a un processo con più istanze
stiamo valutando tre approcci:
- di Windows Messaggi
- COM
- WCF
Abbiamo i dettagli di massima per le prime 2 (PInvoke con messaggi di Windows e WinProc prioritario, Registro COM, ecc.) E utilizzano tecnologie meno recenti.
Abbiamo discusso l'idea di utilizzare WCF con pipe denominate e ritengo che questo potrebbe essere il modo più semplice e pulito per eseguire l'operazione in questione.
Qual è il modo più pulito e moderno per limitare l'applicazione a un processo con più istanze di moduli principali?
Cosa fare COM, WCF e i messaggi di Windows hanno a che fare con questo? –
Qualcuno si è buttato fuori registrando la prima applicazione con COM nel registro e quindi interrogando che quando l'applicazione carica per chiamare l'app esistente. L'altra idea era di sovraccaricare WinProc e PInvoke un WM_COMMAND per creare l'istanza della finestra di dialogo. WCF creerebbe una pipe denominata per noi. Almeno questo è stato buttato là fuori. – blu
Ok, tutto quello che vuoi sapere è come dire all'istanza già in esecuzione dell'applicazione di creare una nuova finestra quando provi ad eseguire una seconda istanza? Un messaggio Window funzionerà bene, ma WCF sarebbe più versatile, per l'interfaccia, i parametri, la configurazione e penso che sarebbe più pulito. – mlessard