Платформа Net

Содержание

Слайд 2

Обзор .NET. Основные понятия

ПЛАТФОРМА (в контексте ИТ) –
среда, обеспечивающая выполнение программного

Обзор .NET. Основные понятия ПЛАТФОРМА (в контексте ИТ) – среда, обеспечивающая выполнение
кода.
Платформа определяется характеристиками процессоров, особенностями операционных систем.

Слайд 3

Framework – это инфраструктура среды выполнения программ, нечто, определяющее особенности разработки и

Framework – это инфраструктура среды выполнения программ, нечто, определяющее особенности разработки и
выполнения программного кода на данной платформе.
Предполагает средства организации взаимодействия с ОС и прикладными программами, методы доступа к БД, средства поддержки распределенных приложений, ЯП, множества базовых классов, унифицированные интерфейсы пользователя, парадигмы программирования.

Слайд 4

.NET Framework

Microsoft .NET – платформа.
.NET Framework – инфраструктура платформы Microsoft .NET.

.NET Framework Microsoft .NET – платформа. .NET Framework – инфраструктура платформы Microsoft

Основные компоненты:
Common Language Runtime (CLR)
.NET Framework Class Library (.NET FCL).

Слайд 5

Концепция и возможности подхода .NET

.NET – это подход к проектированию и

Концепция и возможности подхода .NET .NET – это подход к проектированию и
реализации ПО, включает компоненты:
идеология проектирования и реализации ПО;
модель эффективной поддержки ЖЦ прикладных систем;
унифицированная, интегрированная технологическая платформа для программирования;
современный, удобный в использовании, безопасный инструментарий для создания, развертывания и поддержки ПО.

Слайд 6

.NET Framework

Важнейшие аспекты идеологии .NET:
легкость развертывания приложений в глобальной среде Internet;
экономичная разработка

.NET Framework Важнейшие аспекты идеологии .NET: легкость развертывания приложений в глобальной среде
ПО;
"бесшовная", гибкая интеграция программных продуктов и аппаратных ресурсов;
предоставление ПО как сервиса;
новый уровень безопасности и удобства использования.

Слайд 7

Корпорация MS предложила компонентно-ориентированный подход к проектированию:
интеграция объектов (возможно, гетерогенной природы), производится

Корпорация MS предложила компонентно-ориентированный подход к проектированию: интеграция объектов (возможно, гетерогенной природы),
на основе интерфейсов, представляющих эти объекты (или фрагменты программ) как независимые компоненты.
Это облегчает написание и взаимодействие программных "молекул"- компонентов в гетерогенной среде проектирования и реализации.
Стандартизируется хранение и повторное использование компонентов программного проекта в условиях распределенной сетевой среды вычислений, где различные компьютеры и пользователи обмениваются информацией.

Идеология .NET

Слайд 8

Идеология .NET

Преимущество - возможность практической реализации принципа "всякая сущность представляет собой объект

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

Слайд 9

Новый подход к интеграции компонентов приложений в среде Internet (web-сервисы) - возможность

Новый подход к интеграции компонентов приложений в среде Internet (web-сервисы) - возможность
ускоренного создания приложений для глобальной аудитории пользователей.
Универсальный интерфейс .NET Framework обеспечивает интегрированное проектирование и реализацию компонентов приложений, разработанных в соответствии с различными подходами к программированию.
.NET обеспечивает одновременную поддержку проектирования и реализации ПО с использованием различных ЯП.
Поддерживаются десятки ЯП: от самых первых (COBOL, FORTRAN) до современных (C#, VB).

Слайд 10

Технология web-сервисов

масштабируемость и интероперабельность
Масштабируемость - возможность плавного роста времени ответа программной

Технология web-сервисов масштабируемость и интероперабельность Масштабируемость - возможность плавного роста времени ответа
системы на запрос с ростом числа одновременно работающих пользователей;
в случае web-сервисов реализуется посредством распределения вычислительных ресурсов между сервером и компьютером пользователя.

Слайд 11

Интероперабельность - возможность интегрированной обработки гетерогенных данных, поступающих от разнородных прикладных программ.

Интероперабельность - возможность интегрированной обработки гетерогенных данных, поступающих от разнородных прикладных программ.

Благодаря интероперабельности возможна унификация взаимодействия пользователей через приложение с ОС на основе специализированного интерфейса прикладных программ, API-интерфейса (Application Programming Interface).

Слайд 12

Технология .NET

официально признана, это отражено в стандартах ECMA
(European Computer Manufacturers Association)

Технология .NET официально признана, это отражено в стандартах ECMA (European Computer Manufacturers Association)

Слайд 13

Инструментальные возможности .NET

- Поддержка многоязыковой среды разработки приложений CLR (Common Language

Инструментальные возможности .NET - Поддержка многоязыковой среды разработки приложений CLR (Common Language
Runtime). Эта возможность появилась благодаря универсальному межъязыковому интерфейсу Common Language Infrastructure (CLI), он поддерживает разработку программных компонентов на различных ЯП.
Преимущество для программистов - они могут разрабатывать (дорабатывать) ПО на наиболее подходящем ЯП.
Следует учитывать характер задачи (рекурсия или символьная обработка – реализуется на языке функционального программирования, а формализация структуры предметной области – на ОО языке).
Необходимо учитывать и опыт работы программистов в команде разработчиков и ЯП, на котором изначально создавалась система.

Слайд 14

2 важных обстоятельства:
1) основные сервисные возможности для разработчиков, которые предоставляет .NET (отладка,

2 важных обстоятельства: 1) основные сервисные возможности для разработчиков, которые предоставляет .NET
анализ кода) не зависят от конкретного ЯП → программистам не надо заново постигать особенности среды разработки при "переходе" на другой ЯП
2) не все ЯП поддерживаются .NET, но возможно самостоятельно разработать транслятор для любого ЯП.

Слайд 15

Безопасность .NET

Безопасность - важнейший элемент любой идеологии, технологии и инструментального средства

Безопасность .NET Безопасность - важнейший элемент любой идеологии, технологии и инструментального средства
программирования.
.NET как инструментальное средство призвано обеспечивать необходимый уровень безопасности.
Для этого в .NET реализована мера безопасности - автоматизированное управление ЖЦ ПО.
Для программиста это проявляется:
в автоматической реализации процедуры "сборки мусора",
в запрете использования указателей на области памяти с неопределенным значением ("висячих" ссылок) и ссылающихся на себя указателей (циклических ссылок).

Слайд 16

Безопасность .NET

Автоматизация обеспечения синтаксической коррекции кода (безопасные вызовы функций, контроль выхода за

Безопасность .NET Автоматизация обеспечения синтаксической коррекции кода (безопасные вызовы функций, контроль выхода
границы размера статически распределяемых областей памяти, запрет использования переменных, если им не задано значение по умолчанию).
Обязательная проверка промежуточного кода (IL – Intermediate Language) на корректность типизации в рамках стратегии расширенного контроля соответствия типов.
Усовершенствованы права доступа пользователей к ресурсам (для включения компонента в проект необходимо проверить источник кода, заверенный автором цифровой подписью и подлинность отправителя).
Широкий спектр динамически корректируемых в соответствии с профилями пользователя политик доступа.
Криптографические методы для шифрования конфиденциальной, коммерческой информации, передаваемой по Internet-каналам

Слайд 17

Концепция web-сервисов

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

Концепция web-сервисов - средство поддержки распределенных компонентных вычислений в глобальной сети. Задачи:
информации (документов, таблиц, графики), представленной в электронном виде;
организация совместной работы пользователей с прикладным ПО (заседания рабочих групп, конференции и т.д.);
поддержка взаимодействия прикладных программ.

Слайд 18

В концепции .NET сформулирована и решена задача адаптации изначально не структурированной Internet-среды

В концепции .NET сформулирована и решена задача адаптации изначально не структурированной Internet-среды
для достижения возможности интеграции приложений.
Основные направления решения задачи:
унификация информационной инфраструктуры;
достижение необходимого уровня интероперабельности ПО;
достижение необходимого уровня масштабируемости прикладного ПО.

Слайд 19

Задача достижения необходимого уровня масштабируемости прикладного ПО является технически сложной.
Задача поддержки интероперабельности

Задача достижения необходимого уровня масштабируемости прикладного ПО является технически сложной. Задача поддержки
прикладного ПО решается с помощью универсальной высокоуровневой языковой среды Common Language Infrastructure (CLI).

Слайд 20

Возможности CLI: Поддержка различных ЯП и подходов к программированию: функционального, ОО, компонентного.
Интегрированное

Возможности CLI: Поддержка различных ЯП и подходов к программированию: функционального, ОО, компонентного.
использование ЯП осуществляется с единой системой типов (CTS), включающей общую иерархию для примитивных типов, типов-значений и ссылочных типов.
В .NET в обобщенном варианте реализовано управление оперативной памятью: централизованно осуществляются "сборка мусора" и тестирование кода на безопасность. Унифицирован механизм обработки исключительных ситуаций.
Универсальная высокоуровневая языковая среда Common Language Infrastructure обеспечивает межъязыковую отладку.

Слайд 21

Стандарты

Для тиражируемого коммерческого программного продукта необходимо подтверждение его соответствия мировым стандартам.
Теоретические достижения

Стандарты Для тиражируемого коммерческого программного продукта необходимо подтверждение его соответствия мировым стандартам.
и технологические инновации технологии .NET подтверждаются мнением европейской ассоциации по стандартам ECMA (European Computer Manufacturers Association).
ЯП C# и среда Common Language Infrastructure (CLI) ратифицированы организацией ECMA в качестве международного стандарта.
Разработчики ПО осуществляют проекты в соответствии со спецификациями ECMA (реализация .NET под управлением ОС Linux).

Слайд 22

Основные аспекты архитектурного решения Microsoft .NET Framework

Важную роль играет среда разработки

Основные аспекты архитектурного решения Microsoft .NET Framework Важную роль играет среда разработки
Microsoft Visual Studio.NET.
Первостепенное значение имеет среда выполнения программ – Common Language Runtime (CLR).
CLR реализует управление памятью, типами данных, межъязыковым взаимодействием, развертыванием (deployment) приложений.

Слайд 23

Архитектурная схема .NET Framework и Visual Studio.NET.

Архитектурная схема .NET Framework и Visual Studio.NET.

Слайд 24

Преимущество конструктивного решения .NET - компонентно-ориентированный подход к проектированию и реализации ПО.
Суть

Преимущество конструктивного решения .NET - компонентно-ориентированный подход к проектированию и реализации ПО.
подхода - принципиальная возможность создания независимых составляющих ПО с унифицированной интерфейсной частью для многократного повторного и распределенного использования.
Продуктивность решения обусловлена многоязычностью интегрируемых программных проектов (концепция .NET потенциально поддерживает произвольный ЯП).

Слайд 25

При компиляции программа на .NET-совместимом ЯП трансформируется в соответствии с заранее заданной

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

Слайд 26

Common Language Specification (CLS)

- набор правил, определяющих подмножество обобщенных типов данных, в

Common Language Specification (CLS) - набор правил, определяющих подмножество обобщенных типов данных,
отношении которых гарантируется, что они безопасны при использовании во всех языках .NET.
Интерфейсы реализуются посредством форм Windows и ASP.NET для веб-приложений.
При трансляции исходный текст программы (SML, C#, VB, C++ или др.) преобразуется компилятором в сборку (assembly) и сохраняется в виде файла динамически присоединяемой библиотеки (Dynamically Linked Library, DLL) или исполняемого файла (Executable, EXE).

Слайд 27

Схема компиляции Common Language Runtime

Схема компиляции Common Language Runtime

Слайд 28

Для каждого компилятора (csc.exe, vbc.exe) средой времени выполнения производится необходимое отображение используемых

Для каждого компилятора (csc.exe, vbc.exe) средой времени выполнения производится необходимое отображение используемых
типов в типы CTS, а программного кода – в код "абстрактной машины" .NET –
MSIL (Microsoft Intermediate Language).
В итоге программный проект формируется в виде сборки – самодостаточного компонента для развертывания, тиражирования и повторного использования.
Сборка идентифицируется цифровой подписью автора и уникальным номером версии

Слайд 29

Поддержка ЖЦ ПО в рамках подхода .NET

Для установки на ПК пользователей ранее

Поддержка ЖЦ ПО в рамках подхода .NET Для установки на ПК пользователей
созданного прикладного ПО создаются инсталляционные комплекты в форме сборок.
Сборка - множество модулей, необходимых для инсталляции ПО

Слайд 30

Сборка характеризуется уникальностью, обеспечиваемая идентификатором версии и цифровой подписью автора.
Сборка -

Сборка характеризуется уникальностью, обеспечиваемая идентификатором версии и цифровой подписью автора. Сборка -
самодостаточная единица для установки ПО. Возможно сетевое и индивидуальное использование сборки на основе компонентной технологии.
Сборка обеспечивает простой и удобный механизм инсталляции, экономит средства на развертывание ПО.
Описание сборки - в манифесте (идентификация автора, версия, режим и политика ее использования).

Слайд 31

Пример трансляции многокомпонентного гетерогенного программного проекта под управлением Microsoft .NET:
Пусть компоненты проекта

Пример трансляции многокомпонентного гетерогенного программного проекта под управлением Microsoft .NET: Пусть компоненты
написаны на трех ЯП: SML, C# и С++(характеризуется возможностью создания потенциально небезопасного кода - в частности, динамического распределения памяти).
Исходные тексты компонент проекта транслируются компиляторами с языков SML, C# и C++ в унифицированный MSIL-код и сохраняются в файлах в виде сборок.

Слайд 32

Схема выполнения CLR.

Схема выполнения CLR.

Слайд 33

В ходе компоновки и выполнения программного проекта Just-In-Time (JIT) компилятор среды CLR

В ходе компоновки и выполнения программного проекта Just-In-Time (JIT) компилятор среды CLR
производит выполнение проекта с "ленивым" (по мере необходимости) означиванием оттранслированного промежуточного кода сборок.
Потенциально небезопасный код на C++ невыполним собственно JIT-компилятором, но исполняется посредством сервисов ОС. Ответственность за работоспособность программы и безопасность кода лежит уже не на среде проектирования и разработки ПО .NET, а на программисте-разработчике.

Слайд 34

Отличие MS .NET от аналогов - универсальная система типизации.
В ходе компиляции

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

Слайд 35

CTS

- представляет собой частично упорядоченное множество, понимаемое на качественном уровне как ISA-иерархия.
Например,

CTS - представляет собой частично упорядоченное множество, понимаемое на качественном уровне как
высказывание STUDENT ISA PERSON означает, что тип STUDENT является подтипом типа PERSON.
Система типов MS .NET образует иерархию с возрастанием общности снизу вверх, в которой выделяются две большие группы типов: типы-ссылки и типы-значения.
Различие между ними определяется особенностями вызова в процедурах: по имени или по значению (call-by-name, CBN) и по ссылке (call-by-reference, CBR).
Система типизации MS .NET позволяет пользователю создавать собственные типы (типы-ссылки и типы-значения) на основе уже существующих.

Слайд 36

Универсальная система типизации (UTS)

Универсальная система типизации (UTS)

Слайд 37

Веб-сервисы

Значение - распределение возможностей разработанных прикладных систем по каналам Internet.

Центральный блок -.NET

Веб-сервисы Значение - распределение возможностей разработанных прикладных систем по каналам Internet. Центральный
Framework (библиотека базовых объектов и операций над ними)

Слайд 38

Среда разработки прикладных систем - Microsoft Visual Studio .NET.
Интерфейсная часть прикладной

Среда разработки прикладных систем - Microsoft Visual Studio .NET. Интерфейсная часть прикладной
программной системы в Internet-архитектуре представлена веб-формами для ввода и вывода данных в унифицированном формате.
Язык реализации - HTML. Взаимодействие между клиентом и приложением в простейшем случае - с использованием протокола передачи данных HTTP.
Структурированные данные хранятся в формате XML (вариант HTML с более строгим синтаксисом).
Технология веб-сервисов допускает интеграцию с компонентами независимых производителей.

Слайд 39

Веб-сервисы - программируемые компоненты прикладных программных систем, доступные для клиента посредством стандартных

Веб-сервисы - программируемые компоненты прикладных программных систем, доступные для клиента посредством стандартных
протоколов, применяемых для работы в Internet-среде, предназначены для реализации основополагающего принципа «ПО как сервис».
Веб-сервисы организуются на традиционных стандартах взаимодействия приложений в Internet:
HTTP – стандартный протокол обмена гипертекстовыми документами в Internet с возможностью передачи данных посредством веб-форм;
XML – формат хранения структурированных данных с возможностью обмена ими по Internet-каналам;
SOAP – стандартный протокол взаимодействия компонент (глобально) распределенного приложения (Simple Object Access Protocol);
UDDI – стандарт интеграции приложений (Universal Description, Discovery and Integration);
WSDL – универсальный язык описания веб-сервисов (Web Service Description Language) и др.

Слайд 40

Компонентный подход к программированию

Центральная концепция - понятие компонента.
Компонент - независимый модуль ПО,

Компонентный подход к программированию Центральная концепция - понятие компонента. Компонент - независимый
который можно использовать повторно, тиражировать.
Свойства компонентов:
компонент обладает более высоким уровнем абстракции;
компоненты могут содержать в своем составе множественные классы;
компоненты с т.зр. пользователя инвариантны к ЯП, на котором они реализованы.

Слайд 41

Попытки построения компонентных программных систем - и другими разработчиками ПО (технология JavaBeans

Попытки построения компонентных программных систем - и другими разработчиками ПО (технология JavaBeans
производства Sun Microsystems), а также международных ассоциаций исследователей и практиков в области ООП (стандарт брокеров объектных запросов CORBA организации Object Management Group).
В основе таких попыток - варианты объектных моделей.
Один из вариантов, детально проработанный с математической точки зрения,– модель двухуровневой концептуализации.

Слайд 42

Особенности известных объектных моделей

Компонентная модель Microsoft COM - основной стандарт MS для

Особенности известных объектных моделей Компонентная модель Microsoft COM - основной стандарт MS
компонентного проектирования и реализации ПО. Самая развитая и практически удачная модель, обеспечивает возможность инициализации и использования компонентов внутри одного процесса, между процессами или между ПК независимо от языка реализации.
COM-модель поддерживается в идеологии .NET для ряда ЯП (C#, SML, Visual Basic, C++ и др.), является основой для ActiveX, OLE и других технологий Microsoft.
Модель Java Beans, базовый стандарт Sun Microsystems для компонент, оказывается зависимой от языка реализации.

Слайд 43

Итоги:

Microsoft считает.NET своей стратегической идеологией и технологической платформой на ближайшее время.
Превосходство над

Итоги: Microsoft считает.NET своей стратегической идеологией и технологической платформой на ближайшее время.
существующими средствами автоматизированного проектирования и быстрой реализации прикладного ПО (Inprise Delphi и JBuilder, Oracle Developer, Microsoft Visual Studio и др.) достигается за счет факторов:
интероперабельность и межъязыковое взаимодействие;
многоуровневая, гибкая и надежная политика безопасности;
интеграция с технологией web-сервисов;
упрощение процедуры развертывания и использования ПО.
Подход .NET оказывает влияние на коммерческую индустрию программирования и способствует радикальному совершенствованию отрасли в процессе рыночной конкуренции.

Слайд 44

Терминология:

CLS (Common Language Specification) – общая спецификация ЯП. Это набор конструкций и

Терминология: CLS (Common Language Specification) – общая спецификация ЯП. Это набор конструкций
ограничений, являющихся руководством для создателей библиотек и компиляторов в среде .NET Framework.
Библиотеки, построенные в соответствии с CLS, могут быть использованы из любого ЯП, поддерживающего CLS.
Языки, соответствующие CLS (Visual C#, Visual Basic, Visual C++), могут интегрироваться друг с другом. CLS – это основа межъязыкового взаимодействия в рамках платформы Microsoft .NET.

Слайд 45

CLR (Common Language Runtime) – Среда Времени Выполнения или Виртуальная Машина. Обеспечивает

CLR (Common Language Runtime) – Среда Времени Выполнения или Виртуальная Машина. Обеспечивает
выполнение сборки. Основной компонент .NET Framework.
Виртуальная Машина - абстракция инкапсулированная (обособленная) управляемой ОС высокого уровня, обеспечивает выполнение (управляемого) программного кода.

Слайд 46

Управляемый код – программный код, при выполнении использует службы, предоставляемые CLR.
Задачи

Управляемый код – программный код, при выполнении использует службы, предоставляемые CLR. Задачи
CLR:
Управление кодом (загрузка и выполнение).
Управление памятью при размещении объектов.
Изоляция памяти приложений.
Проверка безопасности кода.
Преобразование промежуточного языка в машинный код.
Доступ к метаданным (расширенная информация о типах).
Обработка исключений, включая межъязыковые исключения.
Взаимодействие между управляемым и неуправляемым кодами (в том числе и COM-объектами).
Поддержка сервисов для разработки (профилирование, отладка и т.д.).

Слайд 47

CLR – это набор служб, необходимых для выполнения управляемого кода.
Два главных

CLR – это набор служб, необходимых для выполнения управляемого кода. Два главных
компонента CLR:
ядро (mscoree.dll)
библиотеки базовых классов (mscorlib.dll).
Наличие этих файлов на диске –признак того, что на компьютере была предпринята попытка установки платформы .NET.
Ядро среды выполнения реализовано в виде библиотеки mscoree.dll.
При компоновке сборки в нее встраивается информация, которая при запуске приложения (EXE) или при загрузке библиотеки приводит к загрузке и инициализации CLR.

Слайд 48

FCL (.NET Framework Class Library) – соответствующая CLS-спецификации ОО библиотека классов, интерфейсов

FCL (.NET Framework Class Library) – соответствующая CLS-спецификации ОО библиотека классов, интерфейсов
и системы типов (типов-значений), которые включаются в состав платформы Microsoft .NET.
Обеспечивает доступ к функциональным возможностям системы и предназначена служить основой при разработке .NET-приложений, компонент, элементов управления.

Слайд 49

.NET FCL могут использовать ВСЕ .NET-приложения, независимо от назначения архитектуры используемого при

.NET FCL могут использовать ВСЕ .NET-приложения, независимо от назначения архитектуры используемого при
разработке ЯП, в частности:
встроенные (элементарные) типы, представленные в виде классов (на платформе .NET все построено на структурах или классах);
классы для разработки графического пользовательского интерфейса (Windows Forms);
классы для разработки web-приложений и web-служб на основе технологии ASP.NET (Web Forms);
классы для разработки XML и Internet-протоколов (FTP, HTTP, SMTP, SOAP);
классы для разработки приложений, работающих с базами данных (ADO .NET) и многое другое.

Слайд 50

MSIL (Microsoft Intermediate Language) – промежуточный язык платформы Microsoft .NET. Исходные тексты

MSIL (Microsoft Intermediate Language) – промежуточный язык платформы Microsoft .NET. Исходные тексты
программ для .NET-приложений пишутся на ЯП, соответствующих спецификации CLS.
Для них может быть построен преобразователь в MSIL. Программы на этих языках могут транслироваться в промежуточный код на MSIL. Благодаря соответствию CLS, в результате трансляции программного кода на разных языках, получается совместимый IL-код.
Фактически MSIL является ассемблером виртуального процессора.

Слайд 51

МЕТАДАННЫЕ – при преобразовании программного кода в MSIL формируется блок МЕТАДАННЫХ, содержит

МЕТАДАННЫЕ – при преобразовании программного кода в MSIL формируется блок МЕТАДАННЫХ, содержит
информацию о данных, используемых в программе. Фактически это наборы таблиц, включающих информацию о типах данных, определяемых в модуле. Ранее такая информация сохранялась отдельно.
Метаданные используются для:
сохранения информации о типах. При компиляции не требуются заголовочные и библиотечные файлы. Всю необходимую информацию компилятор читает непосредственно из управляемых модулей;
верификации кода в процессе выполнения модуля;
управления динамической памятью (освобождение памяти) в процессе выполнения модуля;
обеспечения динамической подсказки (IntelliSence) при разработке программы стандартными инструментальными средствами (Microsoft Visual Studio .NET) на основе метаданных.

Слайд 52

Языки, для которых реализован перевод на MSIL: Visual Basic, Visual C++, Visual

Языки, для которых реализован перевод на MSIL: Visual Basic, Visual C++, Visual
C# 2.0, и другие.
Исполняемый модуль – независимо от компилятора (и входного языка) результатом трансляции .NET-приложения является управляемый исполняемый (управляемый) модуль. Это стандартный переносимый исполняемый (PE – Portable Executable) файл Windows.
Управляемый модуль содержит управляемый код.

Слайд 53

Управляемый код – это код, выполняемый в среде CLR.
Строится на основе объявляемых

Управляемый код – это код, выполняемый в среде CLR. Строится на основе
в исходном модуле структур и классов, содержащих объявления методов. Ему должен соответствовать определенный уровень информации (метаданных) для среды выполнения.
Код C#, Visual Basic, и JScript - управляемый по умолчанию.
Код Visual C++ не является управляемым по умолчанию, но компилятор может создавать управляемый код.
Особенность управляемого кода - наличие механизмов, позволяющих работать с управляемыми данными.
Управляемые данные – объекты, в ходе выполнения кода модуля размещаются в управляемой памяти (куче), уничтожаются сборщиком мусора CLR.
Данные C#, Visual Basic и JScript .NET - управляемые по умолчанию.
Данные C# также могут быть помечены как неуправляемые.

Слайд 54

Сборка (Assembly) – базовый строительный блок приложения в .NET Framework.
Управляемые модули

Сборка (Assembly) – базовый строительный блок приложения в .NET Framework. Управляемые модули
объединяются в сборки.
Сборка - логическая группировка одного или нескольких управляемых модулей или файлов ресурсов.
Управляемые модули в составе сборок исполняются в Среде Времени Выполнения (CLR).
Сборка может быть исполняемым приложением (файл .exe) или библиотечным модулем ( файл .dll).
Ничего общего с обычными (старого образца!) исполняемыми приложениями и библиотечными модулями сборка не имеет.

Слайд 55

Декларация сборки (Manifest) – составная часть сборки. Это набор таблиц метаданных, который:
идентифицирует

Декларация сборки (Manifest) – составная часть сборки. Это набор таблиц метаданных, который:
сборку в виде текстового имени, ее версию, культуру и цифровую сигнатуру;
определяет входящие в состав файлы (по имени и хэшу);
указывает типы и ресурсы, существующие в сборке;
перечисляет зависимости от других сборок;
указывает набор прав, необходимых сборке для корректной работы.
Эта информация используется в период выполнения для поддержки корректной работы приложения.

Слайд 56

Процессор НЕ МОЖЕТ выполнять IL-код.
Перевод IL-кода осуществляется JIT-компилятором (Just In Time

Процессор НЕ МОЖЕТ выполнять IL-код. Перевод IL-кода осуществляется JIT-компилятором (Just In Time
– в нужный момент), он активизируется CLR по мере необходимости и выполняется процессором.
Результаты деятельности JIT-компилятора сохраняются в оперативной памяти.
В среде CLR допускается совместная работа и взаимодействие компонентов ПО, реализованных на различных ЯП.

Слайд 57

CLR решает многих проблем, которые традиционно находились в зоне внимания разработчиков приложений.

CLR решает многих проблем, которые традиционно находились в зоне внимания разработчиков приложений.

Функции, выполняемые CLR:
Проверка и динамическая (JIT) компиляция MSIL-кода в команды процессора.
Управление памятью, процессами и потоками.
Организация взаимодействия процессов.
Решение проблем безопасности (в рамках существующей в системе политики безопасности).

Слайд 58

Структура среды выполнения CLR (основные функциональные элементы среды)

Структура среды выполнения CLR (основные функциональные элементы среды)

Слайд 59

Схема выполнения .NET-приложения в среде CLR

Схема выполнения .NET-приложения в среде CLR

Слайд 60

Пространство имен – это способ организации системы типов в единую группу.
В

Пространство имен – это способ организации системы типов в единую группу. В
рамках .NET существует единая (общеязыковая) библиотека базовых классов. Концепция пространства имен обеспечивает эффективную организацию и навигацию по этой библиотеке.
Вне зависимости от ЯП, доступ к классам обеспечивается за счет их группировки в рамках общих пространств имен.

Слайд 61

Сборка мусора – механизм, позволяющий CLR определить, когда объект становится недоступен в

Сборка мусора – механизм, позволяющий CLR определить, когда объект становится недоступен в
управляемой памяти программы.
При сборке мусора управляемая память освобождается.
Для разработчика приложения наличие механизма сборки мусора означает, что он больше не должен заботиться об освобождении памяти.
Это может потребовать изменения в стиле программирования, особое внимание следует уделять процедуре освобождения системных ресурсов.
Необходимо реализовать методы, освобождающие системные ресурсы, находящиеся под управлением приложения.

Слайд 62

Веб-формы, ASP.NET AJAX

Множество
языков

Веб-службы, WCF

Доступ к данным, LINQ

Обработка ошибок

Windows Формы, WPF

Проектиро-вание

Внедрение

Разработка

Отладка

Среда разработки Visual

Веб-формы, ASP.NET AJAX Множество языков Веб-службы, WCF Доступ к данным, LINQ Обработка
Studio 2008

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

Слайд 63

Что такое Microsoft .NET?

Среды разработки

Клиенты

Пользователи

Веб-приложения ASP.NET

Веб-службы XML

База данных

Microsoft.NET Framework – это независимая

Что такое Microsoft .NET? Среды разработки Клиенты Пользователи Веб-приложения ASP.NET Веб-службы XML
от платформы и от устройства система, разработанная для работы по Интернету

Слайд 64

Компоненты .NET Framework

Операционная система

Общеязыковая среда выполнения

Библиотека классов .NET

Языки программирования

Технологии
.NET 3.0

Технологии
.NET 2.0

Компоненты .NET Framework Операционная система Общеязыковая среда выполнения Библиотека классов .NET Языки

Технологии
.NET 3.5

Слайд 65

Преимущества .NET Framework

Основан на Веб-стандартах и опыте разработок
Классы .NET Framework общедоступны
Код организован

Преимущества .NET Framework Основан на Веб-стандартах и опыте разработок Классы .NET Framework
по иерархическим пространствам имен и классам
Масштабируемость и независимость от языков

Windows API

ASP

.NET Framework

1980

1990

2000

Visual Basic

MFC/ATL

Слайд 66

Разработка приложений в среде Microsoft Visual Studio

Почему Visual Studio?

Единая интегрированная среда разработки

Разработка приложений в среде Microsoft Visual Studio Почему Visual Studio? Единая интегрированная
для множество языков и множества типов шаблонов проектов
Множество языков в проекте
Множество типов проектов в пределах решений
Поддержка приложений, функционирующих под множество версий .NET Framework
Интегрированный обозреватель
Поддержка отладки
Настраиваемый интерфейс
WPF, WCF, проектирование рабочего процесса и поддержка проекта
ASP.NET AJAX и LINQ

Слайд 67

Внедрение

Проектирование спецификации

Создание интерфейса и написание кода

Создания нового проекта

Тестирование и отладка

Сборка

Процесс разработки

Внедрение Проектирование спецификации Создание интерфейса и написание кода Создания нового проекта Тестирование

Слайд 68

Шаблоны проектов веб-приложений ASP.NET
Обеспечивают жесткий контроль над проектом
Шаблоны проектов веб-сайтов ASP.NET
Проще в

Шаблоны проектов веб-приложений ASP.NET Обеспечивают жесткий контроль над проектом Шаблоны проектов веб-сайтов
использовании
Предоставляет больше возможности и дополнительную гибкость

Типы веб-приложений и файловая структура

Слайд 69

Файлы веб-приложений

Файлы веб-приложений
Веб-формы ASP.NET (.aspx)
Веб-службы ASP.NET (.asmx)
Классы и

Файлы веб-приложений Файлы веб-приложений Веб-формы ASP.NET (.aspx) Веб-службы ASP.NET (.asmx) Классы и
страницы с выделенным кодом (.vb или .cs)
Global application classes (.asax)
Файл Web.config
Другие файлы
Файлы не основанные на языках программирования

Слайд 70

Common Language Runtime

- среда выполнения программ (CLR) реализует управление памятью, типами данных,

Common Language Runtime - среда выполнения программ (CLR) реализует управление памятью, типами
межъязыковым взаимодействием, развертыванием приложений
Единое выполнение для всех.NET ориентированных языков
Управляет потоками и памятью
Сборщик мусора
Обеспечивает безопасность кода
Устраняет проблемы управления версиями DLL
Может выполняться одновременно несколько версий DLL
Приложения могут указать версию используемой DLL

Слайд 71

Код Visual Basic

Код Visual C#


Компиляция и среда выполнение

Какой язык?

КомпиляторVisual C#

Компилятор

Код Visual Basic Код Visual C# Компиляция и среда выполнение Какой язык?
Visual Basic

MSIL

Машинный код

Среда
выполнения

JIT Компилятор

HTML

Default. aspx

Web странички исполняются в MSIL. Компиляция «на лету» (JIT).
Если код страницы изменился, то процесс компиляции начинается заново.

Слайд 72

Классы группируют код без пользовательского интерфейса
Компоненты – скомпилированные классы
Компоненты составлены в виде

Классы группируют код без пользовательского интерфейса Компоненты – скомпилированные классы Компоненты составлены
файлов DLL
Компоненты используются для совместного использования кода между приложениями

Веб приложение

Веб приложение

Windows приложение

Компонент

Создание компонента с использованием Visual Studio

Слайд 73

Создание класса

Создать проект библиотеки классов в Visual Studio 2008
Visual Studio 2008

Создание класса Создать проект библиотеки классов в Visual Studio 2008 Visual Studio
создает пространство имен по умолчанию
Создайть методы класса

[Visual Basic]
Public Class Shipping
Function CalShipping (ByVal price As Single) As Single
...
Return (cost)
End Function
End Class

[Visual C#]
public class Shipping
{
public Single CalShipping (Single price)
{
...
return cost;
}
}