Стандартные библиотеки — это библиотека базовых классов (BCL), библиотека инфраструктуры времени выполнения (обе являются частью профиля ядра), сетевая библиотека, библиотека отражения, библиотека XML (которая вместе с первыми двумя перечисленными библиотеками образует компактный профиль), библиотека расширенных массивов, параллельная библиотека, библиотека с плавающей точкой и библиотека Vararg.
Библиотека классов Framework (FCL) является первоначальной реализацией стандартных библиотек, поскольку .NET Framework, включающая ее, является первой реализацией CLI.
Профили
Основные стандартные библиотеки организованы в два стандартных профиля: профиль ядра и компактный профиль. [1] Следующие стандартные библиотеки не относятся ни к одному профилю: библиотека расширенных массивов, библиотека расширенных числовых данных, параллельная библиотека и библиотека Vararg. [2] [3] [4] [5]
Профиль ядра
Профиль ядра является подмножеством компактного профиля. Профиль ядра содержит библиотеку базовых классов (BCL) и библиотеку инфраструктуры времени выполнения. [6]
Компактный профиль
Компактный профиль содержит библиотеки из профиля ядра, а также сетевую библиотеку, библиотеку отражения и библиотеку XML. [7]
Библиотеки
Библиотека базовых классов
Библиотека базовых классов — это простая библиотека времени выполнения для современных языков программирования. Она служит стандартом для библиотеки времени выполнения для языка C#, а также одной из стандартных библиотек CLI. Она предоставляет типы для представления встроенных типов данных CLI, простого доступа к файлам, пользовательских атрибутов, атрибутов безопасности, манипуляции строками, форматирования, потоков, коллекций и т. д. [8] Она определяет типы в следующих пространствах имен:
Определяет общие типы типов контейнеров в пространстве имен System.Collections.
Системная.Диагностика
Определяет типы, которые предоставляют возможность диагностики приложений. Включает регистрацию событий , счетчики производительности, трассировку и взаимодействие с системными процессами.
Система.Глобализация
Определяет типы, определяющие информацию, связанную с культурой, включая язык, страну/регион, используемые календари, шаблоны форматирования для дат, валюту и числа, а также порядок сортировки для строк.
Система.IO
Определяет тип, который позволяет читать и записывать в различные потоки , такие как файлы или другие потоки данных . Также обеспечивает подключение к файловой системе .
Система.Безопасность
Определяет типы, представляющие систему безопасности и разрешения.
Системные.Безопасность.Разрешения
Определяет типы, которые контролируют доступ к операциям и ресурсам на основе политики.
Библиотека инфраструктуры времени выполнения предоставляет услуги, необходимые компилятору для работы с CLI, а также средства, необходимые для динамической загрузки типов из потока в указанном формате файла. [9] Она определяет типы в следующих пространствах имен:
Определяет типы, которые предоставляют управляемое представление загруженных типов, методов и полей, и которые могут динамически создавать и вызывать типы. Эти типы имеют отношение к среде выполнения программы .
Сетевая библиотека предоставляет простые сетевые службы, включая прямой доступ к сетевым портам, а также поддержку HTTP. [10] Она определяет типы в следующих пространствах имен:
Определяет специализированные и строго типизированные коллекции; например, словарь связанных списков, битовый вектор и коллекции, содержащие только строки.
Система.Net
Определяет типы, которые обеспечивают простой программный интерфейс для ряда сетевых протоколов .
System.Net.Sockets
Определяет тип, обеспечивающий управляемую реализацию интерфейса Windows Sockets (Winsock) для разработчиков, которым необходимо строго контролировать доступ к сети.
Библиотека размышлений
Библиотека Reflection предоставляет возможность исследовать структуру типов, создавать экземпляры типов и вызывать методы для типов, все на основе описания типа. [11] Она определяет типы в следующих пространствах имен:
Система
Определяет тип void — тип возвращаемого значения для метода, который не возвращает значение.
Система.Глобализация
Определяет тип, который предоставляет информацию о конкретной культуре (называемой локалью для разработки неуправляемого кода). Информация включает в себя названия культуры, системы письма, используемый календарь и форматирование дат и строк сортировки.
Система.Отражение
Определяет типы, которые обеспечивают управляемое представление загруженных типов, методов и полей и которые могут динамически создавать и вызывать типы.
Системные.Безопасность.Разрешения
Определяет типы, которые контролируют доступ к операциям и ресурсам на основе политики. Эти типы имеют отношение к отражению .
XML-библиотека
Библиотека XML предоставляет простой парсер "pull-style" для XML. Он разработан для устройств с ограниченными ресурсами, но при этом предоставляет простую модель пользователя. [12] Он определяет типы в следующем пространстве имен.
Система.Xml
Определяет типы для обработки XML .
Расширенная библиотека массивов
Библиотека расширенных массивов обеспечивает поддержку невекторных массивов. То есть массивов, имеющих более одного измерения, или массивов, имеющих ненулевые нижние границы. [2] Библиотека расширенных массивов не добавляет никаких дополнительных типов, но расширяет механизм обработки массивов. [13]
Расширенная числовая библиотека
Библиотека расширенных чисел обеспечивает поддержку типов данных с плавающей точкой (System.Single, System.Double) и расширенной точности (System.Decimal). Как и библиотека базовых классов, эта библиотека напрямую ссылается на стандарт C#. [3]
Параллельная библиотека
Параллельная библиотека обеспечивает простой параллелизм для неопытных программистов, что позволяет использовать многопоточные процессоры. [4]
Библиотека Варарг
Библиотека Vararg обеспечивает поддержку работы со списками аргументов переменной длины. [5]
^ Кинг, Джейсон; Истон, Марк (2004). "Глава 4: Анализ NET Framework". В Gilmore, Джейсон (ред.). Кросс-платформенная разработка .NET: использование Mono, Portable.NET и Microsoft .NET . Apress . стр. 110. ISBN1-59059-330-8. LCCN 2004018339.
Внешние ссылки
Ecma International, Стандарт ECMA-335, Общая языковая инфраструктура (CLI), 6-е издание (июнь 2012 г.)
Ecma International, Технический отчет TR/84, Инфраструктура общего языка (CLI) — Информация, полученная из XML-файла раздела IV, 6-е издание (июнь 2012 г.)