Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Safonov / AMPN_course_18.pptx
Скачиваний:
101
Добавлен:
16.04.2015
Размер:
418.81 Кб
Скачать

Архитектуры и модели программ и знаний

Лекция 18

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

Сафонов Владимир Олегович

Профессор кафедры информатики Заведующий лабораторией Java-технологии

(http://polyhimnie.math.spbu.ru/jtl)

Санкт-Петербургский государственный университет

Email: vosafonov@gmail.com

WWW: http://www.vladimirsafonov.org

.NET Framework

Классы

 

 

 

System.Web

System.Windows.Forms

Services

UI

Form

Button

Description

HtmlControls

MessageBox

ListControl

Discovery

 

WebControls

 

 

Protocols

System.Drawing

 

Caching

Security

Drawing2D

Printing

Configuration

SessionState

Imaging

Text

System.Data

System.Xml

OLEDB

SQL

XSLT

Serialization

Design

SQLTypes

XPath

 

 

 

System

 

Collections

IO

Security

Runtime

Configuration

Net

ServiceProcess

InteropServices

Diagnostics

Reflection

Text

Remoting

Globalization

Resources

Threading

Serialization

 

(C) Сафонов В.О. 2012

 

Common Language Runtime. Цели:

Сервисы для разработчиков

Взаимодействие модулей на разных языках (при соблюдении CLS)

Улучшение производительности

Сервисы для развертывания приложений

Простые и надежные средства развертывания

Система версий – проблема конфликтов версий DLL в .NET

решена

Сервисы времени выполнения

Производительность (.NET быстрее Java)

Масштабируемость: .NET Compact Framework – платформа разработки ПО устройств с ограниченными ресурсами

Доступность

Надежность и безопасность

(C)Сафонов В.О. 2012

Common Language Runtime

Компиляция

Исходный код

C++, C#, VB или другой входной язык .NET

Компилятор

csc.exe или vbc.exe

Сборка

DLL или

EXE

(C) Сафонов В.О. 2012

Common Language Runtime Сборки (assemblies)

Сборка

Логическая единица развертывания

Содержит: манифест, метаданные, MSIL, ресурсы

Манифест

Метаданные описывают компоненты сборки (версию, типы, зависимости и др.)

Метаданные

Полное описание типов, определенных и используемых в сборке: свойств, методов, аргументов, результатов, атрибутов и др.

Пользовательские атрибуты (custom attributes) – очень важный механизм расширения

(C)Сафонов В.О. 2012

Common Language Runtime

Сборки

Microsoft Intermediate Language (MSIL, IL, CIL)

Исходные коды со всех языков компилируются в CIL (управляемый код)

CIL всегда компилируется в объектный код

целевой платформы перед исполнением

Ресурсы

Рисунки: .bmp, .jpg; видео/аудио-файлы: .wmv и др.

(C)Сафонов В.О. 2012

Common Language Runtime

Модель исполнения

Исходны й код

MSIL

VB

C#

C++

Compiler

Compiler

Compiler

Сборка

Сборка

Сборка

Ngen

Common Language Runtime JIT Compiler

Объектный Managed

Managed

Managed

Unmanaged

код

Code

Code

Code

Code

Сервисы CLR

 

 

 

целевой

 

 

 

 

платформы

Сервисы ОС

 

 

 

 

(C) Сафонов В.О. 2012

Common Language Runtime

Сервисы

Управление исполнением кода

JIT-компиляция MSIL в код целевой платформы

Загрузка и исполнение управляемого кодаСоздание метаданных и

управление имиВерификация корректности типов

Вставка и исполнение

проверок безопасности

Управление памятью и сборка мусора

Многоязыковая обработка исключений

Взаимодействие объектов

.NET Framework, COM-

объектов и Win32 DLL- библиотек

Автоматическое размещение объектов во время позднего связыванияСервисы для разработчика

(профилирование, отладка и

др.)

(C) Сафонов В.О. 2012

Common Language Runtime

Поддержка многоязыкового программирования

Общая система типов (CTS)

Унификация и обобщение концепции типа в различных языках программирования

Общая спецификация сзыков (CLS)

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

 

(более 40 правил)

Языки

 

Реализованные Microsoft: C++, Visual Basic,

 

C#, JScript

Реализованные другими компаниями: Cobol,

 

Eiffel, Smalltalk, Scheme, Zonnon, Haskell, Java,

 

Python, Perl и др.

(C) Сафонов В.О. 2012

Common Language Runtime

Приложения

Приложение состоит из одной или нескольких

сборок

Взаимосвязь сборки с другими сборками

Основана на метаданных и политике

Локальные сборки

Глобальный кэш сборок (GAC) – реализован в виде директории

На одном компьютере могут исполняться несколько версий одной и той же сборки

Это облегчает развертывание и модификацию приложений

Одно и то же приложение может даже использовать несколько версий одной и той же сборки

(C)Сафонов В.О. 2012

Соседние файлы в папке Safonov