Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Поняття збірки і маніфесту в .NETСодержание книги
Поиск на нашем сайте Розглянемо особливості використання механізму збірок, найважливішої концепції компонентного програмування, стосовно мови C#. Нагадаємо, що під збіркою розуміється самодостатня виконувана одиниця, що містить всі необхідні дані для інсталяції, розгортання і повторного використання. Збірка є мінімальною одиницею для розгортання застосувань, тобто представляє собою своєрідний атом компонентного програмування. Кожний тип збірки характеризується унікальним ідентифікатором – номером версії збірки. Таким чином, кожний програмний проект формується у вигляді збірки, яка є самодостатнім компонентом для розгортання, тиражування і повторного використання. Збірка ідентифікується цифровим підписом автора і унікальним номером версії. Між збірками і просторами імен існує наступне співвідношення. Збірка може містити декілька просторів імен. В той же час, простір імен може займати декілька збірок. Збірка може мати в своєму складі як один, так і декілька файлів, які об'єднуються у складі маніфесту або опису збірки, який на звичній нам природній мові аналогічний змісту книги. Маніфест містить метадані про компоненти збірки, ідентифікацію автора і версії, відомості про типи і залежність, а також режим і політику використання збірки. Метадані типів маніфесту повною мірою описують всі типи, які описані в збірці. В результаті компіляції програмного коду на мові C# в середовищі обчислень.NET створюється або збірка, або так званий модуль. При цьому збірка існує у формі виконуваного файла (з розширенням EXE), або файла динамічно приєднуваної бібліотеки (з розширенням DLL). Природно, до складу збірки входить маніфест. Модуль є файлом з розширенням.NETMODULE і, на відміну від збірки, не містить в своєму складі маніфесту. Інтеграція в програмний проект інших модулів і ресурсів (зокрема, типів і метаданих) може бути здійснена за допомогою системного програмного забезпечення, відомого під назвою компонувальника збірок.
Лабораторна робота 1. Створення DLL-бібліотеки Мета роботи: 1. Створення DLL-бібліотеки 2. Створення рішення з кількох проектів (модулів) 3. Створення DLL-бібліотеки як окремого рішення. 4. Вивчення структури збірки, метаданих збірки
В платформі Microsoft.NET реалізовано компонентно-орієнтований підхід до програмування. Цей підхід до проектування і реалізації програмних систем і комплексів є розвитком об'єктно-орієнтованого і практично придатніший для розробки великих і розподілених систем. В компонентній моделі.Net компонентом є збірка, яка може бути у вигляді виконуваного файлу (з розширенням EXE), або файлу динамічної бібліотеки (з розширенням DLL). До складу збірки входить маніфест. Збірка є самодостатньою одиницею для розгортання, тиражування та повторного використання. Збірка має маніфест, який містить інформацію про збірку (метадані, які описують збірку).
Динамічна бібліотека DLL як тип компонента Динамічна бібліотека — набір функцій, скомпонованих разом у вигляді бінарного файла, який може бути динамічно завантажений в адресний простір процесу, що використовує ці функції. Динамічне завантаження (dynamic loading) — завантаження під час виконання процесу. Оскільки динамічні бібліотеки є двійковими файлами, можна організувати спільну роботу бібліотек, розроблених із використанням різних мов програмування і програмних засобів, що спрощує створення застосувань на основі програмних компонентів (отже, динамічне компонування лежить в основі компонентного підходу до розробки програмного забезпечення).
Створення DLL-бібліотеки Запустимо Visual Studio 2008, із стартової сторінки перейдемо до створення проекту, виберемо тип проекту «Class Library». У вікні створення DLL всі поля заповнені значеннями за замовчанням. Як правило, їх слід перевизначити, задаючи власну інформацію. У полі Name задати ім'я DLL – MyLib. У полі Location вказується шлях до каталогу, де зберігатиметься Рішення, що містить проект. У полі Solution вибраний елемент «Create New Solution», що створює нове Рішення. Альтернативою є елемент списку, вказуючий, що проект може бути доданий до існуючого Рішення. У вікні Solution Name задано ім'я Рішення. Зверніть увагу на інші установки, зроблені в цьому вікні, - включений прапорець (за замовчанням) «Create directory for solution», у верхньому віконці із списку можливих каркасів вибраний каркас Framework.Net 3.5. Задавши необхідні установки і клацнувши по кнопці «OK», отримаємо автоматично побудовану заготівку проекту DLL, відкриту в середовищі Visual Studio 2008. Імена класів повинні бути змістовними. Змінимо ім'я «Class1» на ім'я «MyFun». Для цього у вікні коду проекту виділимо ім'я змінної об'єкту, потім в головному меню виберемо пункт Refactor і підпункт Rename. У вікні, що відкрилося, вкажемо нове ім'я. Тоді будуть показані всі місця, що вимагають перейменування об'єкту. В даному випадку буде лише одна очевидна заміна, але в загальному випадку замін багато, так що автоматична заміна всіх входжень корисна. Наступний крок також продиктований правилом стилю – ім'я класу і ім'я файлу, що зберігає клас, повинні збігатися. Перейменування імені файлу робиться безпосередньо у вікні проектів Solution Explorer. І наступний крок продиктований також важливим правилом стилю, - додавання коментаря. Для цього в рядку перед заголовком класу слід набрати три слеша (три косі риски). В результаті перед заголовком класу з'явиться заголовний коментар – тег «summary», в який і слід додати короткий, але змістовний опис призначення класу. Теги «summary», якими слід супроводжувати класи, відкриті (public) методи і поля класу відіграють три важливі ролі. Вони полегшують розробку і супровід проекту, роблячи його самодокументованим. Клієнти класу при створенні об'єктів класу отримують інтелектуальну підказку, що пояснює суть того, що можна робити з об'єктами. Спеціальний інструментарій дозволяє побудувати документацію за проектом, що включає інформацію з тегів «summary». У нашому випадку коментар до класу MyFun може бути достатньо простим – «Обчислення математичних функцій». Напишемо реалізацію одного методу класу – обчислення функції Sin(x) через ряд Тейлора.
Спочатку напишемо коментарі до методу (у форматі XML). Далі напишемо реалізацію методу. Отримаємо код. using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MyLib { ///Обчислення математичних фунцій
public class MySin { /// <summary> /// Sin(x) /// </summary> /// <param name="x">кут в радіанах – перший аргумент функції Sin</param> ///<param name="n">показник ступеня – другий аргумент функції Sin</param> /// <returns>Повертає значення функції Sin для заданого кута</returns> public static double Sin(double x, int n) { double result = 0; for (int i = 0; i < n; i++) { result = result + (Math.Pow((-1), i) * Math.Pow(x, (2 * i + 1))) / F(2 * i + 1); } return result; } static double F(int n) { double tmp = 1; for (int i = 1; i <= n; i++) { tmp = tmp * i; } return tmp;
}
} }
Побудуємо Рішення, що містить проект, для чого в Головному меню виберемо пункт Build|Build Solution. В результаті успішної компіляції буде побудований файл з уточненням dll. Він знаходиться в папці проекту .\bin\Debug Оскільки побудована збірка не містить виконуваного файлу, то безпосередньо запустити наш проект на виконання не удасться. Побудуємо консольний проект, до якого приєднаємо нашу DLL, і протестуємо, наскільки коректно працюють створені нами методи.
|
||
|
Последнее изменение этой страницы: 2017-02-21; просмотров: 490; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.006 с.) |