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