Component Object Model: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Recupero di 4 fonte/i e segnalazione di 0 link interrotto/i. #IABot (v2.0beta13)
 
(4 versioni intermedie di 4 utenti non mostrate)
Riga 1:
In [[informatica]] il '''Component Object Model''' (noto con l'[[acronimo]] '''COM''', [[Lingua inglese|inglese]] per ''Modello a oggetti per componenti'') è un'[[interfaccia (programmazione)|interfaccia]] per componenti [[software]] introdotta da [[Microsoft]] nel [[1993]]. COM permette la [[comunicazione tra processi]] e creazione dinamica di oggetti con qualsiasi [[linguaggio di programmazione]] che supporta questa tecnologia.<ref>{{cita web|url=httphttps://www.microsoft.com/com/|titolo=Component Object Model Technologies|editore=Microsoft Corporation}}</ref> Il termine COM è spesso usato nel mondo dello sviluppo software con più significati: [[Object Linking and Embedding|OLE]], [[OLE Automation]], [[ActiveX]], COM+ e [[Distributed Component Object Model|DCOM]]. Nonostante l'introduzione di COM risalga al 1993, Microsoft ha iniziato ad utilizzare con enfasi questo nome solamente nel [[1997]].
 
Sebbene sia stato [[Portabilità|portato]] anche su altre piattaforme, COM è utilizzato principalmente con [[Microsoft Windows]]. Si prevede una progressiva sostituzione almeno parziale di COM da parte del [[framework]] [[Microsoft .NET]].
 
==Storia==
[[Anthony Williams]], una delle principali menti coinvolte nella creazione dell'architettura COM, distribuì un paio di documenti Microsoft interni che trattavano il concetto di componenti software; "''Object architecture: dealing with the unknown - or - Type safety in a dynamically extensible class''" ("''Architettura di un oggetto: trattare l'ignoto - o - Sicurezza dei tipi in una classe dinamicamente estensibile''") nel [[1988]] e "''On inheritance: what it means and how to use it''" ("''Sull'ereditarietà: cosa significa e come si usa''") nel [[1990]]. Questi gettarono le basi per molte, se non tutte, delle idee dietro ai fondamenti di COM.
 
Da molte di quelle idee nacque il primo [[framework]] ad oggetti di Microsoft, [[Object Linking and Embedding|OLE]] ([[acronimo]] dell'[[Lingua inglese|inglese]] ''Object linking and embedding'', sta per ''Collegamento ed incorporazione di oggetti''). OLE fu costruito partendo dal [[Dynamic Data Exchange|DDE]] e progettato con un occhio di riguardo per i [[Documento composito|documenti compositi]]; fu introdotto per la prima volta con [[Microsoft Word|Word per Windows]] ed [[Microsoft Excel|Excel]] nel [[1991]], e fu successivamente incluso in Windows, a partire dalla versione [[Windows 3.x|3.1]] del [[1992]].
Riga 73:
 
===Conteggio dei riferimenti===
Uno scenario in cui il reference counting porta a problemi è quello in cui due oggetti COM hanno si riferiscono l'un l'altro, come accade ad esempio usando i ''''connection points'''' o gli ''''event sink''''. In questo caso nessuno dei due oggetti può rilasciare se stesso perché deve prima rilasciare l'altro, che dal canto suo non può farsi rilasciare perché ha ancora un riferimento all'oggetto che vorrebbe rilasciarlo. Questo circolo vizioso si può spezzare in due modi: una terminazione forzata (out-of-band termination) di uno dei due oggetti, oppure la creazione di due oggetti COM identici referenziati debolmente, di cui uno è usato per connettersi al partner di comunicazione e l'altro serve solo per terminare il primo.
 
===Inferno delle DLL===
Riga 92:
*{{en}} [https://web.archive.org/web/20041011222635/http://msdn.microsoft.com/library/en-us/dnolegen/html/msdn_aboutole.asp What OLE is Really About] by Kraig Brockschmidt. An Overview of COM and OLE.
*{{cita web|http://www.research.microsoft.com/comapps/|Component Application Group at Microsoft Research|lingua=en}}
*{{cita web|1=http://www.iol.ie/~locka/mozilla/mozilla.htm|2=Mozilla ActiveX Project|lingua=en|accesso=2 maggio 2006|urlarchivio=https://web.archive.org/web/20060721123224/http://www.iol.ie/%7Elocka/mozilla/mozilla.htm|dataarchivio=21 luglio 2006|urlmorto=sì}}
*{{en}} [https://web.archive.org/web/20060428072429/http://www.codeproject.com/com/comintro.asp Introduction To Com] - basic introduction on how to use COM-components, CodeProject
*{{en}} [httphttps://support.microsoft.com/kb/159621/en-us INFO: Difference Between OLE Controls and ActiveX Controls] from Microsoft
*{{cita web|1=http://www.codeproject.com/com/CCOMThread.asp|2=Understanding The COM Single-Threaded Apartment Part 1|lingua=en|accesso=2 maggio 2006|urlarchivio=https://web.archive.org/web/20060719003112/http://www.codeproject.com/com/CCOMThread.asp|dataarchivio=19 luglio 2006|urlmorto=sì}}
*{{cita web|1=http://www.codeproject.com/com/CCOMThread2.asp|2=Understanding The COM Single-Threaded Apartment Part 2|lingua=en|accesso=2 maggio 2006|urlarchivio=https://web.archive.org/web/20060614231735/http://www.codeproject.com/com/CCOMThread2.asp|dataarchivio=14 giugno 2006|urlmorto=sì}}
Riga 100:
 
{{Componenti di Windows}}
{{Controllo di autorità}}
{{portale|informatica|microsoft}}