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

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

Лекция 17

Базовые концепции и архитектура .NET

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

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

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

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

Email: vosafonov@gmail.com

WWW: http://www.vladimirsafonov.org

 

Литература по .NET

1.

Платт Д. Знакомство с Microsoft.NET. - MS Press, 2001

2.

Нейгел К. и др. C# 2008 и платформа .NET 3.5 для

3.

профессионалов. – Вильямс, 2008

Рихтер Д. CLR via C#. Программирование для платформы

 

Microsoft.NET Framework 2.0 на языке C#. – Русская

4.

редакция, 2006.

Просиз Дж. Программирование для Microsoft.NET. –Русская

5.

редакция, 2004.

Petzold Ch. Programming for Microsoft Windows in C# (Vol. 1-2).

6.

MS Press, 2002.

Short S. XML Web Services Development with Microsoft.NET -

7.

2003

Franklin K. VB.NET for developers. - 2002

8. Уоткинз Д., Хаммонд М., Эйбрамз Б. Программирование на

9.

платформе Microsoft.NET. Вильямс, 2003.

http://msdn.microsoft.com/net

10. http://msdn.microsoft.com/net/sscli

11. http://www.gotdotnet.ru

12. V.O. Safonov’s Microsoft.NET course (2004): http://www.facultyresourcecenter.com/curriculum/pfv.aspx?ID=5 911

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

.NET – реализация современных архитектур и моделей программ

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

.NET предоставляет надежную и безопасную для использования среду для реализации приложений любой сложности и любого видаВ данной части курса (лекции 17 – 22) рассмотрена

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

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

Немного истории

1960е – 1970 е гг. Джон Айлиф. “Принципы построения

базовой машины”;

Burroughs B 5000/6700/B7700 – впервые реализованы идея поддержки многоязыкового программирования и идея теговой архитектуры (динамической типизации)1979-1982. Многопроцессорные вычислительные

комплексы “Эльбрус-1” и “Эльбрус-2” с аппаратной поддержкой языков высокого уровня; многоязыковая система программирования на базе процедурных языков: Эль-76, Pascal, FORTRAN, COBOL, PL/1 и др. (всего реализовано более 20 языков)

Стековая система команд: A+B -> ВЕЛ А; ВЕЛ В; СЛ

Фактически данная система команд использовалась как

промежуточный язык (IL): выполнялась аппаратная JIT компиляция в трехадресную регистровую систему команд

Расширенный файл объектного кода = объектный код (в

постфиксной записи) + его расширение (унифицированные таблицы, представляющие структуру программы и определенные в ней сущности = метаданные)

Литература: Сафонов В.О. Языки и методы

программирования в системе Эльбрус.-М.: Наука, 1989, 400 с.

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

.NET первоначально разработана как набор

международных стандартов ECMA, а не как конкретная коммерческая технология

ECMA International (www.ecma-international.org)

международная некоммерческая ассоциация , включающая

представителей IBM, Microsoft, HP, Sun и др.

В 2000 г. выпущена первая версия ECMA-стандартов .NET (архитектура, CLI, CTS, CLS, библиотеки, C#)

На данный момент имеются три наиболее известных

реализации стандартов .NET – Microsoft.NET, SSCLI/Rotor, Mono

В 2006 г. выпущена новая версия стандартов ECMA .NET. Она включает спецификацию новых возможностей, например, параметризованных типов (generics). Рекомендуется использовать данную версию для ссылок и презентаций

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

Инструменты Microsoft .NET

Microsoft.NET Framework SDK – базовый

инструментарий, используемый в режиме командной

строки, бесплатно доступный через Web. Входит в

состав новых версий Windows 2003, Windows Vista. Текущая версия (весна 2008 г.) - .NET Framework 3.5

Microsoft Visual Studio .NET – мощная интегрированная

среда (IDE) для .NET; включает в себя реализации

языков C#.NET, VB.NET, C++.NET, JScript.NET и J#.NET.

Текущая версия – Visual Studio 2008 (Orcas)

Всего в данный момент для .NET реализовано более 30

языков, включая Oberon и Eiffel - объектно- ориентированные языки; ML – язык функционального программирования; Python и многие другие

Shared Source Common Language Infrastructure (SSCLI,

или Rotor) – некоммерческая академическая shared source - версия .NET, работающая в средах Windows 2000/XP/2003, UNIX FreeBSD и MacOS).

Rotor 2.0 – наиболее новая версия – выпущен в марте

2006 г.

Spec# - инструмент для формальной спецификации и

верификации программ на C#

FxCop - инструмент для статического анализа сборок

.NET на соответствие(C) СафоновтребованиямВ.О. 2012 безопасности и др.

Набор правил для анализа является расширяемым

Основные идеи и принципы .NET

Компилятор с любого языка (например, C# или VB)

транслирует исходный код приложения в общий для всех входных языков формат - CIL (Common

Intermediate Language; другое название - MSIL –

Microsoft Intermediate Language);

Кроме CIL-кода, компилятор также генерирует

метаданные – общую для всех языков информацию

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

методах, полях и др.), определенных и

использованных в данном приложении;

CIL + метаданные + манифест = сборка, состоящая

из одного или более PE (Portable Executable) файлов

Во время выполнения CIL-код динамически

компилируется (“на лету” - on-the-fly) в объектный

код конкретной целевой платформы (x86, x64, Mac,

IA-64 и др.) с помощью Just-in-Time (JIT) - компилятора

Все данные, передаваемые через Internet/Intranet,

а также все конфигурационные файлы

представлены в формате XML

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

Преимущества подхода .NET

.NET Portable Executable (PE) – файлы, генерируемые

компиляторами NET, и данные в XML-формате могут

быть переданы через Internet (например, по протоколу HTTP) и JIT-компилированы или интерпретированы на

клиентских компьютерах

Использование метаданных во время выполнения

обеспечивает исполнение управляемого кода (managed code execution), с динамическим контролем типов,

проверками безопаснности во время выполнения и т.д.

Программист может разработать свое приложение на

любом удобном ему языке, реализованном для .NET, и

включить в приложение любые модули, написанные на других языках, также реализованных для .NETПовышенная степень безопасности: ролевая безопасность (role-based security), безопасность доступа к коду (code access security), безопасность на основе информации о сборках (evidence-based security),

прогулка по стеку” (security stack walk)

XML Web-сервисы и ASP.NET – особенно важны для

современного программирования; только для их использования стоит изучить .NET

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

аббревиатуры .NET (1/2)

.NET – общая инфраструктура языков, соответствующая стандартам ISO/ECMA; например: Microsoft.NET (работающая в среде Windows 2000/XP/2003/Vista); SSCLI (Rotor) работающая для Windows 2000/XP/2003, UNIX FreeBSD, MacOS)

CLI (Common Language Infrastructure) – ECMA-стандарт на общую инфраструктуру языков .NET

CTS (Common Type System) – ECMA-стандарт на общую систему типов .NET

CLR (Common Language Runtime) – ECMA-стандарт на общее окружение времени выполнения .NET - библиотека, состоящая из нескольких тысяч классов

CIL – ECMA- стандарт на единый промежуточный язык .NET, основанный на постфиксной записи

NB: В документации по Microsoft Phoenix “CIL” означает промежуточный язык компилятора Visual C++ !

VES (Virtual Execution System) – виртуальная машина CLR, используемая для исполнения управляемого кода

COR (Common Object Runtime) – предшественник .NET. Данное сокращение до сих пор используется в именах системных файлов

.NET, например, msCORee.dll – главная DLL .NET

LINQ (Language – INtegrated Query) – запросы к базам данных (MS SQL Server) непосредственно из языков .NET (C#, VB.NET, C++.NET) – начиная с .NET 3.0, 2006 г.

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

Основные концепции и аббревиатуры .NET (2/2)

Метаданные (metadata) – единое (табличное)

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

сущностях, определеленных и используемых в .NET-

приложении. По структуре очень близки к реляционной СУБД

Манифест (manifest) – содержимое (“инвентарный список”)

сборки, в частности, включающей PE-файл,

представляющий данную сборку

PE (Portable Executable) – файл переносимого исполняемого кода, содержащий CIL-код, метаданные, ресурсы и манифест

Сборка (Assembly) – представление программы в форме PE- файла или набора PE-файлов, генерируемых

компилятором .NET

WPF (Windows Presentation Foundation) – API для

представления GUI в Windows на основе .NET

WCF (Windows Communication Foundation) – API для

сетевого программирования на основе .NET

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

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