- •Семестр 9 р1. Принципы построения пользовательского интерфейса в приложениях систем управления р1: Лекция №1. Обобщенная архитектура прикладной составляющей программного обеспечения систем управления
- •Жизненный цикл изделия и программные средства его поддержки
- •Обобщенная архитектура систем управления электроавтоматикой
- •Характеристики современного процесса разработки прикладной составляющей электроавтоматики
- •Вопросы:
- •Р1: Лекция №2. Базовые элементы платформы приложений су для построения интерфейса пользователя
- •Компоненты каркаса
- •Компоненты конфигурирования
- •Компоненты средств интерфейса пользователя
- •Конфигурирование компонентов в составе системы
- •Вопросы
- •Р1: Лекция №3. Принципы классификации прикладных компонентов систем управления
- •Виртуальная структура прикладной области
- •Матрица компонентов
- •Анализ и систематизация набора прикладных компонентов с применением матрицы
- •Определение минимально необходимого набора прикладных компонентов системы
- •Вопросы
- •Семестр 9 р2. Технологии .Net в разработке приложений систем управления р2: Лекция №4. Основные понятия платформы .Net
- •Строительные блоки .Net (clr, cts, cls)
- •Преимущества с#
- •Промежуточный язык msil
- •Работа с пространствами имен
- •Память в приложениях .Net
- •Проверка наличия утечек
- •Получение дополнительной информации о пространстве имен и типах сборки
- •Вопросы
- •Р2: Лекция №5. Принципы взаимодействия .Net с разработанным кодом
- •Преобразование исходных кодов в новый формат языков .Net
- •Использование двоичных компонентов для организации взаимодействия с компонентами .Net
- •Вопросы
- •Р2: Лекция №6. Инструментарий процесса разработки
- •P2: Лекция №6. Инструменты отладки приложений в .Net Framework 2.0 и выше Утилиты
- •Загрузка расширения отладки sos
- •Примеры:
- •Базовые различия
- •Сборка мусора в .Net Framework
- •Причины смешивания управляемого и неуправляемого кодов
- •Концепция CoDeSys
- •Окно приложения Сodesys:
- •P3. Лекция № 9. Возможности CoDeSys как открытой системы
- •Архитектура приложений современных систем управления
- •Выявление открытых интерфейсов среды
- •Встраивание сцены трёхмерного моделирования объекта управления
- •P3. Лекция № 10. Взаимодействие с аппаратными средствами платформы CoDeSys
- •Основные характеристики и назначение
- •Построения средств диагностики и управления устройствами электроавтоматики на базе opc технологии
- •Особенности механизмов работы opc серверов
- •Реализация интерфейсов opc в сервере
- •Реализация opc компонентов диагностики для контроллеров CoDeSys sp
- •Вопросы
- •Семестр 9 р4. Тестирование приложений систем управления через интерфейс оператора p4. Лекция № 11. Базовые понятия процесса тестирования
- •Жизненный цикл разработки программного обеспечения
- •Модели жизненного цикла
- •Каскадный жизненный цикл
- •Спиральный жизненный цикл
- •Экстремальное программирование
- •Тестирование, верификация и валидация - различия в понятиях
- •Задачи и цели процесса верификации
- •P4. Лекция № 12. Использование пакетов автоматизации тестирования
- •Методы проведения тестирования пользовательского интерфейса, повторяемость тестирования пользовательского интерфейса
- •1) Ручное тестирование
- •2) Сценарии на формальных языках
- •Тестирование удобства использования пользовательских интерфейсов.
- •Принцип использования коммерческих приложений для тестирования пользовательского интерфейса
- •Обзор Quickt Test. Основные понятия
- •Использование Actions, Iterations
- •Использование объекта DataTable и параметризация
- •Распознавание объектов в qtp и уникальность их свойств
- •P4. Лекция № 13 Модульное тестирование
- •Цели и задачи и модульного тестирования
- •Понятие модуля и его границ. Тестирование классов
- •Подходы к проектированию тестового окружения
- •P4. Лекция № 14. Возможности uiAutomation
- •Начальное представление
- •Представление элемента управления
- •Представление содержимого
- •Шаблоны элементов управления uia
Промежуточный язык msil
Двоичные файлы .NET, со стандартными расширениями DLL или EXE, по своему внутреннему содержанию не имеют ничего общего с обычными исполняемыми файлами. Сборки не предоставляют свои методы в распоряжение приложений на компьютере, в отличие от COM компонентов не описываются IDL кодом и не регистрируются в системном реестре. Главное что двоичные файлы .NET не содержат зависящих от платформы команд. Содержимое сборок – это полатформено-независимый «промежуточный язык» Microsoft Intermediate Language (MSIL – промежуточный язык IL) Помимо инструкция IL сборки содержат также метаданные, которые подробно описывают все типы используемые в модуле. Часть метаданных, которая описывает саму сборку называется манифестом (manifest). Манифест содержит информацию о текущей версии сборки, об используемых ограничениях по безопасности, о поддерживаемом естественном языке (англ. рус.), а так же список всех внешних сборок которые потребуются для работы данной сборки.
Основные преимущества MSIL это:
-
Возможность полного межъязыкового взаимодействия, любой код на любом языке программирования .NET компилируется в стандартный набор инструкция IL, проблем во взаимодействии между блоками IL не будет.
-
И второе, потенциальная не зависимость от компьютерной платформы. Все зависящие от платформы операции производи CLR. CLR абстрагирует сервисы ОС и служит механизмом для исполнения управляемого кода.
Путь, который проходит исходный код приложения до выполнения на компьютере, представлен ниже:

Рис. 16 Роль среды выполнения .NET
Работа с пространствами имен
Разработчики на С# используют библиотеку базовых типов для всей среды .NET. Для организации типов внутри этой библиотеки используется концепция пространств имен. Главное отличие от библиотек, привязанных к конкретному языку (типа МFС для C++),заключается в том, что в любом .NET-совместимом языке используются те же самые типы и те же самые пространства имен, что и в С#.
Пространство имен (namespace) — это просто способ организации типов (классов, перечислений, интерфейсов, делегатов и структур) в единую группу. Обычно, в одном пространстве имен объединяются взаимосвязанные типы. В .NET предусмотрены пространства имен для организации типов для работы с базами данными, Web, многопоточностью, защитой данных и множества других задач.
Память в приложениях .Net
В приложениях .NET используются разные типы памяти: стек, неуправляемая куча, управляемая куча. Их основные характеристики:
Стек Стек — это область памяти, где во время выполнения приложения хранятся локальные переменные, параметры метода, возвращаемые значения и другие временные данные. Каждому потоку выделяется отдельный стек, используемый им в процессе работы как вспомогательная область. Очистка стека не является обязательной задачей сборщика мусора, потому что та часть стека, которая резервируется при вызове метода, автоматически очищается при возврате из него. Однако следует заметить, что сборщику мусора известны ссылки на объекты, хранящиеся в стеке. Когда для метода создается экземпляр объекта, то ссылка на него (32-разрядное либо 64-разрядное целое число, в зависимости от платформы) остается в стеке, но сам объект хранится в управляемой куче; он удаляется сборщиком мусора, как только переменная выходит из области видимости.
Неуправляемая куча Неуправляемая куча используется для структур данных времени выполнения, таблиц методов, языка MSIL, динамически скомпилированного (JIT) кода и т.п. Неуправляемый код размещает объекты в неуправляемой куче либо в стеке в зависимости от того, как был создан экземпляр объекта. Управляемый код может выделять память в неуправляемой куче непосредственно при вызове неуправляемых API Win32 либо при создании экземпляров объектов COM. Сама среда CLR широко использует неуправляемую кучу для хранения своих структур данных и кода.
Управляемая куча Управляемая куча — это область памяти, в которой размещаются управляемые объекты и работает сборщик мусора. В среде CLR используется сборщик мусора, работающий по поколениям и осуществляющий сжатие памяти. Суть работы по поколениям заключается в том, что все объекты имеют возраст, и всякий раз по окончании сбора мусора возраст оставшихся объектов увеличивается; работа по поколениям увеличивает производительность сборщика. Во всех версиях среды .NET Framework для сборщика мусора поддерживаются три поколения: Gen0, Gen1 и Gen2 (перечисленные в порядке старшинства, т.е. от самого младшего к самому старшему). Осуществляя сжатие памяти, сборщик мусора размещает объекты в управляемой куче таким образом, чтобы в ней не осталось незанятых участков, а вся освободившаяся память была связной. Перемещение больших объектов связано со значительными затратами; чтобы избежать их, сборщик мусора размещает большие объекты в специальной куче, которая называется кучей больших объектов и не подлежит сжатию. Дополнительные сведения об управляемой куче и сборщике мусора можно найти в публикациях Джеффри Рихтера (Jeffrey Richter) на MSDN.
