Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 1082

.pdf
Скачиваний:
2
Добавлен:
30.04.2022
Размер:
753.13 Кб
Скачать

ФГБОУ ВО «Воронежский государственный технический университет»

Кафедра автоматизированных и вычислительных систем

- 2017

СБОРКИ .NET

МЕТОДИЧЕСКИЕ УКАЗАНИЯ к выполнению контрольных работ по дисциплине

«Разработка приложений в Visual Studio» для студентов направления 09.03.01 «Информатика и вычислительная техника», профиля «Вычислительные машины, комплексы, системы и сети» заочной формы обучения

Воронеж 2017

1

Составитель: канд. техн. наук Е.А. Ганцева

УДК 681.3(075.8)

ББК 32.97я7

Сборки .NET: Методические указания к выполнению контрольных работ по дисциплине «Разработка приложений в Visual Studio» для студентов направления 09.03.01 «Информатика и вычислительная техника», профиля «Вычислительные машины, комплексы, системы и сети» заочной формы обучения / Воронеж: ФГБОУ ВО «Воронежский государственный технический университет», сост. Е.А. Ганцева, 2017. 46 с.

Методические указания предназначены для выполнения студентами контрольных работ по дисциплине «Разработка приложений в Visual Studio» и содержат краткие теоретические сведения, задания и практические примеры, необходимые для их выполнения.

Издание соответствует требованиям Государственного образовательного стандарта высшего образования по направлению 09.03.01 «Информатика и вычислительная техника», профилю «Вычислительные машины, комплексы, системы и сети», дисциплине «Разработка приложений в Visual Studio» и предназначено для студентов 4 курса заочной формы обучения.

Методические указания подготовлены в электронном виде в текстовом редакторе MS Word 2007 и содержится в файле МетУказанияСборки.pdf.

Табл. 5. Ил. 8. Библиогр.: 4 назв.

Рецензент: д-р техн. наук, ст. науч. сотр. В.А. Каладзе Ответственный за выпуск зав. кафедрой д-р техн. наук,

проф. С.Л. Подвальный

©Ганцева Е.А., 2017

©ФГБОУ ВО «Воронежский государственный технический университет», 2017

2

ВВЕДЕНИЕ

В методические указания вошли теоретические и практические материалы по созданию программного обеспечения в современной системе программирования Visual Studio. Издание предназначено для студентов заочной формы обучения профиля «Вычислительные машины, комплексы, системы и сети» и позволит им, освоив технику работы в Visual Studio, создавать приложения разного уровня сложности, уметь пользоваться всеми преимуществами современных средств программирования, выполнить предложенные контрольные работы, а также выпускную квалификационную работу.

Теоретический материал и практические примеры дают возможность изучить такие возможности системы программирования Visual Studio, как технологии использования сборок, рефлексии, динамического создания объектов в приложениях, работы с доменами и процессами.

1

РАБОТА № 1

СБОРКИ .NET. РАБОТА С ДИЗАССЕМБЛЕРОМ

Цель работы: изучение содержимого сборки, создание компонентов с заданными атрибутами.

ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Сборка – это двоичный файл, который содержит описание самого себя, поддерживает версии и обслуживается CLR [1 - 4]. Преимущества сборок:

повторное использование кода; определение границ использования типов данных;

использование различных версий сборки на компьюте-

ре;

использование внешних ссылок и внутренних типов сборок;

использование частных и разделяемых сборока. Сборка может состоять из одного или нескольких фай-

лов.

Сборка .NET (*.dll или *.ехе) представлена разделами: заголовок файла Windows;

заголовок файла CLR; манифест сборки; метаданные типов; код на промежуточном языке; требуемые ресурсы.

Заголовок файла Windows позволяет загрузить сборку в память и определить тип приложения. Для просмотра заголовка используется утилита dumpbin.ехе (в окне командной строки Visual Studio 2010 – Tools/VS Command Promt) с флагом /headers:

dumpbin /headers Shapes.dll

2

Рис. 1. Windows заголовок сборки

Информация необходима при разработке компилятора

.NET и загрузке сборки в память.

Заголовок файла CLR позволяет CLR выполнять эту сборку, в нём присутствуют флаги местоположения внутри файла метаданных, ресурсов, версии исполняющей среды, значение открытого ключа и т.д.

Просмотр заголовка CLR выполняется утилитой dumpbin.exe с флагом /clrheader:

3

dumpbin /clrheader Shapes.dll

Рис. 2. Заголовок CLR

JIT-компилятор при выполнении CIL-кода создает инструкции, настроенные на конкретные платформу и процессор.

Рис. 3. Промежуточный код

4

Метаданные описывают формат типов самой сборки и типов, на которые ссылается сборка. Метаданные показывают местоположение типов внутри файла, используются в рефлексии.

Рис. 4. Метаданные сборки

Манифест описывает каждый модуль сборки, версию, ссылки на внешние сборки. Библиотеки типов СОМ не описывают внешние ссылки.

Впервом блоке манифеста перечисляются все необходимые внешние сборки. Например, mscorlib.dll и System.Drawing отображаются после слов .assembly extern.

Вкаждом блоке .assembly extern присутствуют директи-

вы .publickeytoken и .ver.

.publickeytoken появляется, если сборка была сконфигурирована со строгим именем.

.ver отображает версию сборки.

.custom перечисляет атрибуты сборки.

5

Рис. 5. Манифест сборки

Эти значения также можно установить в редакторе свойств проекта в окне Solution Explorer, на вкладке

Application, нажав кнопку Assembly Information.

Рис. 6. Информация о сборке

6

При этом внесение изменений обновляет файл

AssemblyInfo.cs

Ресурсы сборки (иконки приложения, графические файлы, звук, таблицы строк) не обязательны.

Существуют подчиненные сборки (satellite assemblies), в

которых находятся только ресурсы. Такие сборки позволяют разделить ресурсы для языков разных стран.

ЗАДАНИЕ

Создать проект библиотеки классов. Например, биб-

лиотеку фигур Shapes: окружность, треугольник. Каждый класс обладает двумя конструкторами, одному из которых вообще не требуются параметры, другому они необходимы для инициализации экземпляров. Каждый класс снабжен функцией, вычисляющей площадь фигуры.

namespace Shapes

{

public class Circle

{

double Radius; public Circle()

{

Radius = 0;

}

public Circle(double givenRadius)

{

Radius = givenRadius;

}

public double Area()

{

return System.Math.PI * (Radius*Radius);

}

}

public class Triangle

{

double Base; double Height;

7

public Triangle()

{

Base = 0;

Height = 0;

}

public Triangle(double givenBase, double givenHeight)

{

Base = givenBase; Height = givenHeight;

}

public double Area()

{

return 0.5 * Base*Height;

}

}

}

Построить проект.

Build/Build

или откомпилировать файл с помощью командной строки: csc /target:library shapes.cs

Опция /target:library указывает компилятору на необходимость создания модуля DLL, а не исполняемого файла.

Исследовать заголовки сборки с помощью утилиты dumpbin.

Исследовать содержимое построенного модуля с по-

мощью ildasm.

Исследовать манифест.

Исследовать метаданные и CLI-код.

Изменить номер версии и некоторые (по своему выбору) атрибуты модуля в AssemblyInfo.cs или shapes.cs. С помощью ildasm проследить за изменениями в файле shapes.dll.

Создать новый модуль moreshapes, в который будет до-

бавлен класс Square, изучить его свойства с помощью ildasm. Создать клиента, использующего shapes, например,

ShapeUser.cs.

namespace ShapeUser

8