152 messaggi dal 08 settembre 2006
Buongiorno,
ho necessità di far dialogare due applicazioni windows form (vb.net); attualmente vengono usate metodi indiretti, tipo una scrive su un file e se l'altro lo trova modificato scatena una certa azione, oppure una scrive su un db e l'altra legge il dato ogni tot secondi, se lo trova cambiato scatena l'azione ecc; tutti questi metodi però prevedo un'azione temporizzata e ripetuta nell'intervallo di tempo definito; invece vorrei che l'azione fosse 'diretta' ovvero che la prima applicazione potesse svegliare automaticamente la seconda facendone eseguire un evento esposto e raggiungibile dall'esterno, all'interno del quale inserire l'azione da svolgere; è possibile questo? mi sembra di aver visto qualcosa del genere anni fa ma non ricordo il sistema.

Grazie
181 messaggi dal 10 agosto 2019
potresti utilizzare WCF : https://docs.microsoft.com/it-it/dotnet/framework/wcf/getting-started-tutorial,

parecchi anni fà avevo fatto un progetto utilizzando remoting ma per applicazioni distribuite "moderne" ne è sconsigliato l'uso come troverai affermato qua: https://msdn.microsoft.com/it-it/windows/desktop/2e7z38xb#MainContent ,
ciao
152 messaggi dal 08 settembre 2006
Purtroppo sono due processi .exe e non può essere altrimenti, remoting mi pare abbia bisogno di una struttura client/server anche se i due processi sono nella stessa macchina
181 messaggi dal 10 agosto 2019
remoting "scordatelo" ,non è da utilizzare ,

wcf mette in comunicazione due processi exe senza problemi ,prova a vedere questo banale progetto :

https://gianmarcocastagna.blogspot.com/2019/11/sourcecodesafer-un-software-per.html

windowsformsprotector invoca tranquillamente un servizio che risiede in PasswordGenerator ,i due exe possono stare sulla stessa macchina
Modificato da surfernet123 il 28 novembre 2019 16:28 -
152 messaggi dal 08 settembre 2006
Boh, non sono sicuro che sia quello che mi serve comunque gli do un'occhiata, grazie
181 messaggi dal 10 agosto 2019
in wcf puoi scambiare dati tra i tuoi eseguibili ed invocare metodi ,il post in realtà non spiega il codice,devi scaricare i progetti e focalizzarti su alcune parti :
-prima di tutto l'interfaccia IService che descrive il servizio ,
-poi nel sorgente di PasswordGenerator guarda il contenuto di button1_Click(che fà partire il servizio)
-in seguito button4_Click ,ovvero il gestore di click sul bottone "Get Password from remote address",in realtà puoi creare il servizio dando come indirizzo http://localhost:7777 e quindi punterai a questo indirizzo locale per colloquiare con il servizio fornito dall'altro exe,
per vedere in concreto :
ChannelFactory<IService> cf = new ChannelFactory<IService>(new WebHttpBinding(),address);                
cf.Endpoint.Behaviors.Add(new WebHttpBehavior());
IService channel = cf.CreateChannel();                
byte[] data = channel.GetPassword(publicKey);

in pratica viene creato un canale che punta ad un determinato address ,a questo punto puoi invocare il metodo descritto dall'interfaccia ovvero GetPassword ,

se trovi qualche errore spero tu possa comunicarmelo,grazie,ciao
Modificato da surfernet123 il 28 novembre 2019 17:37 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.