1_C#_введение

Download Report

Transcript 1_C#_введение

Литература
1. Троелсен Э. Язык программирования С# 2005 и
платформа .NET 2.0 - Изд. Вильямс, 2007.
2. Рихтер Дж. CLR via C#. Программирование на
платформе Microsoft .NET Framework 2.0 на языке C#. Изд. Microsoft Press. Русская редакция, 2007.
3. Нейгел К., Ивьен Б и др. С# 2005 для профессионалов. –
Изд. Диалектика, 2006.
Microsoft® .NET – платформа нового поколения
Цели разработки платформы:
• Создать единую объектно-ориентированную среду
программирования для локальных и распределенных приложений.
• Упростить развертывание (deployment) приложений и решить
проблемы с конфликтом версий.
• Создать среду для безопасного выполнения кода, в том числе
кода, созданного другими производителями программного продукта.
• Унифицировать процесс разработки различных типов
приложений, например, Windows-приложений и Web-сервисов.
• .NET Enterprise Servers
• .NET Framework
• Visual Studio .NET
.NET Framework
• Общеязыковая среда выполнения
Сommon Language Runtime (CLR)
• Базовая библиотека классов
.NET Framework Class Library ( другие
термины - Base Class Library (BCL) или
Framework Class Library (FCL))
Компиляция и выполнение кода
• Компиляция исходного
кода на языке C# в код
Microsoft intermediate
language (MSIL).
• В процессе выполнения
кода под управлением CLR
компиляция кода MSIL в
команды процессора (native
code).
• Just-in-time (JIT)
компиляторы.
Рисунок из MSDN
Development Tools and Languages \ Visual Studio \
Visual C# \ Getting Started with Visual C# \
Introduction to the C# Language and .NET Framework
Общеязыковая среда выполнения (CLR)
•
•
•
•
•
•
•
•
•
•
JIT компилятор
Сборщик мусора
Загрузчик классов
Взаимодействие с BCL
Обработка исключительных ситуаций
Взаимодействие с неуправляемым кодом (PInvoke,
COM)
Поддержка многопоточности
Проверка типов
Обеспечение безопасности
Поддержка отладки
Сборка (assembly)
• Сборка - исполняемое под управлением CLR
приложение или библиотека с типами и/или
ресурсами.
• Cборка – минимальная единица повторного
использования, управления версиями и
безопасностью.
• Может распространяться простым
копированием.
• Может состоять из одного или нескольких
файлов. По умолчанию компилятор создает
однофайловую сборку.
• Для создания многофайловых сборок
используется компоновщик AL.exe, который
запускается из командной строки.
Сборка (assembly) -2
• Сборка может использоваться (share) несколькими
приложениями одновременно. Для этого она должна
находиться в глобальном кэше сборок (Global Assembly
Cache – GAC). Сборки в GAC должны иметь строгое
имя (strong name).
• В процессе выполнения приложения в память
загружаются только необходимые сборки.
• Можно программно получить всю информацию о
сборке, используя механизм отражения (reflection).
• Можно явно загрузить сборку, например, для того,
чтобы получить информацию о сборке.
Структура исполняемого файла
• Декларация (manifest) содержит
• Список всех файлов сборки
• Версию сборки
• Региональные стандарты сборки
(culture)
• Издателя сборки
• Информацию о целостности сборки
Рисунок из MSDN
Development Tools and Languages \
Visual Studio \
.NET Framework Programming in
Visual Studio \
Overview of the .NET Framework\
Assemblies \ Assembly Contents
• Ссылки на внешние сборки
• Метаданные содержат описание
всех типов, определенных в
приложении.
Метаданные
 Метаданные – это бинарная информация, которая добавляется в PEфайл при компиляции исходного кода в MSIL.
 При выполнении кода CLR загружает метаданные в память.
 Метаданные содержат полную информацию о сборке.
• Описание сборки.
• Имя, версия, региональные стандарты (culture), ключ издателя
(public key).
• Типы, определенные в сборке.
• Другие сборки, на которые ссылается данная сборка.
• Права (security permissions), необходимые для выполнения сборки.
• Описание каждого типа, определенного в приложении.
• Имя, видимость, базовый класс, реализованные интерфейсы.
• Члены класса (методы, свойства, поля, события, вложенные типы).
• Атрибуты – дополнительная декларативная информация.
Метаданные -2
 Метаданные используются
• Сборщиком мусора
• При сериализации объекта
• VisualStudio для подсказок при написании
исходного кода
 Метаданные доступны через
• Методы классов, поддерживающих механизм
отражения (reflection)
• ILDASM
Библиотека классов
 Библиотека .NET Framework - множество готовых
типов (классов, интерфейсов и типов-значений), которые
используются при разработке приложений.
 Большинство библиотечных типов можно использовать
как базовые для определения пользовательских типов.
…
 Библиотечные типы находятся в нескольких сборках.
 Все типы находятся в пространствах имен, которые
образуют иерархическую структуру.
 В корневом пространстве имен System находятся
классы для встроенных типов (Int32, Double, Single и т.д.)