1. COM? ¶
{{|Component Object Model, or COM, is a Microsoft technology for software componentry. It is used to enable cross-software communication and dynamic object creation in many of Microsoft's programming languages. Although it has been implemented on several platforms, it is primarily used with Microsoft Windows. COM is expected to be replaced to at least some extent by the Microsoft .NET framework. COM has been around since 1993 - however, Microsoft only really started emphasizing the name around 1997.
|}}
COMμ μννΈμ¨μ΄ μ»΄ν¬λνΈλ₯Ό μν΄ λ§λ€μ΄μ§ Microsoft μ¬μ κΈ°μ μ΄λ€. μ΄λ μλ§μ MSμ¬μ νλ‘κ·Έλλ° μΈμ΄μμ μννΈμ¨μ΄κ° ν΅μ κ³Ό λμ κ°μ²΄μμ±μ κ°λ₯μΌνλ€. λΉλ‘ μ΄ κΈ°μ μ΄ λ€μμ νλ«νΌμμμ ꡬνμ΄ λκΈ°λ νμμ§λ§ MS Windows μ΄μ체μ μ μ£Όλ‘ μ΄μ©λλ€. μ¬λλ€μ .Net νλ μμν¬κ° COMμ μ΄λμ λκΉμ§λ λ체ν리λΌκ³ κΈ°λνλ€. COM μ 1993λ μ μκ°λκ³ 1997μ¦μν΄μ MSκ° κ°μ‘°ν κΈ°μ μ΄λ€.
90λ
λ λ§μ΄ν¬λ‘μννΈκ° λ΄λμ κ°μ₯ ν΅μ¬μ μΈ κΈ°μ λ‘ μ°¨ν ActiveX λ₯Ό μ΄λ£¨λ κΈ°λ°κΈ°μ μ΄ λλ€. COMμ μΈμ΄κ° μλλΌ κ°μ²΄μ§ν₯μ μ§ν₯νλ λ°μ΄λ리λ₯Ό λ§λ€μ΄ λ΄λ νμ€μ μ§μ ν΄λμ κ²μ΄λ€. λ°λΌμ μ΄λ€ μΈμ΄μ΄λμ§ COM νμ€μ λΆν©νλ λ°μ΄λ리 ννλ₯Ό μμ±ν μ μλ€λ©΄ κ·Έ μΈμ΄λ‘ μμ±ν λ°μ΄λ리λ μΈμ΄ λ
립μ μΌλ‘ COMμ μ§μνλ κ³³μμ μ»΄ν¬λνΈλ‘μ μ¬μ©μ΄ κ°λ₯νλ€. κ³ μ§μ μΌλ‘ μ§μ
μ₯λ²½μ΄ μ
μ²λκ² λμ κΈ°μ λ‘ μ λͺ
νμ§λ§... -_-; .NET μ΄ λμ€λ©΄μ μ΄λ»κ² μ°μ΄κ² λ λ°μ§λ λ―Έμ§μκ° λμ΄λ²λ¦° κΈ°μ μ΄λ€. Vista κ° λμ€λ©΄ μμ ν legacy λ‘ μ·¨κΈλκ² λ κ²μΈμ§... -_-;; μ΄μ MFCλ μ¬μ₯μ κΈΈλ‘ κ±Έμ΄κ°λ κ² κ°κ³ ... λΉμ₯μ΄μΌ μλμ κΈ°λ°μ΄ μ΄ κΈ°μ μ΄λ€λ³΄λ μ΄μ© μ μκ² μ§λ§ .net μ¬μ©μ΄ κΆ€λμ μ€λ₯΄λ©΄ μλ§λ COM λ λ¨Έμ§μμ κ·Έλ κ² λμ§ μμκΉ μΆλ€.
|}}
COMμ μννΈμ¨μ΄ μ»΄ν¬λνΈλ₯Ό μν΄ λ§λ€μ΄μ§ Microsoft μ¬μ κΈ°μ μ΄λ€. μ΄λ μλ§μ MSμ¬μ νλ‘κ·Έλλ° μΈμ΄μμ μννΈμ¨μ΄κ° ν΅μ κ³Ό λμ κ°μ²΄μμ±μ κ°λ₯μΌνλ€. λΉλ‘ μ΄ κΈ°μ μ΄ λ€μμ νλ«νΌμμμ ꡬνμ΄ λκΈ°λ νμμ§λ§ MS Windows μ΄μ체μ μ μ£Όλ‘ μ΄μ©λλ€. μ¬λλ€μ .Net νλ μμν¬κ° COMμ μ΄λμ λκΉμ§λ λ체ν리λΌκ³ κΈ°λνλ€. COM μ 1993λ μ μκ°λκ³ 1997μ¦μν΄μ MSκ° κ°μ‘°ν κΈ°μ μ΄λ€.
2. Migration from COM to .NET ¶
{{|
The COM platform has largely been superseded by the Microsoft .NET initiative and Microsoft now focuses its marketing efforts on .NET. To some extent, COM is now deprecated in favour of .NET.
Despite this, COM remains a viable technology with an important software base – for example the popular DirectX 3D rendering SDK is based on COM. Microsoft has no plans for discontinuing COM or support for COM.
There exists a limited backward compatibility in that a COM object may be used in .NET by implementing a runtime callable wrapper (RCW), and .NET objects may be used in COM objects by calling a COM callable wrapper. Additionally, several of the services that COM+ provides, such as transactions and queued components, are still important for enterprise .NET applications.
|}}
COM νλ«νΌμ Microsoft .NETνλ μμμ΄ λμ€λ©΄μ λ§μ λΆλΆ λ체λμλ€. λν Microsoft μ¬λ μ΄μ .NETμ λν λ§μΌν μ νλλ° λ Έλ ₯νλ€. μ½κ° λ λμκ° μκ°ν΄λ³΄λ©΄ .NETμ μ νΈνλ νκ²½μμ μ΄μ μ¬μμ κΈΈλ‘ μ μ΄λ€μλ€.
κ·Έλ μ§λ§ COMμ μ¬μ ν μννΈμ¨μ΄μ μ€μν κΈ°λ°λ€κ³Ό ν¨κ» μ€μ©μ μΈ κΈ°μ μ΄λ€. μλ₯Ό λ€μλ©΄ DirectX 3Dμ λ λλ§ SDK λ COMμ κΈ°λ°νκ³ μλ€. Microsoft λ COMλ₯Ό κ³μ κ°λ°ν κ³νλ, μ§μν κ³νλ κ°μ§κ³ μμ§ μλ€.
RCWλ₯Ό ꡬννκ³ μλ .Net νμμλ COM κ°μ²΄λ μλ§λ μ νμ μΌλ‘ νΈνμ±μ μΈ‘λ©΄μμ μ¬μ©λ κ²μ΄λ€. λν .NET κ°μ²΄λ€μ μλ§λ COM callable wrapperλ₯Ό νΈμΆνλ κ² λλ¬Έμ COM κ°μ²΄λ€μμμ μ¬μ©λ κ²μ΄λ€. λ§λΆμ¬μ COM+κ° μ 곡νλ μΌλΆλΆμ μλΉμ€λ€(transaction, queued components)μ μ¬μ ν .NET μμ©νλ‘κ·Έλ¨μμλ μ€μν λΆλΆμ΄λ€.
Microsoft COM Page
The COM platform has largely been superseded by the Microsoft .NET initiative and Microsoft now focuses its marketing efforts on .NET. To some extent, COM is now deprecated in favour of .NET.
Despite this, COM remains a viable technology with an important software base – for example the popular DirectX 3D rendering SDK is based on COM. Microsoft has no plans for discontinuing COM or support for COM.
There exists a limited backward compatibility in that a COM object may be used in .NET by implementing a runtime callable wrapper (RCW), and .NET objects may be used in COM objects by calling a COM callable wrapper. Additionally, several of the services that COM+ provides, such as transactions and queued components, are still important for enterprise .NET applications.
|}}
COM νλ«νΌμ Microsoft .NETνλ μμμ΄ λμ€λ©΄μ λ§μ λΆλΆ λ체λμλ€. λν Microsoft μ¬λ μ΄μ .NETμ λν λ§μΌν μ νλλ° λ Έλ ₯νλ€. μ½κ° λ λμκ° μκ°ν΄λ³΄λ©΄ .NETμ μ νΈνλ νκ²½μμ μ΄μ μ¬μμ κΈΈλ‘ μ μ΄λ€μλ€.
κ·Έλ μ§λ§ COMμ μ¬μ ν μννΈμ¨μ΄μ μ€μν κΈ°λ°λ€κ³Ό ν¨κ» μ€μ©μ μΈ κΈ°μ μ΄λ€. μλ₯Ό λ€μλ©΄ DirectX 3Dμ λ λλ§ SDK λ COMμ κΈ°λ°νκ³ μλ€. Microsoft λ COMλ₯Ό κ³μ κ°λ°ν κ³νλ, μ§μν κ³νλ κ°μ§κ³ μμ§ μλ€.
RCWλ₯Ό ꡬννκ³ μλ .Net νμμλ COM κ°μ²΄λ μλ§λ μ νμ μΌλ‘ νΈνμ±μ μΈ‘λ©΄μμ μ¬μ©λ κ²μ΄λ€. λν .NET κ°μ²΄λ€μ μλ§λ COM callable wrapperλ₯Ό νΈμΆνλ κ² λλ¬Έμ COM κ°μ²΄λ€μμμ μ¬μ©λ κ²μ΄λ€. λ§λΆμ¬μ COM+κ° μ 곡νλ μΌλΆλΆμ μλΉμ€λ€(transaction, queued components)μ μ¬μ ν .NET μμ©νλ‘κ·Έλ¨μμλ μ€μν λΆλΆμ΄λ€.
Microsoft COM Page
Is COM still supported? Is it going away? COM is a feature of Windows. Each version of Windows has a support policy described in the Windows Product Lifecycle. COM continues to be supported as part of Windows. COM is a planned feature of the coming version of Windows, code-named "Longhorn".
4. Thread ¶
COM μ 'μΈμ΄'κ° μλ 'κΈ°μ 'μ΄λ€. μ΄λ ASP κ° VBScript μΈμ΄λ₯Ό μλ―Ένμ§ μλ κ²κ³Ό κ°λ€.
μμ μ COM νλ‘κ·Έλλ°μ νλ€κ° Java μμμ κ²°κ³Όλ¬Όλ€μ 보면μ 'COM μ OS νλ«νΌ/C & C++ νκ³ λ΄μμμ μ»΄ν¬λνΈ λͺ¨λΈμ΄λΌλ©΄, Java μμμ Component (Beans) λ VM μμμμ μμ λ‘μ΄ μ»΄ν¬λνΈ λͺ¨λΈμ΄κ΅¬λ' λΌλ μκ°μ΄ λ€κΈ°λ. .NET νλ«νΌ μ΄νμ COM μ΄ μ¬λΌμ§κ² λλ건 μ΄μ©λ©΄ λΉμ°ν μμμΌ κ²μ΄λ€.
COM μ μ²μ 곡λΆνκ³ μ§μ ꡬνν λμλ λͺ¨λ κ²λ€μ΄ μ κΈ°ν΄λ³΄μΈλ€. ν©ν λ¦¬λ€ μ€λ§νΈ ν¬μΈν°λ€ μ€ν
-μ€μΌλ ν€μ΄λ€ μΈν°νμ΄μ€λ€ ꡬνμμκ³Ό μΈν°νμ΄μ€μμμ λ€λ₯΄λ€ λ±λ±. νμ§λ§, λκΈμ ν΄λΉλμ΄λ³΄μ΄λ Java νλ«νΌ λ΄μμμ μ루μ
λ€μ 보면 λ무λ λΉμ°νκ±΄λ° λλ¨νκ² ννλμ΄μλ€κ±°λ (μλ₯Ό λ€λ©΄ 'μΈν°νμ΄μ€ μμ'. COM μ±
μμλ μ΄κ±Έ μ 무μΈκ° μλ‘μ΄ λλ¨ν κΈ°μ μΈ μ μμ νμκΉ?) μμ νμκ° μλ κΈ°μ μΌ μλ μλ€. (μ€λ§νΈ ν¬μΈν° : VM μ§μμ λ°λ νλ«νΌμμ μ ν νμκ° μλ€.) (λ¬Όλ‘ , μ΄κ±΄ COM μ μ€λͺ
νλ μ±
λ€μ€μ C++ λ‘ COM μ ꡬνμ μ€λͺ
νλ μ±
λ€μ νν¨)
COM μ 곡λΆνλ λΉμ λ€λ μκ° : 무μΈκ° νΉμ κΈ°μ μ λν΄μ 곡λΆλ₯Ό ν λ λ무λ μμν μ©μ΄λ€μ΄ λ§μ΄ λμμ 'λλ¨ν΄λ³΄μ΄λ' νΉμ '무μΈκ° μμ΄λ³΄μ΄λ' λ
μλ€μ΄ μκ³€ νλ€. κ·Έ κ²½μ°, λκΈμ λ λμ κΈ°μ λ€μ΄ ν΄λΉ λ¬Έμ λ€μ μ΄λ»κ² ν΄κ²°νλμ§μ λν κ΄μ°°μ΄ νμνλ€.
--1002
----
COM MFC/ObjectLinkingEmbedding
COM MFC/ObjectLinkingEmbedding