Стандартные библиотеки (CLI)
Стандартные библиотеки — это набор библиотек, включенных в Common Language Infrastructure (CLI) для инкапсуляции многих общих функций, таких как чтение и запись файлов, XML манипулирование документами , обработка исключений приложений , глобализация , сетевая связь, многопоточность и отражение . что облегчает работу программиста. По объему она намного больше, чем стандартные библиотеки для большинства других языков, включая C++ , и сравнима по объему и охвату со стандартными библиотеками Java .
Стандартные библиотеки — это библиотека базовых классов (BCL), библиотека инфраструктуры времени выполнения (обе являются частью профиля ядра), сетевая библиотека, библиотека отражений, библиотека XML (которая вместе с первыми двумя перечисленными библиотеками образует компактный профиль), библиотека расширенных массивов, Параллельная библиотека, библиотека с плавающей запятой и библиотека Vararg.
Библиотека классов Framework (FCL) является исходной реализацией стандартных библиотек, а .NET Framework, в которую она входит, является первой реализацией CLI.
Профили
[ редактировать ]Основные стандартные библиотеки организованы в два стандартных профиля: профиль ядра и компактный профиль. [1] Следующие стандартные библиотеки не принадлежат ни одному профилю: библиотека расширенных массивов, библиотека расширенных числовых значений, параллельная библиотека и библиотека переменных аргументов. [2] [3] [4] [5]
Профиль ядра
[ редактировать ]Профиль ядра является подмножеством компактного профиля. Профиль ядра содержит библиотеку базовых классов (BCL) и библиотеку инфраструктуры времени выполнения. [6]
Компактный профиль
[ редактировать ]Компактный профиль содержит эти библиотеки в профиле ядра, а также сетевую библиотеку, библиотеку отражений и библиотеку XML. [7]
Библиотеки
[ редактировать ]Библиотека базовых классов
[ редактировать ]Библиотека базовых классов — это простая библиотека времени выполнения для современных языков программирования. Он служит стандартом для библиотеки времени выполнения языка C#, а также одной из стандартных библиотек CLI. Он предоставляет типы для представления встроенных типов данных CLI, простого доступа к файлам, пользовательских атрибутов, атрибутов безопасности, манипуляций со строками, форматирования, потоков, коллекций и прочего. [8] Он определяет типы в следующих пространствах имен:
- Система
- Определяет класс Object, от которого наследуются все объекты ссылочного типа (включая объекты типа значения), и класс ValueType, от которого наследуются все объекты типа значения . Он также определяет базовые типы данных, такие как целые числа , числа с плавающей запятой , символы , строки , логические значения , перечисления и многое другое. Поддержка среды и платформы, а также интерфейс командной строки предоставляются вместе с базовыми классами для исключений и атрибутов . Он определяет массивы и делегаты , математические функции и многие другие типы.
- Система.Коллекции
- Определяет множество распространенных типов контейнеров , используемых в программировании, таких как словари , хеш-таблицы , списки , очереди и стеки .
- System.Collections.Generic
- Определяет универсальные типы типов контейнеров в пространстве имен System.Collections.
- Система.Диагностика
- Определяет типы, которые предоставляют возможность диагностики приложений. Он включает в себя регистрацию событий , счетчики производительности, трассировку и взаимодействие с системными процессами.
- Система.Глобализация
- Определяет типы, которые определяют информацию, связанную с региональными параметрами, включая язык, страну/регион, используемые календари, шаблоны форматирования дат, валюты и чисел, а также порядок сортировки строк.
- System.IO
- Определяет тип, позволяющий читать и записывать в различные потоки , такие как файлы или другие потоки данных . Также обеспечивает подключение к файловой системе .
- System.Security
- Определяет типы, представляющие систему безопасности и разрешения.
- System.Security.Permissions
- Определяет типы, которые контролируют доступ к операциям и ресурсам на основе политики.
- Система.Текст
- Определяет типы, поддерживающие различные кодировки символов , регулярные выражения и более эффективный механизм управления строками.
- Система.Поточность
- Определяет типы, обеспечивающие многопоточное программирование .
Библиотека инфраструктуры времени выполнения
[ редактировать ]Библиотека инфраструктуры выполнения предоставляет услуги, необходимые компилятору для работы с CLI, а также средства, необходимые для динамической загрузки типов из потока в указанном формате файла. [9] Он определяет типы в следующих пространствах имен:
- Система
- Определяет типы для домена приложения , указатели , дескрипторы и многое другое.
- Система.Отражение
- Определяет типы, которые обеспечивают управляемое представление загруженных типов, методов и полей и могут динамически создавать и вызывать типы. Эти типы относятся к среде выполнения программы .
- System.Runtime.CompilerServices
- Определяет типы, которые предоставляют функциональные возможности авторам компиляторов, которые используют управляемый код для указания атрибутов в метаданных во время , влияющих на поведение виртуальной системы выполнения выполнения .
- System.Runtime.InteropServices
- Определяет типы, поддерживающие службы вызова платформы (P/Invoke).
Сетевая библиотека
[ редактировать ]Сетевая библиотека предоставляет простые сетевые услуги, включая прямой доступ к сетевым портам, а также поддержку HTTP. [10] Он определяет типы в следующих пространствах имен:
- Система
- Определяет типы, которые обеспечивают объектное представление универсального идентификатора ресурса (URI) и легкий доступ к частям URI.
- System.Collections.Specialized
- Определяет специализированные и строго типизированные коллекции; например, словарь связанного списка, битовый вектор и коллекции, содержащие только строки.
- System.Net
- Определяет типы, обеспечивающие простой программный интерфейс для ряда сетевых протоколов .
- System.Net.Sockets
- Определяет тип, обеспечивающий управляемую реализацию интерфейса Windows Sockets (Winsock) для разработчиков, которым необходимо жестко контролировать доступ к сети.
Библиотека отражений
[ редактировать ]Библиотека отражений предоставляет возможность исследовать структуру типов, создавать экземпляры типов и вызывать методы для типов, и все это на основе описания типа. [11] Он определяет типы в следующих пространствах имен:
- Система
- Определяет тип void — тип возвращаемого значения для метода, который не возвращает значение.
- Система.Глобализация
- Определяет тип, предоставляющий информацию о конкретной культуре (называемой языковым стандартом для разработки неуправляемого кода). Информация включает в себя названия культур, систему письма, используемый календарь, а также форматирование дат и строк сортировки.
- Система.Отражение
- Определяет типы, которые обеспечивают управляемое представление загруженных типов, методов и полей и могут динамически создавать и вызывать типы.
- System.Security.Permissions
- Определяет типы, которые контролируют доступ к операциям и ресурсам на основе политики. Эти типы имеют отношение к отражению .
XML-библиотека
[ редактировать ]Библиотека XML предоставляет простой синтаксический анализатор XML в стиле извлечения. Он предназначен для устройств с ограниченными ресурсами, но обеспечивает простую пользовательскую модель. [12] Он определяет типы в следующем пространстве имен.
- Система.Xml
- Определяет типы для обработки XML .
Расширенная библиотека массивов
[ редактировать ]Расширенная библиотека массивов обеспечивает поддержку невекторных массивов. То есть массивы, имеющие более одного измерения илимассивы, имеющие ненулевые нижние границы. [2] Расширенная библиотека массивов не добавляет никаких дополнительных типов, но расширяет механизм обработки массивов. [13]
Расширенная библиотека числовых значений
[ редактировать ]Расширенная библиотека числовых значений обеспечивает поддержку типов данных с плавающей запятой (System.Single, System.Double) и повышенной точности (System.Decimal). Как и библиотека базовых классов, на эту библиотеку напрямую ссылается стандарт C#. [3]
Параллельная библиотека
[ редактировать ]Параллельная библиотека обеспечивает простой параллелизм для неопытных программистов, что позволяет использовать многопоточные процессоры. [4]
Библиотека Варарга
[ редактировать ]Библиотека Vararg обеспечивает поддержку работы со списками аргументов переменной длины. [5]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «IV.3 Стандартные профили» . Стандарт ECMA-335 – Общеязыковая инфраструктура (CLI) (Технический отчет) (6-е изд.). Экма Интернешнл . Июнь 2012. с. 437.
- ^ Перейти обратно: а б «IV.5.8 Расширенная библиотека массивов» . Стандарт ECMA-335 – Общеязыковая инфраструктура (CLI) (Технический отчет) (6-е изд.). Экма Интернешнл . Июнь 2012. с. 441.
- ^ Перейти обратно: а б «IV.5.7 Расширенная библиотека числовых значений» . Стандарт ECMA-335 – Общеязыковая инфраструктура (CLI) (Технический отчет) (6-е изд.). Экма Интернешнл . Июнь 2012. с. 441.
- ^ Перейти обратно: а б «IV.5.10 Параллельная библиотека» . Стандарт ECMA-335 – Общеязыковая инфраструктура (CLI) (Технический отчет) (6-е изд.). Экма Интернешнл . Июнь 2012. с. 441.
- ^ Перейти обратно: а б «IV.5.9 Библиотека Варарга» . Стандарт ECMA-335 – Общеязыковая инфраструктура (CLI) (Технический отчет) (6-е изд.). Экма Интернешнл . Июнь 2012. с. 441.
- ^ «IV.3.1 Профиль ядра» . Стандарт ECMA-335 – Общеязыковая инфраструктура (CLI) (Технический отчет) (6-е изд.). Экма Интернешнл . Июнь 2012. с. 437.
- ^ «IV.3.2 Компактный профиль» . Стандарт ECMA-335 – Общеязыковая инфраструктура (CLI) (Технический отчет) (6-е изд.). Экма Интернешнл . Июнь 2012. с. 437.
- ^ «IV.5.3 Библиотека базовых классов (BCL)» . Стандарт ECMA-335 – Общеязыковая инфраструктура (CLI) (Технический отчет) (6-е изд.). Экма Интернешнл . Июнь 2012. с. 440.
- ^ «IV.5.2 Библиотека инфраструктуры времени выполнения» . Стандарт ECMA-335 – Общеязыковая инфраструктура (CLI) (Технический отчет) (6-е изд.). Экма Интернешнл . Июнь 2012. с. 440.
- ^ «IV.5.4 Сетевая библиотека» . Стандарт ECMA-335 – Общеязыковая инфраструктура (CLI) (Технический отчет) (6-е изд.). Экма Интернешнл . Июнь 2012. с. 440.
- ^ «IV.5.5 Библиотека отражений» . Стандарт ECMA-335 – Общеязыковая инфраструктура (CLI) (Технический отчет) (6-е изд.). Экма Интернешнл . Июнь 2012. с. 440.
- ^ «IV.5.6 XML-библиотека» . Стандарт ECMA-335 – Общеязыковая инфраструктура (CLI) (Технический отчет) (6-е изд.). Экма Интернешнл . Июнь 2012. с. 440.
- ^ Кинг, Джейсон; Истон, Марк (2004). «Глава 4: Анализ NET Framework». В Гилморе, Джейсоне (ред.). Кроссплатформенная разработка .NET: использование Mono, Portable.NET и Microsoft .NET . Апресс . п. 110. ИСБН 1-59059-330-8 . LCCN 2004018339 .