Конспект лекции дисциплины «Графические системы и интерфейс оператора»


НазваниеКонспект лекции дисциплины «Графические системы и интерфейс оператора»
страница5/17
Дата публикации13.03.2013
Размер1.2 Mb.
ТипКонспект
userdocs.ru > Информатика > Конспект
1   2   3   4   5   6   7   8   9   ...   17
^

Семестр 9
Р2. Технологии .Net в разработке приложений систем управления

Р2: Лекция №4. Основные понятия платформы .Net


Платформа .Net. Строительные блоки .NET (CLR, CTS, CLS). Преимущества С#. Промежуточный язык MSIL. Библиотеки типов, пространства имён. Получение дополнительной информации о сборках.

.NET — это универсальная платформа, которая объединяет в себе серверные и клиентские продукты, призванные облегчить жизнь, как пользователям, так и разработчикам программного обеспечения.

.NET представляет собой собственный способ создания распределенных, настольных и встроенных приложений. .NЕТ не имеет ничего общего с СОМ (кроме мощных средств взаимодействия этих двух технологий). Для типов .NET не нужны ни фабрики классов, ни поддержка IUnknown, ни регистрация в системном реестре. Эти основные элементы СОМ не скрыты — их просто больше нет. Платформа .NET является полностью независимой от используемых языков программирования. Существует возможность использовать несколько .NET - совместимых языков программирования.
^

Строительные блоки .NET (CLR, CTS, CLS)


Сточки зрения программиста .NET вполне можно рассматривать как новую среду выполнения и новую библиотеку базовых классов. С концептуальной точки зрения отношения между уровнем среды выполнения и библиотекой базовых классов .NET выглядят так, как показано на Рис. 1:



Рис. 15 Отношение между средой выполнения и библиотекой базовых классов .NET

CLR (Common Language Runtime) – это среда выполнения .NET. Ее главная роль – обнаруживать и загружать типы .NET и производить управление ими в соответствии с вашими командами. CLR берет на себя всю низкоуровневую работу — например, автоматическое управление памятью, межъязыковым взаимодействием, развертывание (с отслеживанием версий) различных двоичных библиотек.

Common Type System (CTS - стандартная система типов) CTS полностью описывает все типы данных, поддерживаемые средой выполнения, определяет, как одни типы данных могут взаимодействовать с другими и как они будут представлены в формате метаданных .NET.

Common Language Specification (CLS) — это набор правил, определяющих подмножество общих типов данных, в отношении которых гарантируется, что они безопасны при использовании во всех языках .NET. Если вы создаете типы .NET с использованием только тех возможностей, которые совместимы с CLS, тем самым вы сделаете их пригодными для любых языков .NET.

Помимо спецификаций CLR и CTS/CLS платформа .NET предоставляет в ваше распоряжение также библиотеку базовых классов, доступную из любого языка программирования .NET. Библиотека базовых классов не только прячет обычные низкоуровневые операции, такие как файловый ввод-вывод, обработка графики и взаимодействие с оборудованием компьютера, но и обеспечивает поддержку большого количества служб, используемых в современных приложениях.

^

Преимущества С#


С# — это язык программирования, разработанный специально для платформы .NET.

В программах на С# не необходимости в работе с указалелями;

Управление памятью производится автоматически.

В С# предусмотрены встроенные синтаксические конструкции для работы с перечислениями, структурами и свойствами классов.

В С# осталась возможность перегружать операторы, унаследованные от C++.

Предусмотрена полная поддержка использования программных интерфейсов

Также предусмотрена полная поддержка аспектно-ориентированных программных технологий (таких как атрибуты). Это позволяет присваивать типам характеристики (что во многом напоминает COM IDL) для описания в будущем поведения данной сущности.

C# компилятор генерирует код, предназначенный для выполнения только в среде .NET. Код предназначенный для работы в среде выполнения – это управляемый код (managed code). Двоичный файл, содержащий управляемый код, называется сборкой (assembly).
^

Промежуточный язык 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.

^

Проверка наличия утечек


Существует ряд признаков, по которым можно установить наличие утечек памяти в приложении. Одним из них является выдача исключения OutOfMemoryException (недостаточно памяти). Другой признак — это существенное замедление отклика из-за того, что происходит обмен с файлом подкачки (виртуальной памятью), расположенным на диске. Еще один признак — медленное (или не очень медленное) увеличение значения объема используемой памяти, которое можно посмотреть в диспетчере задач. Если появляются подозрения, что в приложении есть утечка памяти, то нужно прежде всего определить тип памяти, в котором эта утечка имеет место. Это позволит определить область памяти, на которой нужно сосредоточить внимание и усилия при отладке. Рекомендуется использовать монитор производительности (perfmon.exe - Рис. 17) и просматривать там следующие счетчики: Private Bytes (Байт исключительного пользования) в категории Process (Процесс), # Bytes in All Heaps (Байт во всех кучах) в категории .NET CLR Memory (Память CLR .NET) и # of current logical Threads (Текущих логических потоков) в категории .NET CLR LocksAndThreads (Блокировки и потоки CLR .NET).

Счетчик Private Bytes из категории Process указывает объем памяти, выделенной исключительно для данного процесса; эта память не может использоваться другими процессами системы.

Счетчик # Bytes in All Heaps из категории .NET CLR Memory указывает общий суммарный объем памяти, занятой поколениями Gen0, Gen1 и Gen2 и кучей больших объектов.

Счетчик # of current logical Threads из категории .NET CLR LocksAndThreads указывает число логических потоков в AppDomain. Если число логических потоков неожиданно возрастает, то это значит, что в стеках потоков имеются утечки памяти.

Если возрастает значение счетчика Private Bytes и при этом значение счетчика # Bytes in All Heaps остается неизменным, то это значит, что имеются утечки в неуправляемой памяти. Если возрастают значения обоих счетчиков, то это значит, что увеличивается объем памяти в управляемых кучах.



Рис. 17 Монитор производительности
^

Получение дополнительной информации о пространстве имен и типах сборки


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

  • документация .NET SDK (в MSDN);

  • утилита ILDasm.exe;

  • web-приложение ClassView;

  • графическое приложение WinCV;

  • QbjectBrowser, входящий в комплект Visual Studio.NET.

Все эти утилиты поставляются вместе с .NET SDK.

Так же, интерес представляют инструменты дизассемблирования MSIL кода. Которые фактически интерпретируют IL инструкции в читабельный C# код.



Рис. 18 Применение средства дизассемблирования

Вопросы


  1. Платформа .Net. Строительные блоки .Net (CLR, CTS, CLS).

  2. Преимущества C#. Промежуточный язык MS IL.

  3. Библиотека типов, пространства имён, получение дополнительной информации о сборках.



1   2   3   4   5   6   7   8   9   ...   17

Похожие:

Конспект лекции дисциплины «Графические системы и интерфейс оператора» iconПлан-конспект лекции Тема лекции «Культура Античности»
Зелинский Ф. Ф. Древний мир и мы. Научно популярные статьи [1904]. Спб., 1997. ("Из жизни идей", т. 2)
Конспект лекции дисциплины «Графические системы и интерфейс оператора» iconВопросы к зачёту (1-й семестр)
Прикладное программное обеспечение: системы управления базами данных, графические редакторы
Конспект лекции дисциплины «Графические системы и интерфейс оператора» iconЛабораторная работа Оценка соответствия эргономических параметров рабочего места оператора пэвм
Рассмотреть составляющие элементы рабочего места оператора персонального компьютера (ПК). Ознакомиться с принципами оптимальной организации...
Конспект лекции дисциплины «Графические системы и интерфейс оператора» iconКонспект лекции План лекции Цель, задачи и объекты анализа финансовой...
Одним из видов экономического анализа является финансовый анализ, который с определенной долей условности подразделяется на внутренний...
Конспект лекции дисциплины «Графические системы и интерфейс оператора» iconС. П. Филин Концепции современного естествознания: конспект лекций
Конспект лекций соответствует требованиям Государственного образовательного стандарта высшего профессионального образования РФ и...
Конспект лекции дисциплины «Графические системы и интерфейс оператора» iconДжеф Раскин, Интерфейс: новые направления в проектировании компьютерных систем
...
Конспект лекции дисциплины «Графические системы и интерфейс оператора» icon«Психодиагностика. Конспект лекций»: Эксмо; Москва; 2008 isbn 978-5-699-26681-4
Книга предназначена длястудентов-психологов и представляет собой конспект лекций по психодиагностике. Подробное изложение материала...
Конспект лекции дисциплины «Графические системы и интерфейс оператора» iconПрограмма лекции Адрес Время проведения лекции Участники лекции 12...

Конспект лекции дисциплины «Графические системы и интерфейс оператора» iconТема №1 Первичные графические элементы композиции и основные принципы ее организации
Онятие. Система, структура. Психологические особенности восприятия визуальной информации. Зоны активного восприятия. Взаимосвязь...
Конспект лекции дисциплины «Графические системы и интерфейс оператора» iconДисциплины
Всего часов 108, из них аудиторных занятий 48 (лекции – 32, практические занятия –16)
Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2015
контакты
userdocs.ru
Главная страница