ляє заглушки на місце виклику будь-якого методу. При першому ж виклику коду заглушка передається компілятору, який замінює заглушку реальним кодом. Такого роду звернення до компілятору виробляються безпосередньо з реальних машинних інструкцій, раніше згенерованих компілятором. Така методика дозволяє істотно підвищити швидкість виконання програм.
У ході компіляції CIL-коду він передається верифікаційного процесу. При верифікації в CIL-коді і метаданих відбувається пошук ненадійних фрагментів. Під надійністю типів об'єктів мається на увазі ступінь їх ізольованості від інших об'єктів і надійність захисту їх від помилкового чи зловмисного руйнування.
У ході верифікації код перевіряється на доступ тільки до дозволеної пам'яті і виклик тільки правильно певних методів. Додатково при верифікації перевіряється правильність генерації машинного коду. Процес верифікації відкриває доступ до правильно певного надійному коду. Якщо зустрічається ненадійний код, збуджується виключення.
. 5.3 Виконання коду
CLR забезпечує інфраструктуру, яка дозволяє управляти процесом виконання машинного коду, а також надає різні служби, які можуть бути використані під час виконання. Перед викликом методу він повинен бути скомпільований в машинні інструкції. Кожен метод, для якого є CIL-код, повинен спочатку генеруватися в машинний і потім виконуватися. Кожен наступний раз компілятор не викликається, але використовується створений ним код. Цей процес повторюється до кінця прогону.
Під час виконання керований код отримує додаткове обслуговування, до якого відносяться збір сміття, підвищений захист, взаємодія з некерованим кодом, підтримка міжмовної налагодження, поліпшення розповсюдження програм і контролю версій.
. 6 Обгрунтування вибору платформи для розробки
. 6.1 Об'єктно-орієнтований підхід
Платформа .NET спочатку будується на принципах об'єктно-орієнтованого програмування.
7.6.2 Потужний інструментарій
Постачальна разом із середовищем бібліотека базових класів володіє достатнім функціоналом для вирішення завдань практично будь-якої складності.
. 6.3 Роздільна коду
У .NET спосіб поділу коду між додатками значно відрізняється від попередніх реалізацій за рахунок використання збірок. Збірки володіють формальними засобами для управління версіями і допускають одночасне існування поруч декількох різних версій збірок.
. 6.4 Підтримка мов високого рівня
Ця властивість сприятливо позначається на зручності використання, швидкості написання і читабельності коду, що вкрай важливо для подальшої підтримки програми.
. 6.5 Visual Studio
середу розробки Visual Studio, що поставляється разом з .NET, надає необхідний інструментарій для ефективного і швидкого створення додатків з графічним інтерфейсом.
. 7 Мова програмування C #
Поява технології .NET спричинило масову реконструкцію деяких мов програмування, що прагнуть використовувати ті чи інші можливості платформи, такі як C ++ і Visual Basic. Microsoft вирішили запропонувати розробникам альтернативу - мова, орієнтований спеціально .NET і створили C #. Самі розробники мови описують його, як простий, сучасний, об'єктно-орієнтований і безпечний мову програмування. Синтаксично C # нагадує C ++ і Java, що дозволило програмістам за досить короткий час вивчити тонкощі нової мови.
Незважаючи на те, що C # і .NET призначені в першу чергу для веб-розробки, їх також активно застосовують для створення додатків, які повинні встановлюватися на машині кінцевого користувача, де і буде виконуватися вся обробка даних. Розробку таких додатків забезпечує бібліотека Windows Forms, що дозволяє проектувати графічний інтерфейс. Система, описана в цій роботі, розроблена саме за допомогою бібліотеки Windows Forms.
. 7.1 Обгрунтування вибору мови програмування
· Мова програмування C # претендує на справжню об'єктну орієнтованість.
· Мова програмування C # покликаний реалізувати компонентно-орієнтований підхід до програмування, який сприяє меншій машинно-архітектурної залежності результуючого програмного коду, більшої гнучкості, переносимості та легкості повторного використання програм.
· Принципово важливою відмінністю від попередників є початкова орієнтація на безпеку коду.
· Розширена підтримка подієво-орієнтованого програмування.
· Мова програмування C # є «рідним» для створення додатків в середо...