.net exe winform application client/server

domenica 23 agosto 2009 - 12.38

arguros Profilo | Newbie

Ciao,
Ai tempi di COM potevo realizzare due EXE ActiveX, registarli e farli comunicare tra loro tramite COM.

Se ho due .NET exe winform application. Come posso farli comunicare tra di loro?
Mi spiego meglio. Supponiamo che ho sviluppato MyCalculator.exe e tale assembly espone delle classi pubbliche.

Se faccio un altra application chiamata Mortgage.exe, come faccio a fargli prendere una referenza a MyCalculator.exe, aprire il programma e utilizzare le sue classi per fare alcuni conti?

Grazie

Pierpaolo

freeteo Profilo | Guru

Ciao,
a mio avviso il modo migliore per usare "funzioni comuni" (classi e metodi) ai vari applicativi è sicuramente portare questi oggetti in una o più libreria di classi, e quindi referenziarle in entrambi i progetti.
Tecnicamente ti basta aggiungere alla soluzione dove hai il progetto "calculator" un nuovo progetto di libreria di classi, e mettere i metodi (decidendo i vari parametri necessari, i dati di ritorno etc...) dentro li.

Poi nella calculator, come nell'altra applicazione fai riferimento alla libreria che incapsula queste funzionalità (aggiungi magari lo stesso progetto alle 2 soluzioni, e fai riferimento a quello invece di farlo sul file dll diretto), al momento della compilazione sarà visual studio a mettere la libreria nella directory di compilazione delle 2 applicazioni, ed ovviamente avendo fatto riferimento allo stesso progetto, le modifiche che fai a quei metodi te le trovi subito disponibili.

Questo secondo me è il metodo più corretto di condividere funzionalità, e soprattutto con .net non hai più problemi di registrare gli OCX, ma ti basta appunto averle nella stessa directory dell'applicazione che la utilizza (che lo fa vs per te ma puoi pensare di farlo anche a mano).

Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo

arguros Profilo | Newbie

Ciao,
Grazie per il consiglio.
Ti avevo chiesto di come si facesse a referenziare un win .exe, piuttosto che una dll perche' avevo in mente un caso piu' complesso.
La mia applicazione .exe ha un cache con in memoria oggetti molto pesanti che richiedono parecchie risorse e tempo per essere costruiti. (ecco perche le salvo in una cache).
mi chiedevo quindi se ci fosse un modo da un altro programmi C# di connettersi a questa applicazione per ottenere gli oggetti che ha gia in memoria senza ricalcolarseli da capo con i metodi disponibili nelle librerie condivise.

Pierpaolo

PS. Se leggi il post su factory method che ho appena spedito, ti fai anche un idea di come funziona parte delll'applicazione. Gli oggetti molto pesanti a cui mi riferisco sono i portafogli.


Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5