ΠΠ»Π°Π²Π½ΡΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠΌ VB6 (ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΡΡΡΡΠ°Π½Π΅Π½ Π² Visual Basic .NET) ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ VB6 ΡΠ²Π»ΡΠ΅ΡΡΡ, ΡΠΊΠΎΡΠ΅Π΅, "ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½Π½ΡΠΌ" ΡΠ·ΡΠΊΠΎΠΌ, Π° Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² VB6 ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅ΡΡΡ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡ ΡΠΈΠΏΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡΠΌΠΈ "ΠΏΠΎΠ΄ΡΠΈΠ½Π΅Π½Π½ΠΎΡΡΠΈ" (Ρ.Π΅. Π½Π΅Ρ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ) ΠΈ Π½Π΅Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, VB6 Π½Π΅ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΡΠΎΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π½Π΅ Π³ΠΎΡΠΎΠ²Ρ "ΡΠΏΡΡΡΠΈΡΡΡΡ" Π΄ΠΎ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Win32 API (ΡΡΠΎ Π² Π»ΡΡΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ, Π° Π² Ρ ΡΠ΄ΡΠ΅ΠΌ β ΠΎΠΏΠ°ΡΠ½ΠΎ).
ΠΠΎΠ΄Ρ ΠΎΠ΄ Java/J2EE
ΠΡΠ»ΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Java. Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Java ΡΠ²Π»ΡΠ΅ΡΡΡ (ΠΏΠΎΡΡΠΈ) ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΡΠ½ΠΈ Π² C++. ΠΠ½ΠΎΠ³ΠΈΠ΅ Π·Π½Π°ΡΡ, ΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ΅ΠΆΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ β Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Java. Java (ΠΊΠ°ΠΊ ΡΠ·ΡΠΊ) ΠΈΠ·Π±Π°Π²Π»Π΅Π½ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π½Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎΡΡΠ΅ΠΉ C++. Java (ΠΊΠ°ΠΊ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°) ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ "ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²", ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ². Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ ΡΠΈΠΏΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ "ΡΠΎΠ»ΡΠΊΠΎ Java", ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠΎΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠ΅ ΡΠ²ΡΠ·Ρ Ρ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , ΠΎΠ±ΠΌΠ΅Π½ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π² Web.
Π₯ΠΎΡΡ Java β ΠΎΡΠ΅Π½Ρ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΡΠΉ ΡΠ·ΡΠΊ, Π΅Π³ΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Java Π² ΡΠΈΠΊΠ»Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Java ΠΈ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ. ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, Java Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΠΎΠ·Π»Π°Π³Π°ΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ Π½Π°Π΄Π΅ΠΆΠ΄Ρ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ·ΡΠΊΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΈΠ΄Π΅Ρ Π²ΡΠ°Π·ΡΠ΅Π· Ρ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠ΅Π»ΡΡ Java (Π΅Π΄ΠΈΠ½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Ρ Π·Π°Π΄Π°Ρ). Π Π΅Π°Π»ΡΠ½ΠΎΡΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΡΠ°ΠΊΠΎΠ²Π°, ΡΡΠΎ Π² ΠΌΠΈΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ ΡΡΡΠΎΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΌ Π±Ρ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΡΠ»ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Java Π΄Π΅Π»Π°Π΅Ρ ΡΡΡ Π·Π°Π΄Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎΠΉ.
Java Π² ΡΠΈΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ Π³ΡΠ°ΡΠΈΠΊΡ ΠΈΠ»ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ (Π² ΡΡΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Java ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΆΠ΅Π»Π°ΡΡ Π»ΡΡΡΠ΅Π³ΠΎ). ΠΠ»Ρ ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ ΠΌΠ΅ΡΡΠ΅ Π²ΡΠ³ΠΎΠ΄Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ·ΡΠΊ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, C++). Π£Π²Ρ, ΠΏΠΎΠΊΠ° Java Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠΎΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ "ΡΡΠΆΠ΅ΡΠΎΠ΄Π½ΡΠΌ" API, ΠΈΡΡΠΈΠ½Π½Π°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ.
ΠΠΎΠ΄Ρ ΠΎΠ΄ COM
ΠΠΎΠ΄Π΅Π»Ρ COM (Component Object Model β ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²) Π±ΡΠ»Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ ΠΊΠ°ΡΠΊΠ°ΡΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Microsoft. ΠΠΎ ΡΡΡΠΈ, COM β ΡΡΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, "Π·Π°ΡΠ²ΠΈΠ²ΡΠ°Ρ" ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅: Π΅ΡΠ»ΠΈ ΠΊΠ»Π°ΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ COM, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ Π±Π»ΠΎΠΊ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠ΅Π»Π΅ΡΡΡ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ COM-ΡΠ΅ΡΠ²Π΅ΡΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ± Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½Π΅ΠΌΡ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ·ΡΠΊΠ°. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ C++, ΠΌΠΎΠ³ΡΡ ΡΡΡΠΎΠΈΡΡ COM-ΠΊΠ»Π°ΡΡΡ, ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΡΠ΅ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² VB6. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΠΈΠ΅ Delphi, ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ COM-ΠΊΠ»Π°ΡΡΡ, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ C, ΠΈ Ρ.Π΄. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΈ Π²Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ± ΡΡΠΎΠΌ Π·Π½Π°Π΅ΡΠ΅, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ COM ΠΎΡ ΡΠ·ΡΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½ΠΎΠ²ΡΠΉ COM-ΠΊΠ»Π°ΡΡ ΠΈΠ· ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ (ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ COM Π½Π΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ). ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² COM-ΠΊΠ»Π°ΡΡΠ° Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅ΡΠΊΠ»ΡΠΆΠ΅Π΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ "ΠΎΠ±Π»Π°Π΄Π°Π½ΠΈΡ".
ΠΡΠ΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ COM ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΡ Π΄ΠΈΡΠ»ΠΎΠΊΠ°ΡΠΈΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠ°ΠΊ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (AppID), "Π·Π°Π³Π»ΡΡΠΊΠΈ" ΠΈ "Π·Π°ΠΌΠ΅ΡΡΠΈΡΠ΅Π»ΠΈ" Π² ΡΡΠ΅Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ COM, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΠΎΠΊΠ΅ΡΠ°ΠΌ, RPC-Π²ΡΠ·ΠΎΠ²Π°ΠΌ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ VB6 COM-ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
' ΠΡΠΎΡ Π±Π»ΠΎΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° VB6 ΠΌΠΎΠΆΠ΅Ρ Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ COM-ΠΊΠ»Π°ΡΡ,
' ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π½Π° Π»ΡΠ±ΠΎΠΌ ΡΠ·ΡΠΊΠ΅, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ΅ΠΌ COM, ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ
' Π² Π»ΡΠ±ΠΎΠΉ ΡΠΎΡΠΊΠ΅ ΡΠ΅ΡΠΈ (Π²ΠΊΠ»ΡΡΠ°Ρ Π²Π°ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ).
Dim Ρ as MyCOMClass
Set Ρ = New MyCOMClass ' Π Π°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΡΡΠ½ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ AppID.
Ρ.DoSomeWork
Π₯ΠΎΡΡ COM ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ ΠΎΡΠ΅Π½Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΡΡ, Π²Π½ΡΡΡΠ΅Π½Π½Π΅ ΠΎΠ½Π° ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½Π° (ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΏΠΎΠΊΠ° Π²Ρ Π½Π΅ ΠΏΠΎΡΡΠ°ΡΠΈΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΡΡΠ΅Π² Π½Π° ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ Π΅Π΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² β ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΡΠ΅ Π½Π° C++). Π‘ ΡΠ΅Π»ΡΡ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΠΈΠ½Π°ΡΠ½ΡΡ COM-ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π±ΡΠ»ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠ°ΡΠΊΠ°ΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ COM. Π‘ΡΠ΅Π΄ΠΈ Π½ΠΈΡ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ATL (Active Template Library β Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π°ΠΊΡΠΈΠ²Π½ΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ²), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ C++-ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΈ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ², ΡΠΏΡΠΎΡΠ°ΡΡΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ COM-ΡΠΈΠΏΠΎΠ².
ΠΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ·ΡΠΊΠΈ ΡΠ°ΠΊΠΆΠ΅ Π² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΡΠΊΡΡΠ²Π°ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ COM ΠΎΡ Π³Π»Π°Π· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΊΡΡΡΡ Π²ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ COM. ΠΠ°ΠΆΠ΅ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠ³ΠΎ Ρ COM ΡΠ·ΡΠΊΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, VB6), Π²Ρ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Ρ Π±ΠΎΡΠΎΡΡΡΡ Ρ "Ρ ΡΡΠΏΠΊΠΈΠΌΠΈ" ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ Ρ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠ΅ΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π² ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΌΠΈ "ΠΊΠΎΡΠΌΠ°ΡΠΎΠΌ DLL").
ΠΠΎΠ΄Ρ ΠΎΠ΄ Windows DNA
ΠΠΎ Π²ΡΠ΅ΠΌ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ Π²ΡΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΠΌ Π΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠ°Ρ ΠΌΠ΅Π»ΠΎΡΡ, ΠΊΠ°ΠΊ ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ. ΠΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ Microsoft Π΄ΠΎΠ±Π°Π²ΠΈΠ»Π° Π² ΡΠ²ΠΎΠ΅ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠΉ Ρ COM Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Windows DNA (Distributed interNet Applications Architecture β Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ) ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ Π½Π΅ΠΏΡΠΎΡΡΡΠΌ Π΄Π΅Π»ΠΎΠΌ.
ΠΠ΅ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»Ρ ΡΡΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΡΡΠ΅ΠΊΠ°Π΅Ρ ΠΈΠ· ΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠ°ΠΊΡΠ°, ΡΡΠΎ Windows DNA ΡΡΠ΅Π±ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ ΡΠ·ΡΠΊΠΎΠ² (ASP, HTML, XML, JavaScript, VBScript, Π° ΡΠ°ΠΊΠΆΠ΅ COM(+) ΠΈ API Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ADO).
ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΡΡΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ ΡΠ²ΡΠ·Π°Π½Ρ ΠΎΠ΄Π½Π° Ρ Π΄ΡΡΠ³ΠΎΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² JavaScript ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ C, a VBScript ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ VB6. COM-ΡΠ΅ΡΠ²Π΅ΡΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π² ΡΡΠ΅Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ COM+, ΠΏΠΎ Π²ΠΈΠ΄Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ASP-ΡΡΡΠ°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡ Π²ΡΠ·ΡΠ²Π°ΡΡ. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ β ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ Π·Π°ΠΏΡΡΠ°Π½Π½Π°Ρ ΡΠΌΠ΅ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ.
Π ΡΠΎΠΌΡ ΠΆΠ΅, ΠΈ ΡΡΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ·ΡΠΊ ΠΈ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΈΠΏΠΎΠ² (ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ ΠΏΠΎΡ ΠΎΠΆΠΈΠΌΠΈ ΠΎΠ΄Π½Π° Π½Π° Π΄ΡΡΠ³ΡΡ). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅Π»ΡΠ·Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ "int" Π² JavaScript ΠΈ "Integer" Π² VB6 ΠΎΠ·Π½Π°ΡΠ°ΡΡ Π² ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ .NET
Π‘Π»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΊΠΎΠ³ΠΎ ΡΡΠΎΠΊΠ° ΠΈΡΡΠΎΡΠΈΠΈ. ΠΡΠ½ΠΎΠ²Π½ΡΠΌ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΆΠΈΠ·Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° Windows Π±ΡΠ»Π° ΡΡΡΠ΄Π½Π°. ΠΠ°ΡΠΊΠ°Ρ .NET Framework ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ°Π΄ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΉ "ΡΠΈΠ»ΠΎΠ²ΠΎΠΉ" ΠΏΠΎΠΏΡΡΠΊΠΎΠΉ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π°ΡΡ ΠΆΠΈΠ·Π½Ρ Π»Π΅Π³ΡΠ΅. Π Π΅ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ .NET, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ "ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ΅" (ΠΈΠ·Π²ΠΈΠ½ΠΈΡΠ΅, Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±Π²ΠΈΠ½ΡΡΡ ΠΏΠΎΡΡΠ»ΡΠ½ΠΎΠ³ΠΎ Π·Π° ΡΠ°ΠΊΠΎΠ΅ ΠΈΠ·Π²Π΅ΡΡΠΈΠ΅). ΠΡ ΠΏΠΎΠΉΠΌΠ΅ΡΠ΅ ΠΈΠ· Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° ΠΊΠ½ΠΈΠ³ΠΈ, ΡΡΠΎ .NET Framework β ΡΡΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½ΠΎΠ²Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π² ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Windows, ΡΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ, ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌ Microsoft, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Mac OS X ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ Unix/ Linux. Π§ΡΠΎΠ±Ρ ΡΡΠΎ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ, Π²ΠΎΡ Π²Π°ΠΌ ΠΊΡΠ°ΡΠΊΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π±Π°Π·ΠΎΠ²ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΠΌΡΡ .NET.
β’ ΠΠΎΠ»Π½ΠΎΡΠ΅Π½Π½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. ΠΡΠΎ (ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ) Ρ ΠΎΡΠΎΡΠΎ. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ COM-ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠΎΠ³ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡΡΡ (Ρ.Π΅. Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ) Ρ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡΠΌΠΈ Π±ΠΈΠ½Π°ΡΠ½ΡΠΌΠΈ .NET-ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ΅ΡΠ²ΠΈΡΡ PInvoke (Platform Invocation Services β ΡΠ΅ΡΠ²ΠΈΡΡ Π²ΡΠ·ΠΎΠ²Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌ) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π° Π±Π°Π·Π΅ C (Π²ΠΊΠ»ΡΡΠ°Ρ API ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ) ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° .NET.
β’ ΠΠΎΠ»Π½Π°Ρ ΠΈ ΡΠΎΡΠ°Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΡΠ·ΡΠΊΠΎΠ². Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ COM, ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° .NET ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ΅ΠΆΡΡΠ·ΡΠΊΠΎΠ²ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΌΠ΅ΠΆΡΡΠ·ΡΠΊΠΎΠ²ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΌΠ΅ΠΆΡΡΠ·ΡΠΊΠΎΠ²ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ.
β’ ΠΠ±ΡΠΈΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ·ΡΠΊΠΎΠ² Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ .NET. ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ ΡΠΈΠΏΠΎΠ², "ΠΏΠΎΠ½ΡΡΠ½ΡΡ " ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ·ΡΠΊΡ.
β’ ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π±Π°Π·ΠΎΠ²ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ API ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π²ΡΠ΅ΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ .NET.
β’ ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ COM. Π ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΌ .NET-ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ Π½Π΅Π±ΡΠ΄Π΅Ρ ΠΌΠ΅ΡΡΠ° Π΄Π»Ρ IClassFactory, IUnknown, IDispatch, IDL-ΠΊΠΎΠ΄Π° ΠΈ "Π·Π»ΠΎΠ±Π½ΡΡ " ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ VARIANT (BSTR, SAFEARRAY ΠΈ Ρ.Π΄.).
β’ Π£ΠΏΡΠΎΡΠ΅Π½Π½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ. Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠΌ .NET, Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΡ Π² ΡΠ΅Π΅ΡΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ. Π ΡΠΎΠΌΡ ΠΆΠ΅ .NET Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π²Π΅ΡΡΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ *.dll Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅.
ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° Π²Ρ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΠΆΠ΅ ΡΠ°ΠΌΠΈ ΠΏΡΠΈΡΠ»ΠΈ ΠΊ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΡΡΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° .NET Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ Ρ COM (Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ±Π° ΡΡΠΈ ΠΊΠ°ΡΠΊΠ°ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΡΡ ΠΎΠ΄ΡΡ ΠΈΠ· Microsoft). Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΈΠΏΠΎΠ² .NET ΠΈ COM ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠ»ΠΎΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ.