ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² ΡƒΡ‡Ρ‘Π±Π΅, ΠΎΡ‡Π΅Π½ΡŒ быстро...
Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ вмСстС Π΄ΠΎ ΠΏΠΎΠ±Π΅Π΄Ρ‹

Π―Π·Ρ‹ΠΊΠΈ программирования. 
ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

НСзависимо ΠΎΡ‚ ΡΠ·Ρ‹ΠΊΠ° программирования, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ написаны управляСмыС прилоТСния, ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ интСрфСйс ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ программирования (Application Program Interface, API): Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ классов .NET Framework FCL (Framework Class Library). Π’ .NET Framework Software Development Kit (SDK) Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ€ CIL — ILASM, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ прилоТСния нСпосрСдствСнно… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π―Π·Ρ‹ΠΊΠΈ программирования. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π’Π°ΠΊ ΠΊΠ°ΠΊ управляСмыС прилоТСния, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ всСх доступных языков программирования Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ .NET, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π΅ Π² ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ процСссора (ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹), Π° Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ языка CIL, Ρ‚ΠΎ ΠΈ Π²Ρ‹Π±ΠΎΡ€ языка программирования становится практичСски вопросом Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ. Π’Π΅Ρ€ΠΌΠΈΠ½ «ΠΎΠ±Ρ‰Π΅ΡΠ·Ρ‹ΠΊΠΎΠ²Π°Ρ» Π² ΡΠ»ΠΎΠ²ΠΎΡΠΎΡ‡Π΅Ρ‚Π°Π½ΠΈΠΈ «ΠΎΠ±Ρ‰Π΅ΡΠ·Ρ‹ΠΊΠΎΠ²Π°Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‰Π°Ρ срСда» ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ CLR Π±Π΅Π·Ρ€Π°Π·Π»ΠΈΡ‡Π½Π° ΠΊ ΡΠ·Ρ‹ΠΊΡƒ программирования. Microsoft поставляСт компиляторы, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΌ языкС CIL, для Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… языков программирования: Π‘#, C++, Visual Basic ΠΈ JScript.

Π’ .NET Framework Software Development Kit (SDK) Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ€ CIL — ILASM, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ прилоТСния нСпосрСдствСнно Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ CIL. Π Π°Π·Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ компиляторы для Π΄Ρ€ΡƒΠ³ΠΈΡ… языков, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Perl, Python, Eiffel ΠΈ Π΄Π°ΠΆΠ΅ COBOL.

НСзависимо ΠΎΡ‚ ΡΠ·Ρ‹ΠΊΠ° программирования, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ написаны управляСмыС прилоТСния, ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ интСрфСйс ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ программирования (Application Program Interface, API): Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ классов .NET Framework FCL (Framework Class Library).

УправляСмыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ исходного ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ компилятором, способным ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ языка CIL, получаСтся управляСмый ΠΌΠΎΠ΄ΡƒΠ»ΡŒ (managed module), ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для выполнСния ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ срСды CLR. Π€Π°ΠΉΠ»Ρ‹, содСрТащиС Ρ‚Π°ΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, ΠΊΠ°ΠΊ EXE, DLL ΠΈΠ»ΠΈ NETMODULE. УправляСмыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ содСрТат ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ основныС элСмСнты:

  • β€’ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Ρ„Π°ΠΉΠ»Π° Windows Portable Executable (Π Π•);
  • β€’ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ CLR, содСрТащий Ρ‚Π°ΠΊΠΈΠ΅ свСдСния, ΠΊΠ°ΠΊ мСстополоТСниС ΠΊΠΎΠ΄Π° Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ CIL ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…;
  • β€’ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ всС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТатся Π²Π½ΡƒΡ‚Ρ€ΠΈ модуля, ΠΈ ΡΡΡ‹Π»ΠΊΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ;
  • β€’ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ CIL, созданныС Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ компиляции исходного тСкста.

ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ — это ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ управляСмого модуля, ΠΈΡ… ΡΠΎΠ·Π΄Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ CIL-совмСстимый компилятор. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… управляСмый ΠΌΠΎΠ΄ΡƒΠ»ΡŒ описываСт сам сСбя. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ (классы, интСрфСйсы ΠΈ Ρ‚. ΠΏ.) содСрТатся Π² ΡƒΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅.

ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ хранятся Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡ€Π° Ρ‚Π°Π±Π»ΠΈΡ†. Π’ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… (TypeDef) пСрСчислСны ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² ΡΡ‚ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ Ρ‚ΠΈΠΏΡ‹. Π’ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ пСрСчислСны ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ этими Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, Π² Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ — поля, Π² Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠΉ — свойства ΠΈ Ρ‚. Π΄. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ эти Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ список всСх Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ элСмСнтов, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… состоит ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΏ. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… пСрСчислСны ссылки Π½Π° Π²Π½Π΅ΡˆΠ½ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ (Ρ‚ΠΈΠΏΡ‹ ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Ρ‚ΠΈΠΏΠΎΠ² Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… модулях, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ), сборки, содСрТащиС внСшниС Ρ‚ΠΈΠΏΡ‹, ΠΈ Π΄Ρ€.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… для ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° большого интСрСса Π½Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚авляСт. Однако Π² ΡΠΎΡΡ‚Π°Π²Π΅ .NET Framework SDK имССтся ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ILDASM, которая позволяСт ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ содСрТаниС управляСмых ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ