69072

Методи створення компонентів. Розробка і збирання компонентів в середовищі MS .Net Framework

Лекция

Информатика, кибернетика и программирование

Офіційно про розробку нової технології було оголошено 13 січня 2000 року. В цей день керівництвом компанії була озвучена нова стратегія, яка отримала назву Next Generation Windows Services (скор. NGWS, укр. Нове покоління служб Windows).

Украинкский

2014-09-29

52.99 KB

8 чел.

Лекція №4.

Методи створення компонентів. Розробка і збирання компонентів в середовищі MS .Net Framework

Історія

Розробка Microsoft технології .NET Framework почалась у 1999 році[1]. Офіційно про розробку нової технології було оголошено 13 січня 2000 року. В цей день керівництвом компанії була озвучена нова стратегія, яка отримала назву Next Generation Windows Services (скор. NGWS, укр. Нове покоління служб Windows). Нова стратегія повинна була об'єднати у єдине вже існуючі і майбутні розробки Microsoft для надання можливості користувачам працювати з Всесвітньою павутиною з допомогою безпровідних пристроїв, що мають доступ в Інтернет, як з стаціонарних комп'ютерів[2].

Цілі і завдання

Під час конференції, що проходила в цей день Стів Балмер заявив, що незважаючи на великі можливості домашніх комп'ютерів, корпорація вважає важливим гарантувати забезпечення роботи служб нового покоління і на пристроях, відмінних від ПК. Аналітик компанії Patricia Seybold Group Енн Томас Мейнс, проаналізувавши слова Білла Гейтса, заявила про те, що для компанії буде корисним відійти від орієнтації лише на стаціонарні комп'ютери і перехід до розробки під мобільні пристрої. За її оцінкою Гейтс проголосив курс на перехід до нової ери роботи з комп'ютером, що не буде жорстко прив'язана до платформи Windows [2].

Зважаючи на невелику потужність джерела живлення мобільних пристроїв, зберігання і передача програм повинна здійснюватися серверами, тоді як на той момент практично вся інформація користувача, ПЗ зберігалися на стаціонарних комп'ютерах локально. Тоді ідея переходу до «сервероцентричної» моделі мала міцну підтримку серед керівників найбільших IT-компаній. Так, наприклад, Скотт МакНілл, голова Sun Microsystems оголосив про придбання компанією офісного програмного забезпечення (StarOffice), щоб конкурувати з Microsoft Office, для того, щоб перейти до сервер-клієнтського ПЗ [2].

У Microsoft на той момент було безліч причин переходу до нової стратегії. Компанія домінувала на ринку операційних систем і веб-браузерів, володіла безліччю напрацювань у галузі ПЗ для Інтернету, включаючи портали MSN і WebTV, а також мала частку в компаніях, що займалися наданням ПЗ на прокат через Інтернет [2]. Крім того, як пізніше згадував Андерс Хейлсберг, у корпорації було безліч різних (і часто несумісних між собою) середовищ і технологій програмування, оскільки розробка інструментів для програмістів була мовнооріентованою, тобто для Visual Basic існував свій набір програм, а для C++ - свій. Тому однією з цілей розробки нової платформи, було об'єднання всіх найвдаліших напрацювань в рамках єдиної платформи та їх уніфікація. Крім того, ставилося завдання слідуванню усіх актуальних тенденцій в області програмування на той момент. Для прикладу, нова платформа повинна була безпосередньо підтримувати об'єктно-орієнтованість, безпеку типів, збір сміття і структурну обробку виключень. Крім того, корпорації необхідно було надати свою відповідь на Java від Sun, що набирала свою популярність [3].

Згідно з озвученими на той момент планам, в них входила розробка нової версії операційної системи, а також нової версії середовища розробки для програмістів, яка була б призначена для розробки веб-орієнтованих додатків. Крім того, перенесений на нову платформу мав бути і Microsoft Office. Пол Морітц, віце-президент Microsoft, в якості однієї з майбутніх служб нової стратегії привів у приклад службу Passport, що являла собою електронний гаманець, що дозволяє користувачам зареєструвавшись одного разу здійснювати онлайн-покупки без необхідності введення на різних сайтах номерів кредитних карт і персональних даних. Тоді ж, на конференції, Балмер привів приклад реалізації нової стратегії, яка дозволить пацієнтам вирішувати безліч їх проблем через Інтернет починаючи читанням їх медичної карти і закінчуючи оплатою рахунків від лікарів [2].

За словами Морітц, основою для нової стратегії компанії стала розробка Windows DNA 2000, представлена у вересні 1999 року. Windows DNA 2000 об'єднала в собі нову версію СУБД SQL Server і нові програмні інструменти для полегшення розробки веб-додатків [2].

Причини появи та ключові характеристики платформи MS .Net Framework

До найбільш критичних проблем сучасного програмування можна віднести:

  1.  1. Різноманітність окремих рішень для вирішення задач розробки великих програмних систем – як результат, явно відчувалася потреба в розробці деякого загального підходу, в якому б враховувалися всі існуючі рішення, і в рамках якого з єдиних позицій можна було б вирішувати проблеми в інформаційній індустрії.
  2.  2. Складність інтеграції існуючих рішень в рамках однієї програмної системи – відмінність апаратно-програмних платформ, пропонованих корпоративних рішень, варіантність (версійність) програмних компонентів виводить проблему інтеграції ПС, які розробляються, в число найбільш гострих задач програмування.
  3.  3. Трудомісткість розробки розподілених програмних систем – проблеми, які виникають при розробці розподілених систем: забезпечення надійності, безпеки та масштабованості, вимагали створення більш загальних засобів рішення і стандартів.

4. Широке розповсюдження Інтернет технологій – світ Інтернету вимагав осмислення накопичених після появи мови Java рішень і чекав промислового переходу на технології сервіс-орієнтованого програмного забезпечення.

Отже, програмування потребувало деякого нового загального і промислового підходу до розробки великомасштабного програмного забезпечення. І таке рішення було представлено корпорацією Microsoft літом 2000 р. як нова платформа Microsoft.Net. для розробки і виконання програмних систем.

Архітектура .NET Framework (знизу-вгору):

Платформа – операційна система. Сьогодні .NET Framework реалізована для 32-розрядних ОС починаючи з Win98 та старше, в майбутньому буде реалізована для 64-розрядних і спеціальних (WinCE).

Application Services – служби, які реалізовані як компоненти ОС, наприклад, Message Queuing, сервер IIS, WMI.

.NET Framework Class Library – набір бібліотек, які можуть використовувати розробники;

CLR – загальномовне середовище виконання. NET Framework;

ADO.NET – середовище для звернення до джерел даних;

ASP.NET – можливість швидкого створення потужних Web-застосувань;

XML Web services – програмовані Web-компоненти, які можуть спільно використовуватися застосуваннями в Інтернеті або Інтранет.

Користувальницькі інтерфейси

  1.  Web Forms
  2.  Windows Forms
  3.  командний рядок

Загальна специфікація мов програмування CLS (Common Language Specification);

Мови програмування, з якими безпосередньо працюють розробники.

Специфікація мов програмування CLS

C#

VB

C++

Web Form

Windows Forms

Консольні застосування

XML Web services

ASP.NET

ADO.NET

Загальномовне середовище виконання CLR

Бібліотека класів FCL

Application Services (Message Queuing, IIS, WMI)

Операційна система

Ця архітектура постійно розширюється, додаються все нові й нові можливості для розробників систем. На слайді “Стек технологій MS.NET Framework” зображено нову розширену архітектуру MS.NET Framework, деталізовану на наступному слайді.

Переваги. NET Framework порівняно із застосуванням інших технологій програмування (MFC/ATL, VBasic, ASP):

  1.  засновані на Web-стандартах (HTML, HTTP, SOAP, XML, XSLT, XPath тощо);
  2.  одні й ті ж класи можна використовувати як в Windows-застосуваннях, так і в Web-застосуваннях, і Web-службах;
  3.  єдина струнка система класів;
  4.  ієрархія класів прозора і може бути розширена програмістами для своїх цілей.

Огляд. NET. Основні поняття

ПЛАТФОРМА – це як мінімум середовище виконання програм і... ще дещо, що визначає особливості розробки і виконання програмного коду – парадигми програмування, мови програмування, безлічі базових класів.

Microsoft.NET (. NET Framework) – програмна платформа, яка містить такі основні компоненти: загальномовне середовище виконання CLR та FCL, об'єктно-орієнтовану бібліотеку класів .NET Framework.

Загальна специфікація мов програмування CLS (Common Language Specification) – це набір конструкцій і обмежень, які є настановою для творців бібліотек і компіляторів в середовищі .NET Framework. Бібліотеки, побудовані відповідно до CLS, можуть бути використані з будь-якої мови програмування, що підтримує CLS. Мови, що відповідають CLS (до них належать мови Visual C#, Visual Basic, Visual C++), можуть інтегруватися одину з одною. Отже, CLS – це основа міжмовної взаємодії в рамках платформи Microsoft.NET.

Загальномовне середовище виконання CLR (Common Language Runtime) – це віртуальна машина, яка забезпечує виконання збірки та є основним компонентом .NET Framework. Під віртуальної машиною розуміють абстракцію інкапсульованої (відокремленої) керованої операційної системи високого рівня, яка забезпечує виконання програмного коду та передбачає вирішення наступних завдань:

  1.  управління кодом (завантаження і виконання);
  2.  управління пам'яттю при розміщенні об'єктів;
  3.  ізоляцію пам'яті застосувань;
  4.  перевірку безпеки коду;
  5.  перетворення проміжної мови в машинний код;
  6.  доступ до метаданих (розширена інформація про типи);
  7.  обробку виключень, включаючи міжмовні виключення;
  8.  взаємодію між керованим і некерованим кодом (в тому числі і COM-об'єктами);
  9.  підтримку сервісів для розробки (профілювання, налагодження і т.д.).

Отже, CLR – це набір служб, необхідних для виконання збірки. При цьому програмний код збірки може бути як керованим (managed – код, при виконанні якого CLR, зокрема, активізує систему керування пам'яттю), так і некерованим ("старий" програмний код).

Сама CLR складається з двох головних компонентів: ядра (mscoree.dll) і бібліотеки базових класів (mscorlib.dll). Наявність цих файлів на диску –ознака того, що на комп'ютері, принаймні, спробували встановити платформу. NET.

Ядро середовища виконання реалізовано у вигляді бібліотеки mscoree.dll. Під час компоновки збірки в неї вбудовується спеціальна інформація, яка при запуску програми (EXE) або при завантаженні бібліотеки (звернення до DLL з некерованого модуля – виклик функції LoadLibrary для завантаження керованої збірки) призводить до завантаження та ініціалізації CLR. Після завантаження CLR в адресний простір процесу ядро середовища виконання виконує наступні дії:

  1.  знаходить місцезнаходження збірки;
  2.  завантажує збірку в пам'ять;
  3.  робить аналіз вмісту збірки (виявляє класи, структури, інтерфейси);
  4.  робить аналіз метаданих;
  5.  забезпечує компіляцію коду на проміжній мові (IL) в платформозалежні інструкції (асемблерний код);
  6.  виконує перевірки, пов'язані із забезпеченням безпеки;
  7.  використовуючи основний потік застосування, передає управління перетвореному в команди процесора фрагменту коду збірки.

Бібліотека класів FCL (.NET Framework Class Library) – відповідна специфікації CLS об'єктно-орієнтована бібліотека класів, інтерфейсів і систем типів (типів-значень), які входять до складу платформи Microsoft .NET. Ця бібліотека забезпечує доступ до функціональних можливостей системи і призначена в якості основи при розробці .NET-застосувань, компонент, елементів управління. FCL є другим компонентом CLR, її можуть використовувати УСІ .NET-застосування, незалежно від призначення, архітектури, використовуваної при розробці мови програмування. Зокрема, FCL містить:

  1.  вбудовані (елементарні) типи, представлені у вигляді класів (на платформі .NET все побудовано на структурах або класах);
  2.  класи для розробки графічного інтерфейсу користувача (Windows Form);
  3.  класи для розробки Web-застосувань і Web-служб на основі технології ASP.NET (Web Forms);
  4.  класи для розробки XML і Internet-протоколами (FTP, HTTP, SMTP, SOAP);
  5.  класи для розробки застосувань, що працюють з базами даних (ADO.NET) і багато іншого.

.NET-застосування – це застосування, розроблене для виконання на платформі Microsoft .NET. Реалізується на мовах програмування, відповідних CLS.

MSIL (Microsoft Intermediate Language) або IL (Intermedia Language) – проміжна мова платформи Microsoft.NET. Вихідні тексти програм для .NET-застосувань пишуться на мовах програмування, відповідних специфікації CLS. Для мов програмування, що відповідають специфікації CLS, можна побудувати перетворювач в MSIL. Таким чином, програми на цих мовах можуть транслюватися в проміжний код на MSIL. Завдяки відповідності специфікації CLS, в результаті трансляції програмного коду, написаного на різних мовах, виходить сумісний IL код.

Фактично MSIL є асемблером віртуального процесора.

МЕТАДАНІ – під час перетворення програмного коду в MSIL також формується блок Метадані, що містить інформацію про дані, які використовуються в програмі. Фактично це набори таблиць, що містять інформацію про типи даних, визначених у модулі та про типи даних, на які посилається даний модуль. Раніше така інформація зберігалася окремо. Наприклад, застосування містило інформацію про інтерфейси, яка описувалась на мові опису інтерфейсів IDL (Interface Definition Language). Тепер метадані є частиною керованого модуля.

Зокрема, метадані використовуються для:

  1.  збереження інформації про типи. Під час компіляції тепер не потрібні заголовні і бібліотечні файли. Всю необхідну інформацію компілятор читає безпосередньо з керованих модулів,
  2.  верифікації коду в процесі виконання модуля,
  3.  управління динамічною пам'яттю (звільнення пам'яті) в процесі виконання модуля,
  4.  під час розробки програми стандартними інструментальними засобами (Microsoft Visual Studio .NET) на основі метаданих забезпечується динамічна підказка (IntelliSense).

Мови, для яких реалізовано переклад на MSIL: Visual Basic, Visual C + +, Visual C # і ще багато інших.

Виконуваний модуль – незалежно від компілятора (і вхідної мови) результатом трансляції .NET-програми є керований виконуваний модуль (керований модуль). Це стандартний переносимий виконуваний PE-файл (Portable Executable) Windows.

Елементи керованого модуля подані в таблиці.

Заголовок PE

Показує тип файлу (наприклад, DLL), містить тимчасову мітку (час збирання файлу), містить відомості про процесорний код.

Заголовок CLR

Містить інформацію для середовища виконання модуля (версію необхідного середовища виконання, характеристики метаданих, ресурсів тощо). Власне ця інформація робить модуль керованим.

Метаданні

Таблиці метаданих: 1. типи, визначені у вихідному коді, 2. типи, на які є посилання в коді.

IL

Власне код, який створюється компілятором при компіляції вихідного коду. На основі IL в середовищі виконання згодом формується безліч команд процесора.

Керований модуль містить керований код. Керований код – це код, який виконується в середовищі CLR. Код будується на основі оголошених у вихідному модулі структур і класів, що містять оголошення методів. Керованому коду повинен відповідати певний рівень інформації (метаданих) для середовища виконання. Код C#, Visual Basic і JScript є керованим за промовчанням. Код Visual C ++ не є керованим за промовчанням, але компілятор може створювати керований код, для цього потрібно вказати аргумент у командному рядку (/CLR). Однією з особливостей керованого коду є наявність механізмів, які дозволяють працювати з керованими даними.

Керовані дані – об'єкти, які під час виконання кода модуля розміщуються в керованій пам'яті (у так званій керованій купі) і знищуються збирачем сміття CLR. Дані C#, Visual Basic і Jscript .NET є керованими за промовчанням. Дані C# також можуть бути позначені як некеровані.

Збірка (Assembly) – базовий будівельний блок програми в .NET Framework. Керовані модулі об'єднуються у збірки. Збірка є логічним угрупованням одного або декількох керованих модулів або файлів ресурсів. Керовані модулі у складі збірок виконуються в середовищі часу виконання CLR. Збірка може бути або виконуваним застосуванням (розміщується у файлі з розширенням .EXE), або бібліотечним модулем (у файлі з розширенням .DLL). При цьому нічого спільного зі звичайними (старого зразка!) виконуваними програмами та бібліотечними модулями збірка не має.

Декларація збірки або маніфест збірки (Manifest) – її складова частина, ще один набір таблиць метаданих, який:

  1.  ідентифікує збірку у вигляді текстового імені, містить її версію, культуру і цифровий підпис (якщо збірка розділяється серед застосувань);
  2.  визначає файли (за іменем та хешем), що входять до її складу;
  3.  вказує типи та ресурси, які існують в збірці, включаючи опис тих, що експортуються із збірки;
  4.  перераховує залежності від інших збірок;
  5.  вказує набір прав, необхідних збірці для коректної роботи.

Ця інформація використовується в період виконання для підтримки правильної роботи програми.

Процесор НЕ МОЖЕ виконувати IL-код. Переклад IL-коду здійснюється JIT-компілятором (just in time – в потрібний момент), який активізується CLR за необхідності і виконується процесором. При цьому результати діяльності JIT-компілятора зберігаються в оперативній пам'яті. Між фрагментом відтрансльованого IL-коду і відповідним блоком пам'яті встановлюється відповідність, яка в подальшому дозволяє CLR передавати управління командам процесора, записаним у цьому блоці пам'яті, минаючи повторне звернення до JIT-компілятора.

У середовищі CLR допускається спільна робота та взаємодія компонентів програмного забезпечення, реалізованих на різних мовах програмування. На основі раніше сформованого блоку метаданих CLR забезпечує ЕФЕКТИВНУ взаємодія виконуваних .NET-застосувань.

Для CLR всі збірки однакові, незалежно від того, на яких мовах програмування вони написані. Головне, щоб вони відповідали CLS. Фактично CLR руйнує кордони мов програмування (cross-language interoperability). Таким чином, завдяки CLS і CTS .NET-застосування фактично є застосуваннями на MSIL (IL).

CLR перебирає на себе вирішення багатьох проблем, які традиційно знаходилися в зоні особливої уваги розробників застосувань. До виконуваних CLR функцій належать:

  1.  перевірка і динамічна (JIT) компіляція MSIL-коду в команди процесора;
  2.  управління пам'яттю, процесами і потоками;
  3.  організація взаємодії процесів;
  4.  вирішення проблем безпеки (у межах існуючої в системі політики безпеки).

Домен застосування AppDomain – це логічний контейнер збірок, який використовується для ізоляції програми у межах адресного простору процесу. Всі об'єкти, що створюються застосуванням, створюються у межах певного домену програми. В одному процесі операційної системи можуть існувати декілька доменів застосування. CLR ізолює програми, керуючи пам'яттю у межах домену застосування.

Код, що виконується в CLR (CLR процес), відокремлений від інших процесів, які виконуються на комп'ютері в той самий час. Звичайний процес запускається системою у межах адресного простору, яких спеціально виділяється процесові. CLR надає можливість виконання безлічі керованих застосувань в ОДНОМУ ПРОЦЕСІ. Кожне кероване застосування пов'язується з власним доменом застосування (скорочено AppDomain). У застосуванні крім основного домену можна створювати кілька додаткових доменів. Структура середовища виконання CLR наведена на схемі.

Код .NET-зостосування на одній з мов програмування .NET

Компілятор .NET

Збірка у вигляді файлів DLL або EXE (містить IL та Метаданні)

Бібліотеки базових класів (mscorlib.dll та інші)

Ядро середовищая виконання (mscoree.dll)

Завантажувач

JIT-компілятор

Інструкції асемблера

ВИКОНАННЯ ЗАСТОСУВАННЯ

Властивості доменів:

  1.  домени ізольовані один від одного. Об'єкти, створені у межах одного домена недоступні з іншого домену;
  2.  CLR здатна вивантажувати домени разом з усіма збірками, пов'язаними з цими доменами,
  3.  можлива додаткова конфігурація і захист доменів;
  4.  для обміну даними між доменами реалізовано спеціальний механізм безпечного доступу (маршалінга).

У .NET Framework розроблено власну компонентну модель, елементами якої є .NET-збірки (.NET-assembly), а для прямої і зворотної сумісності з моделлю COM/COM+ в CLR вбудовані механізми (COM Interop), що забезпечують доступ до COM-об'єктів за правилами .NET і до .NET-збірок за правилами COM. При цьому для .NET-застосувань не потрібна реєстрація компонентів в системному реєстрі Windows. Для виконання .NET- застосувань досить розмістити пов'язані з цим застосуванням збірки в одному каталозі. Якщо при цьому збірка використовується в декількох застосуваннях, то вона розміщується і реєструється за допомогою спеціальної утиліти в загальному кеші збірок GAC (Global Assembly Cache).

Стандартна система типів CTS (Common Type System) підтримується всіма мовами платформи. Через те, що .NET – це нащадок ООП, йдеться про елементарні типи, класи, структури, інтерфейси, делегати і перерахування.

CTS є важливою частиною середовища виконання, яка визначає структуру синтаксичних конструкцій, способи оголошення, використання та застосування ЗАГАЛЬНИХ типів середовища виконання. У CTS зосереджена основна інформація про систему ЗАГАЛЬНИХ НАПЕРЕДВИЗНАЧЕНИХ типів, про їх використання та управління (правила перетворення значень). CTS грає важливу роль у справі інтеграції різномовних керованих застосувань.

Простір імен – це спосіб організації системи типів в єдину групу. Існує загальна загальномовна бібліотека базових класів і концепція простору імен забезпечує ефективну організацію та навігацію в цій бібліотеці. Незалежно від мови програмування доступ до певних класів забезпечується за рахунок їх групування у межах спільних просторів імен.

Простір імен

Призначення

System

System.Data

Для звернення до баз даних

System.Data.Common

System.Data.OleDb

System.Data.SqlClient

System.Collections

Класи для роботи з контейнерними об'єктами

System.Diagnostics

Класи для трасування та відлагодження коду

System.Drawing

Класи графічної підтримки

System.Drawing.Drawing2D

System.Drawing.Printing

System.IO

Підтримка введення-виведення

System.Net

Підтримка передачі даних через мережі

System.Reflection

Робота з користувацькими типами під час виконання програми

System.Reflection.Emit

System.Runtime.InteropServices

Підтримка взаємодії зі "звичайним кодом" – DLL, COM-сервери, віддалений доступ

System.Runtime.Remoting

System.Security

Криптографія, дозволи

System.Threading

Робота з потоками

System.WEB

Робота з web-застосуваннями

System.Windows.Form

Робота з елементами інтерфейсу Windows

System.XML

Підтримка даних в форматі XML

Виконання некерованих виконуваних модулів (звичайні Windows застосування) забезпечується безпосередньо системою Windows. Некеровані модулі виконуються в середовищі Windows як "прості" процеси. Єдина вимога, якій повинні відповідати подібні модулі, –це коректна робота в середовищі Windows. Вони повинні "правильно" працювати (не вішати систему, не допускати витоків/витікання пам'яті, не блокувати інші процеси і коректно використовувати засоби самої ОС для роботи від імені процесів). Тобто відповідати найбільш загальним правилам роботи під Windows.

При цьому більшість проблем коректного виконання некерованого модуля (проблеми взаємодії, виділення і звільнення пам'яті) є проблемами розробників застосувань. Наприклад, відома технологія COM є способом організації взаємодії різнорідних компонентів у межах застосування.

Об'єкт – в широкому сенсі це область пам'яті (стеку або купи), що виділяється в процесі виконання програми для запису деяких значень. Характеризується типом (фіксованим набором властивостей, що визначають розмір займаної області, спосіб інтерпретації значення, діапазон значень, безліч дій, допустимих під час маніпуляцій з об'єктом) місцем розташування в пам'яті (адресою).

Збирання сміття – механізм, що дозволяє CLR визначити, коли об'єкт стає недоступний у керованій пам'яті програми. Під час збирання сміття керована пам'ять звільняється. Для розробника програми наявність механізму збирання сміття означає, що він більше не повинен піклуватися про звільнення пам'яті. Проте це може вимагати змін у стилі програмування, наприклад, особливу увагу слід приділяти процедурі звільнення системних ресурсів. Необхідно реалізувати методи, які звільняють системні ресурси, що знаходяться під управлінням програми.

Стек – спеціальним чином організована область пам'яті, призначена для тимчасового зберігання значень об'єктів (змінних і констант), для передачі параметрів під час виклику методів, для збереження адреси повернення. Управління стеком в порівнянні з управлінням купою є досить простим. Воно засноване на зміні значення відповідного регістра вершини стека. При скороченні розміру стека об'єкти просто губляться.

Програма на C #

Програма – правильно побудована (тобто не викликає заперечень з боку компілятора C#) послідовність речень/висловлювань, на основі якої формується збірка.

У загальному випадку, програміст створює файл, який містить оголошення класів та подається на вхід компілятору. Результат компіляції представляється транслятором у вигляді збірки та визначається уподобаннями програміста. Взагалі збірка може бути двох видів:

  1.  PE-файл (Portable Executable File) з расширенням .exe, придатний до безпосереднього виконання CLR;
  2.  DLL-файл (Dynamic Link Library File)з розширенням .dll, призначений для повторного використання як компонент в складі будь-якої програми.

У будь-якому випадку на основі вхідного коду транслятор будує модуль на IL, маніфест і формує збірку. Надалі збірка або виконується після JIT-компіляції, або використовується у складі інших програм.


 

А также другие работы, которые могут Вас заинтересовать

11498. Текстовый редактор WORD. Поиск и замена фрагментов текста 43.5 KB
  ЛАБОРАТОРНАЯ РАБОТА № 4 Тема: Текстовый редактор WORD. Поиск и замена фрагментов текста. Режим поиска удобно использовать для того чтобы быстро найти в документе заданный фрагмент текста. Режим замены используется в тех случаях когда нужно не только найти какую...
11499. Природа медицинских данных 1.65 MB
  Природа медицинских данных. В медицинской практике часто используются выражения сбор данных или получение информации. Эти выражения могут трактоваться неверно на основе предположения что медицинская информация содержится в реальном мире в состоянии доступност
11500. Формирование структуры базы данных 114 KB
  Лабораторная работа 1. Формирование структуры базы данных. 1. Создайте новую базу данных. 2. Создайте таблицу базы данных. 3. Определите поля таблицы в соответствии с табл. 1.1. 4. Сохраните созданную таблицу. Таблица.1.1. Таблица данных Преподаватели ...
11501. Формирование запросов и отчетов для однотабличной базы дан 334.5 KB
  Лабораторная работа №2. Формирование запросов и отчетов для однотабличной базы данных. Задание 1. Формирование запросов на выборку. 1. На основе таблицы Преподаватели создайте простой запрос на выборку в котором должны отображаться фамилии имена отчества преподава
11502. Разработка инфологической модели и создание структуры реляционной базы данных 154.5 KB
  Лабораторная работа №3. Разработка инфологической модели и создание структуры реляционной базы данных. Задание 1. Создание реляционной базы данных. Создайте базу данных Деканат. Создайте структуру таблицы Студенты. Создайте структуру таблицы Дисциплины...
11503. Формирование сложных запросов 50.5 KB
  Лабораторная работа №4. Формирование сложных запросов. Задание: Разработайте запрос с параметрами о студентах заданной группы в котором при вводе в окно параметров номера группы на экран должен выводиться состав этой группы. Создайте запрос в котором выводя...
11504. Создание сложных форм и запросов 58.5 KB
  Лабораторная работа №5. Создание сложных форм и запросов. Задание 1. Создание сложных форм. 1. Создайте сложную форму в которой с названиями дисциплин была бы связана подчиненная форма Студенты и подчиненная форма Оценки студентов. 2. Измените расположение элементов ...
11505. ПОВЕРКА МИЛЛИВОЛЬТМЕТРОВ 21.94 KB
  Поверка милливольтметра Поверку милливольтметров производят путём сравнения их показаний с показаниями образцового потенциометра. Поверка милливольтметра заключается во внешнем осмотре прибора в определении погрешности и вариации показаний по милливольтовой и г
11506. ПРОВЕРКА АВТОМАТИЧЕСКОГО МОСТА 25.22 KB
  Методика и порядок проведения поверки В условиях учебной лаборатории при испытании мостов проводят их внешний осмотр определяют характер успокоения подвижной системы прибора основную погрешность вариацию показаний порог чувствительности время прохождения указат...