Newsgroup: it.comp.lang.c++
Titolo: COM,questi sconosciuti...

Qualcuno sarebbe disposto a spiegarmi una cosa?
Su un giornale di programmazione avanzata o letto di un certo COM. Qualcuno
potrebbe spiegarmi cos'é e a cosa a potrebbe servire un COM?
E' una semplice curiosità personale.
Grazie & ciao.

E' una semplice curiosità personale.
Beh, come curiosita' non c'e' male. Andando per analogie e' come se avessi
chiesto che cos'e' il DNA e a cosa puo' servire...
Insomma, questo per dire che la domanda e' abbastanza vasta da rendere
insufficiente una qualunque spiegazione sommaria (che e' appunto quella che
vado a darti).
L'acronimo sta per Component Object Model ed e' appunto un ricco e
strutturato tentativo (piu' o meno riuscito) di implementare la
programmazione ad oggetti rendendola "standard" al livello  binario (ancora
piu' nebuloso dell' acronimo direi :-)))
Un limite (se di limite si puo' parlare) dei linguaggi tipo C++  e' che le
classi definite non possono essere ereditate o riutilizzate immediatamente
dal VB ad esempio. E questo perche' i due linguaggi non sono "accordati"
sullo stesso standard binario (intendo chiamata a metodi, polimorfismo
ereditarieta' ecc).
COM permette la totale incapsulazione,polimorfismo e in una certa misura
ereditarieta' INDIPENDENTEMENTE dal linguaggio utilizzato a condizione che
si rispettino determinati protocolli di comunicazione e di chiamata tra i
client (programmi) ed i server (oggetti COM).
Su questa tecnologia si basa OLE (e non solo) ed e' il motivo per cui un
controllo scritto in VC si puo' richiamare dal VB o da qualunque altro
linguaggio  senza doversi preoccupare di come il controllo e' effettivamente
implementato.L'interazione tra lui e noi avverra' solo attraverso le
interfacce che ci mettera' a disposizione e di cui potremo sapere tutto
semplicemente (si fa per dire..) chiamando un metodo che tutti gli oggetti
COM devono garantire (QueryInterface)
Un testo sacro da leggere (anche tre-quattro volte diceva qualcuno..) e'
sicuramente Inside OLE2 di Brockschmidt, se si vuole approfondire la
questione diciamo fino all'osso.
Ci sono anche ottimi libri "intermedi" che non sono al livello di dettaglio
del  Brockschmidt ma sufficientemente esaustivi e didattici.
 Oppure in commercio esistono quintalate di libri (tra cui uno addirittura
comico che suona  tipo" Learn OLE in 21 days" buono per il fuoco) piu' o
meno superficiali che insegnano come richiamare le interfacce dei controlli
ma non vanno a fondo piu' di tanto.
Se la tua era una semplice curiosita' non ti consiglio di leggere Inside
OLE2 (ricco mattone da 1250 pagine circa ) , se invece ti sei incuriosito la
scelta e' obbligata.
Se infine ti ho spaventato... scusami
Saluti
Damiano

E' una semplice curiosità personale.
Se leggi l'inglese, c'é un articoletto sul mio website:
http://magenta.com/~alex/ComEtc/briefest.htm
inteso appunto come prima, breve introduzione al
Component Object Model (COM) della Microsoft,
e alcune delle molte tecnologie che lo usano (per
chi non ha tempo, voglia, o soldi, di leggersi il
testo di Chappell, Microsoft Press [o Mondadori
Informatica, in buona  traduzione], su "ActiveX" e
dintorni -- ActiveX, e prima ancora OLE, é spesso
stato usato a semi-sproposito dal marketing MS
per indicare le tecnologie che sono parte del set che
ruota attorno a COM... oggi, finalmente, anche MS
tende a chiamare COM quel che é COM, lasciando
ActiveX e OLE per gli specifici temi che nominano).
Alex

I COM sono un tentativo di cercare di fare col SW quello che in HW si fa già
da molto tempo;
Un progettista HW consulta un manuale, sceglie dei componenti che gli
GARANTISCONO certe funzionalità e il suo lavoro consiste nel curare  i
dettagli di interfacciamento dei componenti affinché tutti assieme in una
scheda svolgano la funzione complessiva che si desidera.
Il COM vorrebbe essere un COMPONENTE ( una sorta di "integrato" SW ) che
associato ad altri della sua specie produce un programma che fa quanto da
specifica. Il lavoro del programmatore consiste quindi nel "saldare" questi
COM sul programma.
Come questa idea venga poi attuata é decritto al meglio da Alex Martelli.
Ciao, Mat

questione diciamo fino all'osso.
Direi senza dubbio meglio "Essential COM" del buon vecchio Don, molto piu'
utile come introduzione solida a COM e DCOM. Il libro di Brockschmidt,
seppure IMHO piu' semplice, deve venire dopo.
Davide Marcato.
----------------------------------------------------
| -- Freelance International Consultant
| -- Win32/MFC/COM Development & Training
| -- Technical Writer & Speaker
----------------------------------------------------
| -- Email: 
mar...@programmers.net
| -- Web: 
http://www.DavideMarcato.com
----------------------------------------------------