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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ .NET Compact FrameworkΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 22

Автор Иво Π‘Π°Π»ΠΌΡ€Π΅

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹, ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ вСрсии .NET Compact Framework 

Π—Π°Ρ‰ΠΈΡ‚Π° доступа

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ явной ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ являлась Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ общСязыковой срСды выполнСния (Common Language Runtime), Π»Π΅ΠΆΠ°Ρ‰Π΅ΠΉ Π² основС ΠΊΠ°ΠΊ .NET Framework, Ρ‚Π°ΠΊ ΠΈ NET Compact Framework. Π”Ρ€ΡƒΠ³ΠΈΠΌ распространСнным Π½Π° Π·Π²Π°Π½ΠΈΠ΅ΠΌ этой ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ являСтся Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ доступа ΠΊΠΎΠ΄Π°. 

БрСдства бСзопасности доступа ΠΊΠΎΠ΄Π° ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ управлСния ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ опрСдСляСмыми ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°ΠΌΠΈ, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΠΈΠΌΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π° основании ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ, прСдоставляСмых самим ΠΊΠΎΠ΄ΠΎΠΌ. Π’Π°ΠΊΠΈΠΌΠΈ подтвСрТдСниями ΠΌΠΎΠ³ΡƒΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ криптографичСская подпись, ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‰Π°Ρ ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡ‚ΡŒ издатСля ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΏΠΎΠ»Π½ΠΎΠ΅ имя самого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, мСстополоТСниС установки ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² локальной Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС ΠΈΠ»ΠΈ URL-адрСс, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Ρ‹Π» Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. На основании прСдоставлСнного подтвСрТдСния ΠΈ локальной ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ для Ρ‚ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΠ΄Ρƒ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ полномочия. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ привСсти ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ: 

β–  ΠŸΠΎΠ»Π½Ρ‹Π΅ Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ. Код выполняСтся Π² систСмС Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠΎΠ»Π½Ρ‹Ρ… Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ всС Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ Π΄Π΅Π»Π°Ρ‚ΡŒ собствСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. 

β–  ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ доступ ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Ρ‹ ΠΈΠ»ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ, исходя ΠΈΠ· ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ, прСдоставлСнных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ. 

β–  ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ доступ ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ интСрфСйсу. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π° ΠΈΠ»ΠΈ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ. 

β–  Π‘Π΅Ρ‚Π΅Π²ΠΎΠΉ доступ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ доступа ΠΊ сСти ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π° ΠΈΠ»ΠΈ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ. 

β–  Доступ ΠΊ собствСнному ΠΊΠΎΠ΄Ρƒ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ осущСствлСния Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² собствСнных ΠΊΠΎΠ΄ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π° ΠΈΠ»ΠΈ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ.

Π’ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ .NET Framework, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π½Π° Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ ΠΈ сСрвСры, доступны Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ эти, Π½ΠΎ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ Π² качСствС ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ. По Π΄Π°Π½Π½ΠΎΠΌΡƒ вопросу имССтся ΠΎΠ±ΡˆΠΈΡ€Π½Π°Ρ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π° ΠΈ докумСнтация.

.NET Compact Framework ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π»Π°ΡΡŒ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ описанной ΠΌΠΎΠ΄Π΅Π»ΠΈ бСзопасности, основанной Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ…. Однако Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ выпускС .NET Compact Framework ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° бСзопасности ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ»Π°ΡΡŒ ΠΎΡ‡Π΅Π½ΡŒ просто: "Π’Π΅ΡΡŒ ΠΊΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΠ»Π½Ρ‹ΠΌΠΈ Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΠΌΠΈ". Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ прилоТСния, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для .NET Compact Framework v1.1, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅ΠΉΡΡ Π½Π° устройствС, Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² этой срСдС с Ρ‚Π΅ΠΌ ΠΆΠ΅ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π° устройствС Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ собствСнныС ΠΊΠΎΠ΄Ρ‹.

РСшСниС ΠΎ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ "выполнСния Π² условиях ΠΏΠΎΠ»Π½Ρ‹Ρ… Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ" для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ выпуска .NET Compact Framework Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ΄ΠΈΠΊΡ‚ΠΎΠ²Π°Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ прагматичСскими сообраТСниями. Π’ Ρ…ΠΎΠ΄Π΅ обсуТдСний, ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Π²ΡˆΠΈΡ… Ρ€Π°Π½Π½ΠΈΠ΅ ΠΎΠΏΡ‹Ρ‚Ρ‹ внСдрСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, стало ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ пСрвая Π²ΠΎΠ»Π½Π° конкурСнтоспособных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств Π±ΡƒΠ΄Π΅Ρ‚, скорСС всСго, прСдставлСна прилоТСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ явным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° устройствах ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ ΠΈΠ»ΠΈ администраторами, Π° Π½Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π° Π»Π΅Ρ‚Ρƒ. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π°Ρ‡Π°Π»ΠΈ ΡƒΠΆΠ΅ Π² Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎΠΉ стСпСни Π²Ρ‹Ρ‚Π΅ΡΠ½ΡΡ‚ΡŒ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ прилоТСния для устройств Π½Π° основС собствСнных ΠΊΠΎΠ΄ΠΎΠ², ΠΈ поэтому использованиС Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ Π²ΠΏΠΎΠ»Π½Π΅ соотвСтствовало слоТившСйся ситуации. Если Π±Ρ‹ ΠΌΡ‹ располагали Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ для проСктирования, построСния, тСстирования ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ уточнСния ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ бСзопасности Π½Π° основании ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‚ΠΎ модСль, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ вСрсии, Π±Ρ‹Π»Π° Π±Ρ‹ ΠΏΡ€ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π½Π° Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. Однако Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ многочислСнных дискуссий ΠΌΡ‹ поняли, Ρ‡Ρ‚ΠΎ Π½Π΅ это Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΡΡ‚ΡŒ выполнСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² нашСй ΠΏΠ΅Ρ€Π²ΠΎΠΉ вСрсии ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. Π’ силу этого созданиС Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ бСзопасности Π±Ρ‹Π»ΠΎ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½ΠΎ Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ выпуска, Ρ‡Ρ‚ΠΎ Π΄Π°Π»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ усилия Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… срСдств, Π²ΠΎΡˆΠ΅Π΄ΡˆΠΈΡ… Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. Π­Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ далось Π½Π΅Π»Π΅Π³ΠΊΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎ ΠΏΡ€ΠΎΡˆΠ΅ΡΡ‚Π²ΠΈΠΈ ΡƒΠΆΠ΅ достаточно большого Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΌΡ‹ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΡƒΠ±Π΅ΠΆΠ΄Π΅Π½Ρ‹ Π² Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ· устройств, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ…ΡΡ массовым спросом, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… смартфонах, ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ бСзопасности, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ прилоТСния, основанныС Π½Π° собствСнных ΠΊΠΎΠ΄Π°Ρ…, Π±Ρ‹Π»ΠΈ снабТСны криптографичСскими подписями; Π² случаС Ρ‚Π°ΠΊΠΈΡ… устройств Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, основанных Π½Π° управляСмом ΠΊΠΎΠ΄Π΅, Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π΅ ΠΆΠ΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ.

Π’ дальнСйшСм ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ модСль бСзопасности, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΊΠΎΠ΄Π° Π½Π° Π»Π΅Ρ‚Ρƒ ΠΈ присвоСниС ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ Π½Π° основС ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ, прСдоставляСмых ΠΊΠΎΠ΄ΠΎΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ вСсьма вСроятно, Ρ‡Ρ‚ΠΎ Π² Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… вСрсиях .NET Compact Framework Π±ΡƒΠ΄Π΅Ρ‚ прСдусмотрСно нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ, ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΎΡ‚ "ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ довСрия" Π½Π° основС прСдоставляСмых ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ Π΄ΠΎ вСсьма ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… возмоТностСй для ΠΊΠΎΠ΄Π°, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎΡΡ Π½ΠΈΠ·ΠΊΠΈΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств Π±ΡƒΠ΄ΡƒΡ‚, вСроятно, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ Π½Π° Π½ΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ. На Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… устройствах ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ, Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… β€” администраторами, изготовитСлями оборудования ΠΈΠ»ΠΈ ΠΆΠ΅ сСтСвыми ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ Ρ‚ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ΅ устройство. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° этих возмоТностСй Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ встроСнной модСлью обСспСчСния бСзопасности доступа.

ΠœΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ, ΠΎΡ‚ явной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ выпускС .NET Compact Framework ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, являСтся Ρ€Π°Π±ΠΎΡ‚Π° с ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ. Π­Ρ‚ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠ΅ Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π·Π²ΡƒΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для этой Ρ†Π΅Π»ΠΈ собствСнныС ΠΊΠΎΠ΄Ρ‹. Как ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ случаС, Ссли Π±Ρ‹ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, тСстирования ΠΈ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ этих срСдств Ρƒ нас Π±Ρ‹Π»ΠΎ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‚ΠΎ ΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±Ρ‹Π»Π° Π±Ρ‹ обСспСчСна ΡƒΠΆΠ΅ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ выпускС .NET Compact Framework. Анализ ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ², ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π½Π°ΠΌΠΈ ΠΎΡ‚ Π»ΠΈΡ†, ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ²ΡˆΠΈΡ… ΠΏΠ΅Ρ€Π²Ρ‹Π΅ испытания этого ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Ρ‚Π΅ΠΌ Π²ΠΈΠ΄Π°ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π² создании ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π² настоящСС врСмя сущСствуСт ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… возмоТностСй Π½Π΅ являлась критичСским Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΡΡ‚ΠΈ. По всСй вСроятности, Π² Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… вСрсиях .NET Compact Framework ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π±ΠΎΠ»Π΅Π΅ интСнсивной.

ΠžΠ³Π»ΡΠ΄Ρ‹Π²Π°ΡΡΡŒ Π½Π°Π·Π°Π΄, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΊΠΎΠ½ΡΡ‚Π°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ принятоС Π½Π°ΠΌΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ.

Как запускаСтся ΠΈ выполняСтся ΠΊΠΎΠ΄

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ запускС прилоТСния Π½Π° основС управляСмого ΠΊΠΎΠ΄Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°, вСрификация ΠΈ запуск ΠΊΠΎΠ΄Π° ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ΡΡ Π·Π° нСсколько шагов. Когда Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΠΆΠ΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ ΠΈ выполняСтся, срСда выполнСния управляСмого ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π²ΠΎ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½ΠΎΠ²Ρ‹Ρ… классов ΠΈ JIT-компиляции ΠΊΠΎΠ΄Π°, ΠΊΠΎΠ³Π΄Π° это оказываСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² процСссС управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, ΠΎΡ‚Π²ΠΎΠ΄ΠΈΠΌΠΎΠΉ для прилоТСния. ПолСзно ΠΈΠΌΠ΅Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ прСдставлСниС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ всС это происходит. ΠŸΡ€ΠΎΡ†Π΅ΡΡ запуска ΠΈ выполнСния прилоТСния ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΠ½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ описанных Π½ΠΈΠΆΠ΅ ΡˆΠ΅ΡΡ‚ΠΈ шагов: 

1. Π—агруТаСтся управляСмоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π”Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ прилоТСния ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π½Π΅ являСтся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π² собствСнных ΠΊΠΎΠ΄Π°Ρ…. ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ просто ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ инструкциям ΠΊΠΎΠ΄Π°, загруТаСтся ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ .NET Compact Framework, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ сообщаСтся ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.

2. Π˜ΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ класс, содСрТащий "Π³Π»Π°Π²Π½ΡƒΡŽ" Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ…ΠΎΠ΄Π° "main", с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ прилоТСния. Π’Π°ΠΊΠΎΠ²Ρ‹ΠΌ являСтся класс с сигнатурой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π²ΠΈΠ΄Ρƒ static void Main(). Π’ случаС обнаруТСния Ρ‚ΠΈΠΏΠ° с Ρ‚Π°ΠΊΠΎΠΉ сигнатурой происходит Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° класса ΠΈ производится ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° выполнСния "Π³Π»Π°Π²Π½ΠΎΠΉ" ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ (шаги 3 ΠΈ 4).

3. ЗагруТаСтся класс. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ классС загруТаСтся ΠΈ вСрифицируСтся с Ρ‚ΠΎΠΉ Ρ†Π΅Π»ΡŒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² коррСктности ΠΈ согласованности опрСдСлСния класса. ВсС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π° исполняСмого ΠΊΠΎΠ΄Π°) класса ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ "Π½Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅".

4. Π˜ΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ пытаСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ. Если ΡƒΠΆΠ΅ имССтся ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, связанный с ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ, осущСствляСтся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этого ΠΊΠΎΠ΄Π°.

5. Если ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ свойство ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ трСбуСтся Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π½Π΅ ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, ΠΎΠ½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡΡ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° содСрТащСйся Π² классС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, которая Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ. Код вСрифицируСтся для Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ содСрТит бСзопасныС, допустимыС ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ сформированныС IL-инструкции, Π° Π·Π°Ρ‚Π΅ΠΌ подвСргаСтся JIT-компиляции. Если ΠΌΠ΅Ρ‚ΠΎΠ΄ ссылаСтся Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹, осущСствляСтся нСобходимая Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… классов ΠΈ Ρ‚ΠΈΠΏΠΎΠ². ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹, содСрТащиСся Π² классах, Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π² этом Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ нСобходимости; ΠΈΠΌΠ΅Π½Π½ΠΎ Π² этом ΠΈ состоит смысл JIT-компиляции.