stringtranslate.com

Стандартные библиотеки (CLI)

Стандартные библиотеки — это набор библиотек, включенных в Common Language Infrastructure (CLI) для инкапсуляции многих общих функций, таких как чтение и запись файлов, манипулирование XML- документами, обработка исключений , глобализация приложений , сетевое взаимодействие, потоки и отражение , что упрощает работу программиста. Он намного больше по объему, чем стандартные библиотеки для большинства других языков, включая C++ , и сопоставим по объему и охвату со стандартными библиотеками Java .

Стандартные библиотеки — это библиотека базовых классов (BCL), библиотека инфраструктуры времени выполнения (обе являются частью профиля ядра), сетевая библиотека, библиотека отражения, библиотека XML (которая вместе с первыми двумя перечисленными библиотеками образует компактный профиль), библиотека расширенных массивов, параллельная библиотека, библиотека с плавающей точкой и библиотека Vararg.

Библиотека классов Framework (FCL) является первоначальной реализацией стандартных библиотек, поскольку .NET Framework, включающая ее, является первой реализацией CLI.

Профили

Основные стандартные библиотеки организованы в два стандартных профиля: профиль ядра и компактный профиль. [1] Следующие стандартные библиотеки не относятся ни к одному профилю: библиотека расширенных массивов, библиотека расширенных числовых данных, параллельная библиотека и библиотека Vararg. [2] [3] [4] [5]

Профиль ядра

Профиль ядра является подмножеством компактного профиля. Профиль ядра содержит библиотеку базовых классов (BCL) и библиотеку инфраструктуры времени выполнения. [6]

Компактный профиль

Компактный профиль содержит библиотеки из профиля ядра, а также сетевую библиотеку, библиотеку отражения и библиотеку XML. [7]

Библиотеки

Библиотека базовых классов

Библиотека базовых классов — это простая библиотека времени выполнения для современных языков программирования. Она служит стандартом для библиотеки времени выполнения для языка C#, а также одной из стандартных библиотек CLI. Она предоставляет типы для представления встроенных типов данных CLI, простого доступа к файлам, пользовательских атрибутов, атрибутов безопасности, манипуляции строками, форматирования, потоков, коллекций и т. д. [8] Она определяет типы в следующих пространствах имен:

Система
Определяет класс Object, из которого выводятся все объекты ссылочного типа (включая объекты типа значения), и класс ValueType, из которого выводятся все объекты типа значения . Он также определяет базовые типы данных, такие как целые числа , числа с плавающей точкой , символы , строки , логические значения , перечисления и т. д. Предоставляется поддержка среды и платформы, а также интерфейс командной строки вместе с базовыми классами для исключений и атрибутов . Он определяет массивы и делегаты , математические функции и многие другие типы.
Система.Коллекции
Определяет множество распространенных типов контейнеров , используемых в программировании, таких как словари , хеш-таблицы , списки , очереди и стеки .
Система.Коллекции.Общие
Определяет общие типы типов контейнеров в пространстве имен System.Collections.
Системная.Диагностика
Определяет типы, которые предоставляют возможность диагностики приложений. Включает регистрацию событий , счетчики производительности, трассировку и взаимодействие с системными процессами.
Система.Глобализация
Определяет типы, определяющие информацию, связанную с культурой, включая язык, страну/регион, используемые календари, шаблоны форматирования для дат, валюту и числа, а также порядок сортировки для строк.
Система.IO
Определяет тип, который позволяет читать и записывать в различные потоки , такие как файлы или другие потоки данных . Также обеспечивает подключение к файловой системе .
Система.Безопасность
Определяет типы, представляющие систему безопасности и разрешения.
Системные.Безопасность.Разрешения
Определяет типы, которые контролируют доступ к операциям и ресурсам на основе политики.
Системный.Текст
Определяет типы, поддерживающие различные кодировки символов , регулярные выражения и более эффективный механизм манипулирования строками.
Система.Потоки
Определяет типы, обеспечивающие многопоточное программирование .
Диаграмма пакета UML иерархии потоков в .NET

Библиотека инфраструктуры времени выполнения

Библиотека инфраструктуры времени выполнения предоставляет услуги, необходимые компилятору для работы с CLI, а также средства, необходимые для динамической загрузки типов из потока в указанном формате файла. [9] Она определяет типы в следующих пространствах имен:

Система
Определяет типы для домена приложения , указателей , дескрипторов и многого другого.
Система.Отражение
Определяет типы, которые предоставляют управляемое представление загруженных типов, методов и полей, и которые могут динамически создавать и вызывать типы. Эти типы имеют отношение к среде выполнения программы .
System.Runtime.CompilerServices
Определяет типы, которые предоставляют функциональные возможности разработчикам компиляторов, использующим управляемый код для указания атрибутов в метаданных , которые влияют на поведение виртуальной системы выполнения во время выполнения .
System.Runtime.InteropServices
Определяет типы, поддерживающие службы вызова платформы (P/Invoke).

Сетевая библиотека

Сетевая библиотека предоставляет простые сетевые службы, включая прямой доступ к сетевым портам, а также поддержку HTTP. [10] Она определяет типы в следующих пространствах имен:

Система
Определяет типы, которые обеспечивают объектное представление унифицированного идентификатора ресурса (URI) и легкий доступ к частям URI.
Системные.Коллекции.Специализированные
Определяет специализированные и строго типизированные коллекции; например, словарь связанных списков, битовый вектор и коллекции, содержащие только строки.
Система.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]

Смотрите также

Ссылки

  1. ^ "IV.3 Стандартные профили". Стандарт ECMA-335 – Common Language Infrastructure (CLI) (Технический отчет) (6-е изд.). Ecma International . Июнь 2012. С. 437.
  2. ^ ab "IV.5.8 Расширенная библиотека массивов". Стандарт ECMA-335 – Common Language Infrastructure (CLI) (Технический отчет) (6-е изд.). Ecma International . Июнь 2012. С. 441.
  3. ^ ab "IV.5.7 Расширенная числовая библиотека". Стандарт ECMA-335 – Common Language Infrastructure (CLI) (Технический отчет) (6-е изд.). Ecma International . Июнь 2012. С. 441.
  4. ^ ab "IV.5.10 Параллельная библиотека". Стандарт ECMA-335 – Common Language Infrastructure (CLI) (Технический отчет) (6-е изд.). Ecma International . Июнь 2012. С. 441.
  5. ^ ab "IV.5.9 Библиотека Vararg". Стандарт ECMA-335 – Common Language Infrastructure (CLI) (Технический отчет) (6-е изд.). Ecma International . Июнь 2012 г. стр. 441.
  6. ^ "IV.3.1 Профиль ядра". Стандарт ECMA-335 – Common Language Infrastructure (CLI) (Технический отчет) (6-е изд.). Ecma International . Июнь 2012. С. 437.
  7. ^ "IV.3.2 Компактный профиль". Стандарт ECMA-335 – Common Language Infrastructure (CLI) (Технический отчет) (6-е изд.). Ecma International . Июнь 2012. С. 437.
  8. ^ "IV.5.3 Библиотека базовых классов (BCL)". Стандарт ECMA-335 – Common Language Infrastructure (CLI) (Технический отчет) (6-е изд.). Ecma International . Июнь 2012. С. 440.
  9. ^ "IV.5.2 Библиотека инфраструктуры среды выполнения". Стандарт ECMA-335 – Common Language Infrastructure (CLI) (Технический отчет) (6-е изд.). Ecma International . Июнь 2012. С. 440.
  10. ^ "IV.5.4 Сетевая библиотека". Стандарт ECMA-335 – Common Language Infrastructure (CLI) (Технический отчет) (6-е изд.). Ecma International . Июнь 2012. С. 440.
  11. ^ "IV.5.5 Библиотека отражения". Стандарт ECMA-335 – Common Language Infrastructure (CLI) (Технический отчет) (6-е изд.). Ecma International . Июнь 2012. С. 440.
  12. ^ "IV.5.6 XML library". Стандарт ECMA-335 – Common Language Infrastructure (CLI) (Технический отчет) (6-е изд.). Ecma International . Июнь 2012. С. 440.
  13. ^ Кинг, Джейсон; Истон, Марк (2004). "Глава 4: Анализ NET Framework". В Gilmore, Джейсон (ред.). Кросс-платформенная разработка .NET: использование Mono, Portable.NET и Microsoft .NET . Apress . стр. 110. ISBN 1-59059-330-8. LCCN  2004018339.

Внешние ссылки