Форма отчета по лабораторной работе Отчет должен содержать: титульный лист, цель работы, условие задачи, исходные тексты программ с комментариями, скриншот окна с данными, выводы по работе.
Вопросы для самоконтроля
1. Структура простейшего оконного приложения в MFC.
2. Обработчики сообщений в MFC.
3. Классы контекстов устройств в MFC.
4. Методы класса CDC для вывода графики.
5. «Перья» и «кисти» в MFC.
Лабораторная работа № 8. Изучение разработки приложений для платформы Microsoft .NET с использование библиотеки классов .NET Framework
Цель и задачи работы, требования к результатам ее выполнения
Цель работы состоит в овладении навыками разработки приложений для платформы Microsoft .NET с использованием классов библиотеки .NET Framework. Для достижения цели необходимо выполнить следующие задачи:
- изучить необходимые учебные материалы, посвященные разработке приложений для платформы Microsoft .NET [7];
- разработать программу на языке Си++ с использованием библиотеки классов .NET Framework для решения заданного варианта задания;
- отладить программы;
- представить скриншот окна с результатами работы программы;
- подготовить отчет по лабораторной работе.
Краткая характеристика объекта изучения
Обзор платформы Microsoft .NET
Платформа Microsoft .NET включает основные элементы:
• единую среду выполнения CLR (Common Language Runtime);
• средства разработки приложений на любом из многих языков программирования, поддерживаемых платформой .NET;
• библиотеку классов .NET Framework, они доступны в любом языке программирования, поддерживаемом платформой .NET;
• поддержку сетевой инфраструктуры, построенной на верхнем слое стандартов
Internet, вследствие чего обеспечивается высокий уровень взаимодействия между приложениями;
• поддержку нового промышленного стандарта, а именно технологии Web-
служб;
• модель безопасности;
• инструментальные средства разработки.
Единая среда исполнения
Когда мы компилируем исходный код (приложение, библиотеку, элемент управления и т.д.) для платформы .NET Framework, то генерируемый объектный код не ориентирован на набор команд CPU того компьютера, на котором мы работаем.
Компиляция для .NET фактически представляет собой компиляцию для CLR, т.е. в результате компиляции генерируется код на новом языке, называемом промежуточным языком Microsoft (Microsoft Intermediate Language - MSIL или просто IL). Язык MSIL определяет набор команд для "виртуального" процессора. Таким образом, код, компилируемый в IL, перед запуском на конкретном процессоре требует дальнейшей компиляции в набор команд, присущий этому процессору.
Среда CLR предоставляет такое средство, как компилятор по требованиюили оперативный компилятор (just-in-time compiler),который компилирует код на языке IL в собственный машинный код. Будучи однажды откомпилирован, код кэшируется.
8.2.3. Новые возможности Си++
К стандартным средствам языка Си++ добавились некоторые новые возможности:
1. Сборка мусора
Понятие «управляемой кучи» для выделения памяти,
Новый оператор gcnew и «управляемые» указатели:
String ^str=gcnew(“Hello”);
2. Переносимость кода
3. Интероперабельность языков
Каждый язык, который должен работать в среде .NET и поддерживать взаимодействие между приложениями, обязан соответствовать спецификациям Microsoft. Любой .NET-совместимый язык должен быть объектно-ориентированным и использовать стандартный набор типов данных, называемый системой общих типов (common type system — CTS).
4. Безопасность кода
5. Доступ к библиотеке классов .NET Framework
Понятие управляемого кода
Код, написанный для CLR и использующий ее возможности, называется управляемым кодом (managed code).Код, не использующий средства CLR, теперь называется неуправляемым кодом (unmanaged code).При компиляции кода, который должен работать в среде CLR, генерируется код на промежуточном языке (IL).
8.2.5. Пространство имен Си++
Для избегания конфликтов имен в разных библиотеках введено понятие пространства имен.
Пример определения пространства имен:
namespace A
{
int i=10;
}
namespace B
{
int i=20;
}
Обращаться к переменным можно по полному имени:
A::i=100;
Или можно использовать оператор:
using namespace A;
i=100;
Существует также директива:
#using - необходима для всех программ на управляемом Cи++.
Она делает доступными для компилятора стандартные типы (такие, как Console (Консоль) иObject (Объект) и др.), определенные в библиотеке классов .NET Framework.
#using <mscorlib.dll> // требуется для кода на управляемом Cи++
Система общих типов
Для поддержки интероперабельности языков разработана система общих типов, являющихся классами библиотеки .NET Framework, эти классы доступны для всех языков программирования, поддерживаемых в Microsoft .NET. Соответствие типов языка Си++ системе общих типов представлено в таблице 3.
Таблица 3 – Соответствие типов языка Си++ системе общих типов
Тип языка Си++
| Тип библиотеки классов .NET Framework
| сhar
| SByte
| short
| Int16
| int
| Int32
| long
| Int32
| __int64 (long long)
| Int64
| unsigned char
| Byte
| unsigned short
| UInt16
| unsigned int
| UInt32
| unsigned long
| UInt32
| unsigned __int64
| UInt64
| float
| Single
| double
| Double
| void
| Void
|
Обзор библиотеки классов .NET Framework
Классы находятся в пространствах имен:
• System::Data – определяет архитектуру объектов ADO.NET, которые используются для доступа к источникам данных и для управления ими.
• System::Xml – обеспечивает поддержку XML.
• System::Diagnostics – используется для отладки, трассировки, создания журналов регистрации и мониторинга производительности системы.
• System::DirectoryServices – содержит классы, обеспечивающие доступ к активным каталогам.
• System::Net – включает классы, предназначенные для организации работы в сети.
• System::Drawing – обеспечивает доступ к графике GDI+.
• System::Windows::Forms – определяет классы, применяемые для создания приложений Windows.
• System::Security – реализует систему безопасности CLR и содержит классы, обеспечивающие определение политики безопасности, управление доступом и перемещение по стеку.
• System::Security::Cryptography – включает классы, предназначенные для выполнения функций криптографии, таких, как кодирование/декодирование данных, хеширование, генерация cлучайных чисел, аутентификация сообщений и генерация цифровых подписей.
• System::Web – обеспечивает базовую инфраструктуру для ASP.NET и поддержку форм Web.
• System::Web::Services – включает классы, необходимые для поддержки Web-служб.
Класс Form
Класс Form находится в пространстве имен System::Windows::Forms.
Form является представлением любого окна, отображаемого в приложении. Клаcc Form используется для создания стандартных окон, окон инструментов, необрамленных и перемещаемых окон. Класс Form также используется для создания модальных окон, например, диалогового окна.
С помощью свойств, доступных в классе Form, имеется возможность определить внешний вид, размер, цвет и компоненты управления создаваемого окна или диалогового окна. Свойство Text позволяет задавать заголовок окна в строке заголовка. С помощью свойств Size и DesktopLocation определяются размер и положение окна при его отображении. Имеется возможность использовать свойство цвета ForeColor для изменения назначенного по умолчанию цвета фона всех элементов управления, помещенных в форму. Свойства FormBorderStyle, MinimizeBox и MaximizeBox позволяют управлять возможностью свертывания, развертывания или изменения размера формы во время выполнения.
События класса Form позволяют отвечать на действия, выполненные с формой. Имеется возможность использовать событие Activated для выполнения таких операций, как обновление данных, отображаемых в элементах управления формы при ее активации.
Обработка событий
Событие представляет собой сообщение, посылаемое объектом, чтобы сигнализировать о совершении какого-либо действия. Это действие может быть вызвано в результате взаимодействия с пользователем, например при нажатии кнопки мыши, или может быть обусловлено логикой работы программы. Объект, вызывающий событие, называется отправителем события. Объект, который захватывает событие и реагирует на него, называется получателем события.
События могут поступать от клавиатуры, «мыши», элементов управления.
Для обработки события обычно в класс включают специальный метод – обработчик события, он вызывается автоматически при наступлении события.
Обычно обработчик имеет заголовок вида
void EventHandler(Object^ sender, EventArgs^ e)
(имена обработчика могут быть разными)
Первый параметр метода определяет объект события, а второй объект класса, несущий информацию о событии.
Обработчик событий добавляется в класс в автоматизированном режиме по аналогии с тем, как это выполнялось в MFC, см. лабораторную работу 7.
|