Newsgroup: it.comp.lang.visual-basic
Titolo: Come comunicare su una rete

Innanzitutto devo ringrazziare Ettore del consiglio relativamente al DDE che
funziona benissimo e vorrei chiedervi ancora un consiglio
metà del mio problema è risolto, ora mi resterebbe solo da far
colloquiare diversi "server" (vedi esempio DDE su Sito Comune) su vari
computer
o meglio la domanda è: come fare la stessa cosa scambiando però dati fra due
applicazioni poste su due computer diversi in una rete?
Magari se possibile penso che la cosa migliore sia poter scambiare stringhe
di testo da cui poi si estrarrano i dati
La mia idea sarebbe di mettere
- vari client.exe su ogni macchina
- un server.exe su ogni macchina
- una applicazione che faccia veramente da server e che posta su solo un
computer della rete gestisca tutte le comunicazioni (su questa macchina
sarebbero presenti anche i dati a cui dovrebbero accedere le altre macchine,
dati che a questo punto penserei di elaborare sul server "vero" e poi
mandare ai client già belle che pronte tramite il collegamento che non so
come realizzare)
Spero che mi scriviate numerosi.....
A parte gli scherzi GRAZIe per l'aiuto che mi avete già dato e spero mi
darete anche in futuro

Ci sono solo poche alternative interessanti per eseguire scambio tra
processi in ambiente wintel. Anzi ne esiste una solo... DCOM.
L'approccio DDE, per quanto decisamente funzionale putroppo fa parte dei
refusi di ciò che fu Windows3.x. e comunque non permette lo scambio di
informazioni tra processi che risiedono su elaboratori differenti.
La cosa migliore da fare è quella di costruire un server EXE che metta a
disposizione delle interfacce ( metodi di una classe ) ai vari clients.
Se utilizzi un server NT 4.0 ( svp3) oppure macchine W95 abilitate a DCOM
 che puoi downloadare dal sito microsoft ) puoi realizzare delle soluzioni
realmante client-server n-tiers.
Esiste da tempo un modo ancora più sofisticato e funzionale per ottenere una
distribuzione degli oggetti in rete con un approccio transazionale che è MTS
( Microsoft Transaction Server ) facente parte dell' Option Pack. Tramite
MTS puoi rendere disponibili ai varie clients delle componenti ActiveX Dll
in-process. Mentre il DCOM tradizionale o l'automazione OLE remota
permettono dell'utilizzo di soli server out-of-process ( EXE)
Tieni presente che MTS farà parte integrante delle future vesioni di Window
Desktop, lo è già per la versione WindowsNT 5.0, ritengo che questo sia
l'approccio che maggiormente garantisca la continuità e l'attualità di ogni
progetto per il futuro.
Ovviamente realizzare soluzioni di questo tipo hanno i loro contro, la prima
di tutte  è quella di spendere un tempo decisamente maggiore per la
progettazione delle varie componenti che entreranno a far parte del sistema.
Se il tuo problema è sempre quello di realizzare una applicazione di
carattere gestionale, penso sempre che per farti le "ossa" la soluzione più
semplice sia sempre quella di utilizzare un Database centralizzato da cui e
su cui scrivere le informazioni e magari iniziare a prendere confidenza con
le classi per l'implementazione delle varie "regole aziendali" a livello di
clients. Poi piano piano potrai portare queste classi su un server come
componenti di automazione DCOM.
Non ti scordare di una cosa comunque. Lo scambio di informazioni
cross-process è molto affascinante ma i problemi sono ancora irrisolti,
specie se si tratta di grandi moli di dati per cui, strano a dirsi, la
modalità più efficiente è ancora quella di utilizzare files sequenziali da
passare a chi deve leggere le informazioni, seppure nascano altre
problematiche di bloccaggi etc etc.
Il mio consiglio resta quello di trovare il giusto mix tra la soluzione
tipica a due livelli e quella distribuita.
Buon lavoro , Antonello.

Oltre a dirti grazie come al solito però inizio a chiedermi, e se si
iniziasse a creare una FAQ di questo NG? Sicuramente non è la prima volta
che vedi domando come le mie...
Ciao

darete anche in futuro
Potrai ripagarci in natura... :-)   (scherzo, bastera' che partecipi alla
stesura della FAQ!)
--
Roal Zanazzi
z...@iol.it

 tecnologia vecchia e non sara' probabilmente supportata in futuro).
Il DDE funziona bene, ma contemporaneamente, se usato pesantemente, tende a essere precario !?!?!
Non ti dico il NetDDE! L'ho usato una volta per fare una architettura Master-Slave.... Da Piangere.
No, Non usate il NetDDE, ammeno che non lo dovete fare per forza maggiore.
Ma perche' mai nessuno suggerisce l'uso delle NamedPipe?
E' vero che e' un po complesso, ma funzionano bene.
Con le NamedPipe l'importante e' che i PC siano in rete, con che protocollo e' irrilevante (con le soket invece occorre avere
installato e *configurato* il TCP/IP).
Io ci feci solo un po' di prove un tempo, ma in C/C++, e non mi ricordo piu' molto.
Nessuno ha un esempio di NamedPipe in VB?
-- 
Hi, Ciao
Ettore                 By -MES-
http://freeweb.aspide.it/freeweb/ilmes
 
(con OCX per stampare i Recordset)
Il sito comune di programmatori VB
http://members.xoom.com/it_lang_vb