Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π—Π«Πš ΠŸΠ ΠžΠ“Π ΠΠœΠœΠ˜Π ΠžΠ’ΠΠΠ˜Π― Π‘# 2005 И ΠŸΠ›ΠΠ’Π€ΠžΠ ΠœΠ .NET 2.0. 3-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 13

Автор Π­Π½Π΄Ρ€ΡŽ ВроСлсСн

Π˜Π½ΡΡ‚Π°Π»Π»ΡΡ†ΠΈΡ срСды выполнСния .NET

Для вас Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡΡŽΡ€ΠΏΡ€ΠΈΠ·ΠΎΠΌ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ .NET ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° машинС, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ установлСн каркас .NET Framework. Для вас, ΠΊΠ°ΠΊ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° .NET-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, это Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ваша машина Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ сконфигурирована ΡƒΠΆΠ΅ Π² процСссС установки свободно доступного ΠΏΠ°ΠΊΠ΅Ρ‚Π° .NET Framework 2.0 SDK (ΠΈΠ»ΠΈ любой коммСрчСский срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ .NET-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Visual Studio 2005).

Однако, Ссли Π²Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ установлСнной систСмы .NET, этот ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π΅ смоТСт. По Π­Ρ‚ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Microsoft ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ установочный ΠΏΠ°ΠΊΠ΅Ρ‚ dotnetfx.exe, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ бСсплатно ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ ΠΈ установлСн вмСстС с вашим ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм. Π­Ρ‚Π° установочная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² .NET Framework 2.0 SDK, Π° Ρ‚Π°ΠΊΠΆΠ΅ доступна для бСсплатной Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ с ΡƒΠ·Π»Π° Microsoft.

ПослС установки dotnetfx.exe ваша машина Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π±Π°Π·ΠΎΠ²ΡŒΡ… классов .NET, Ρ„Π°ΠΉΠ»Ρ‹ срСды выполнСния .NET (mscoree.dll) ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ инфраструктуру .NET (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, GAC).

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. ΠŸΡ€ΠΈ построСнии Web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ .NET Π½Π΅ прСдполагаСтся, Ρ‡Ρ‚ΠΎ Π½Π° машинС ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π±ΡƒΠ΄Π΅Ρ‚ установлСн каркас .NET Framework, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ просто ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΠ±Ρ‰ΠΈΠΉ HTML-ΠΊΠΎΠ΄ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, JavaScript-ΠΊΠΎΠ΄ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Π°Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ .NET

Π’ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ этой ставы ΠΏΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ ΠΌΠ½Π΅ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ нСсколько слов ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ нСзависимости ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ .NET. ΠΠ΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΡΡ‚ΡŒΡŽ для ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ .NET ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм Microsoft (Mac OS X, многочислСнныС Π²Π°Ρ€ΠΈΠ°Ρ†ΠΈΠΈ Linux, Π² частности BeOS ΠΈ FreeBSD ΠΈ Π΄Ρ€.). Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΡ‹ с Π²Π°ΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ Π²ΠΎ "всСлСнной" .NET: это Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° CLI (Common Language infrastructure – общСязыковая инфраструктура).

Когда Microsoft выпустила язык программирования C# ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ .NET, ΠΎΠ½Π° выпустила Ρ‚Π°ΠΊΠΆΠ΅ мноТСство Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ описали синтаксис ΠΈ сСмантику языков C# ΠΈ CIL, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° .NET, Π±Π°Π·ΠΎΠ²Ρ‹Π΅ пространства ΠΈΠΌΠ΅Π½ ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ гипотСтичСского ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° срСды выполнСния .NET (извСстного Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ VES, ΠΈΠ»ΠΈ Virtual Execution System – Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ систСма выполнСния). Π•Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ всС эти Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ прСдставлСны Π² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ecma International (http://www.ecma-internatiΠΎnal.org) для утвСрТдСния ΠΈΡ… Π² качСствС ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Ρ‹Ρ… стандартов. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΌΠΈ нас спСцификациями ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

β€’ ECMA-334: спСцификации языка C#;

β€’ ECMA-335: общСязыковая инфраструктура (CLI).

Π’Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ этих Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² проясняСтся, Ссли Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΠΌ сторонам Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ дистрибутивы ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ .NET для любого числа ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм ΠΈ/ΠΈΠ»ΠΈ процСссоров. Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ECMA-335, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, Π±ΠΎΠ»Π΅Π΅ "ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹", поэтому ΠΎΠ½ΠΈ Ρ€Π°Π·Π±ΠΈΡ‚Ρ‹ Π½Π° ΠΏΡΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Ρ‚Π°Π±Π». 1.5.

Π’Π°Π±Π»ΠΈΡ†Π° 1.5. Π Π°Π·Π΄Π΅Π»Ρ‹ CLI

Π Π°Π·Π΄Π΅Π»Ρ‹ ECMA-335 ОписаниС Π Π°Π·Π΄Π΅Π» I. АрхитСктура ΠžΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ ΠΎΠ±Ρ‰ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ CLI, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€Π°Π²ΠΈΠ»Π° CTS ΠΈ CLS, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° срСды выполнСния .NET Π Π°Π·Π΄Π΅Π» II. ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠžΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ структуру ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… .NET Π Π°Π·Π΄Π΅Π» III. CIL ΠžΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ синтаксис ΠΈ сСмантику CIL-ΠΊΠΎΠ΄Π° Π Π°Π·Π΄Π΅Π» IV. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π”Π°Π΅Ρ‚ высокоуровнСвый ΠΎΠ±Π·ΠΎΡ€ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ ΠΏΠΎΠ»Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ дистрибутивом .NET Π Π°Π·Π΄Π΅Π» V. ДополнСния ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ "Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…" элСмСнтов, Ρ‚Π°ΠΊΠΈΡ… Π³Π°ΠΊ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ классов ΠΈ подробности Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ компилятора CIL 

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ IV (Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ) опрСдСляСтся минимальноС мноТСство пространств ΠΈΠΌΠ΅Π½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ сСрвисы, ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Π΅ ΠΎΡ‚ CLI-дистрибутива (ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π²Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄, Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ Π²Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄, поточная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, сСтСвой доступ, Π±Π°Π·ΠΎΠ²Ρ‹Π΅ срСдства Π·Π°Ρ‰ΠΈΡ‚Ρ‹, XML-манипуляции ΠΈ Ρ‚.Π΄.). Π’Π°ΠΊΠΎΠΉ CLI-дистрибутив Π½Π΅ опрСдСляСт пространства ΠΈΠΌΠ΅Π½, ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Web-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ASP.NET), доступ ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… (ADO.NET) ΠΈΠ»ΠΈ построСниС графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (Windows Forms).

Благоприятным, ΠΎΠ΄Π½Π°ΠΊΠΎ, являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π³Π»Π°Π²Π½Ρ‹Π΅ дистрибутивы .NET Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ CLI с эквивалСнтами Microsoft для ASP.NET, ADO.NET ΠΈ Windows Forms, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ производствСнного уровня. На сСгодняшний дСнь Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Π³Π»Π°Π²Π½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ CLI (ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ Microsoft, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Windows). Π₯отя Π² этой ΠΊΠ½ΠΈΠ³Π΅ рассматриваСтся созданиС .NET-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ .NET-дистрибутива Microsoft, Π² Ρ‚Π°Π±Π». 1.6 прСдставлСна Ρ‚Π°ΠΊΠΆΠ΅ информация ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Mono ΠΈ Portable.NET.

Как Mono, Ρ‚Π°ΠΊ ΠΈ Portable.NET ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ECMA-ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ компилятора C# ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° выполнСния .NET, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, Π° Ρ‚Π°ΠΊΠΆΠ΅ многочислСнныС инструмСнты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ эквивалСнтны инструмСнтам, входящим Π² состав .NET Framework 2.0 SDK ΠΎΡ‚ Microsoft. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Mono ΠΈ Portable.NET ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с компиляторами VB .NET, Java ΠΈ C.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Mono ΠΈΠ»ΠΈ Portable.NET, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³Ρƒ М. J. Easton ΠΈ Jason King, Cross-Platform .NET Development: Using Mono, Portable.NET, and Microsoft .NET (Apress, 2004).

Π’Π°Π±Π»ΠΈΡ†Π° 1.6. .NET-дистрибутивы с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ

Дистрибутив ОписаниС http://www.mono-project.com ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Mono являСтся дистрибутивом CLI с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΌ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Linux (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, SuSE, Fedora ΠΈ Ρ‚.Π΄.), Π° Ρ‚Π°ΠΊΠΆΠ΅ дня Win32 ΠΈ Mac OS X http://www.dotgnu.org Portable.NET – это Π΄Ρ€ΡƒΠ³ΠΎΠΉ дистрибутив CLI с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для мноТСства ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм. Portable.NET Π½Π°Ρ†Π΅Π»Π΅Π½ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм (Win32, AIX, BeOS, Mac OS X, Solaris, всС Π³Π»Π°Π²Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Linux ΠΈ Ρ‚.Π΄.)

РСзюмС

ЦСлью этой Π³Π»Π°Π²Ρ‹ Π±Ρ‹Π»ΠΎ описаниС Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для освоСния ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° этой ΠΊΠ½ΠΈΠ³ΠΈ. Π‘Π½Π°Ρ‡Π°Π»Π° Π±Ρ‹Π»ΠΈ рассмотрСны ограничСния ΠΈ слоТности Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠΈΡ…ΡΡ Π΄ΠΎ .NET, Π° Π·Π°Ρ‚Π΅ΠΌ Π±Ρ‹Π» ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΎΠ±Π·ΠΎΡ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ .NET ΠΈ C# ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅Ρ‰Π΅ΠΉ.

Π’ сущности .NET ΠΌΠΎΠΆΠ½ΠΎ свСсти ΠΊ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡƒ срСды Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ (mscoree.dll) ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов (mscorlib.dll ΠΈ ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹). ΠžΠ±Ρ‰Π΅ΡΠ·Ρ‹ΠΊΠΎΠ²Π°Ρ срСда выполнСния (CLR) способна ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ любой Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ .NET-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ (Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΌ Π±Π»ΠΎΠΊΠΎΠΌ), Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этот Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ подчиняСтся ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ управляСмого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Как Π²Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΠ»ΠΈΡΡŒ, ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ содСрТат CIL-ΠΈΠ½cΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΉ (Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ манифСсту ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JIT-компилятора ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² спСцифичСскиС инструкции ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ., Π±Ρ‹Π»Π° выяснСна Ρ€ΠΎΠ»ΡŒ общСязыковых спСцификаций (CLS) ΠΈ ΠΎΠ±Ρ‰Π΅ΠΉ систСмы Ρ‚ΠΈΠΏΠΎΠ² (CTS).

Π—Π°Ρ‚Π΅ΠΌ Π±Ρ‹Π»Π° рассмотрСна, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ildasm.exe, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚ΠΎ, ΠΊΠ°ΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ dotnetfx.exe Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΌΠ°ΡˆΠΈΠ½Ρƒ для использования .NET-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ сказано нСсколько слов ΠΎ нСзависимой ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅ C# ΠΈ .NET.

ГЛАВА 2. ВСхнология создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° языкС C#

Как Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° языкС C#, Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ любой ΠΈΠ· мноТСства доступных инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ .NET-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ЦСлью этой Π³Π»Π°Π²Ρ‹ являСтся ΠΎΠ±Π·ΠΎΡ€ самых Ρ€Π°Π·Π½Ρ‹Ρ… инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ .NET, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅ Visual Studio 2005. Однако начнСтся Π³Π»Π°Π²Π° с рассмотрСния компилятора ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки C#, csc.exe, для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ достаточно самого простого тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°., Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚ (noteepad.exe). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ с Π²Π°ΠΌΠΈ выясним, ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² .NET с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ cordbg.exe. Освоив ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² Π±Π΅Π· графичСского интСрфСйса, ΠΌΡ‹ Π·Π°Ρ‚Π΅ΠΌ выясним, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ исходного ΠΊΠΎΠ΄Π° C# c ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прилоТСния TextPad.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, с тСкстом этой ΠΊΠ½ΠΈΠ³ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ csc.exe ΠΈ Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚/TextPad, Π½ΠΎ я Π΄ΡƒΠΌΠ°ΡŽ, Π²Ρ‹ заинтСрСсованы Π² освоСнии Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΡ… возмоТностСй, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Ρ… Π² Ρ€Π°ΠΌΠΊΠ°Ρ… соврСмСнных IDE (Integrated Development Environment – интСгрированная срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ рассмотрим Ρ‚Π°ΠΊΠΆΠ΅ SharpDevelop – ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным тСкстом. По Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ½Π° ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ со ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ коммСрчСскими срСдствами Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ .NET, обладая Ρ‚Π΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ прСимущСством, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° бСсплатна, А послС ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ³ΠΎ обсуТдСния возмоТностСй Visual C# 2005 Express ΠΌΡ‹ приступим ΠΊ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ Visual Studio 2005. Закончится Π³Π»Π°Π²Π° нСбольшим ΠΎΠ±Π·ΠΎΡ€ΠΎΠΌ Ρ†Π΅Π»ΠΎΠ³ΠΎ ряда Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ .NET (ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄) ΠΈ рСкомСндациями ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ эти инструмСнты ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ.