Bibliotecas estándar de C#, .NET Framework y Core, y proyectos relacionados
Las bibliotecas estándar son un conjunto de bibliotecas incluidas en la Infraestructura de lenguaje común (CLI) con el fin de encapsular muchas funciones comunes, como lectura y escritura de archivos, manipulación de documentos XML , manejo de excepciones , globalización de aplicaciones , comunicación en red, subprocesamiento y reflexión , lo que facilita el trabajo del programador. Su alcance es mucho mayor que el de las bibliotecas estándar de la mayoría de los demás lenguajes, incluido C++ , y es comparable en alcance y cobertura a las bibliotecas estándar de Java .
Las bibliotecas estándar son la biblioteca de clase base (BCL), la biblioteca de infraestructura de tiempo de ejecución (ambas parte del perfil del núcleo), la biblioteca de red, la biblioteca de reflexión, la biblioteca XML (que con las dos primeras bibliotecas enumeradas forman el perfil compacto), la biblioteca de matriz extendida, la biblioteca paralela, la biblioteca de punto flotante y la biblioteca Vararg.
La biblioteca de clases Framework (FCL) es la implementación original de las bibliotecas estándar, ya que .NET Framework, que la incluye, es la primera implementación de la CLI.
Perfiles
Las principales bibliotecas estándar están organizadas en dos perfiles estándar, el perfil de núcleo y el perfil compacto. [1] Las siguientes bibliotecas estándar no pertenecen a ningún perfil: la biblioteca de matrices extendidas, la biblioteca numérica extendida, la biblioteca paralela y la biblioteca Vararg. [2] [3] [4] [5]
Perfil del núcleo
El perfil del núcleo es un subconjunto del perfil compacto. El perfil del núcleo contiene la biblioteca de clases base (BCL) y la biblioteca de infraestructura de tiempo de ejecución. [6]
Perfil compacto
El perfil compacto contiene las bibliotecas del perfil del núcleo, así como la biblioteca de red, la biblioteca de reflexión y la biblioteca XML. [7]
Bibliotecas
Biblioteca de clases base
La biblioteca de clases base es una biblioteca de tiempo de ejecución sencilla para lenguajes de programación modernos. Sirve como estándar para la biblioteca de tiempo de ejecución del lenguaje C#, así como una de las bibliotecas estándar de la CLI. Proporciona tipos para representar los tipos de datos integrados de la CLI, acceso simple a archivos, atributos personalizados, atributos de seguridad, manipulación de cadenas, formato, flujos, colecciones, entre otras cosas. [8] Define tipos en los siguientes espacios de nombres:
Define los tipos genéricos de los tipos de contenedor en el espacio de nombres System.Collections.
Sistema.Diagnóstico
Define los tipos que brindan la capacidad de diagnosticar aplicaciones. Incluye registro de eventos , contadores de rendimiento, seguimiento e interacción con procesos del sistema.
Sistema.Globalización
Define tipos que definen información relacionada con la cultura, incluido el idioma, el país/región, los calendarios en uso, los patrones de formato para fechas, moneda y números, y el orden de clasificación de las cadenas.
Sistema.IO
Define el tipo que permite leer y escribir en diferentes flujos , como archivos u otros flujos de datos . También proporciona una conexión al sistema de archivos .
Sistema.Seguridad
Define los tipos que representan el sistema de seguridad y los permisos.
Sistema.Seguridad.Permisos
Define los tipos que controlan el acceso a las operaciones y los recursos según la política.
Biblioteca de infraestructura de tiempo de ejecución
La biblioteca de infraestructura de tiempo de ejecución proporciona los servicios que necesita un compilador para apuntar a la CLI y las instalaciones necesarias para cargar dinámicamente tipos desde una secuencia en un formato de archivo especificado. [9] Define tipos en los siguientes espacios de nombres:
Define tipos que proporcionan una vista administrada de los tipos, métodos y campos cargados, y que pueden crear e invocar tipos de forma dinámica. Estos tipos son relevantes para el tiempo de ejecución del programa .
Sistema.Tiempo de ejecución.CompilerServices
Define los tipos que proporcionan funcionalidad a los escritores de compiladores que utilizan código administrado para especificar atributos en metadatos que afectan el comportamiento en tiempo de ejecución del Sistema de ejecución virtual .
La biblioteca de red proporciona servicios de red simples que incluyen acceso directo a puertos de red y soporte HTTP. [10] Define tipos en los siguientes espacios de nombres:
Sistema
Define tipos que proporcionan una representación de objeto de un identificador de recurso uniforme (URI) y fácil acceso a las partes del URI.
Sistema.Colecciones.Especializadas
Define colecciones especializadas y fuertemente tipadas; por ejemplo, un diccionario de lista enlazada, un vector de bits y colecciones que contienen solo cadenas.
Sistema.Net
Define tipos que proporcionan una interfaz de programación simple para varios protocolos de red .
Sistema.Net.Sockets
Define el tipo que proporciona una implementación administrada de la interfaz de Windows Sockets (Winsock) para desarrolladores que necesitan controlar estrictamente el acceso a la red.
Biblioteca de Reflexiones
La biblioteca Reflection proporciona la capacidad de examinar la estructura de los tipos, crear instancias de tipos e invocar métodos en tipos, todo ello basándose en una descripción del tipo. [11] Define tipos en los siguientes espacios de nombres:
Sistema
Define el tipo void , un tipo de valor de retorno para un método que no devuelve un valor.
Sistema.Globalización
Define el tipo que proporciona información sobre una cultura específica (denominada configuración regional para el desarrollo de código no administrado). La información incluye los nombres de la cultura, el sistema de escritura, el calendario utilizado y el formato de las fechas y las cadenas de ordenación.
Sistema.Reflexión
Define tipos que proporcionan una vista administrada de tipos, métodos y campos cargados, y que pueden crear e invocar tipos dinámicamente.
Sistema.Seguridad.Permisos
Define los tipos que controlan el acceso a las operaciones y los recursos según la política. Estos tipos son relevantes para la reflexión .
Biblioteca XML
La biblioteca XML proporciona un analizador simple de tipo "pull" para XML. Está diseñado para dispositivos con recursos limitados, pero proporciona un modelo de usuario simple. [12] Define tipos en el siguiente espacio de nombres.
Sistema.Xml
Define tipos para procesar XML .
Biblioteca de matrices extendidas
La biblioteca de matrices extendidas proporciona compatibilidad con matrices no vectoriales, es decir, matrices que tienen más de una dimensión o matrices que tienen límites inferiores distintos de cero. [2] La biblioteca de matrices extendidas no agrega ningún tipo adicional, pero sí extiende el mecanismo de manejo de matrices. [13]
Biblioteca de números extendidos
La biblioteca Extended Numerics ofrece compatibilidad con tipos de datos de punto flotante (System.Single, System.Double) y de precisión extendida (System.Decimal). Al igual que la biblioteca de clases base, el estándar C# hace referencia directa a esta biblioteca. [3]
Biblioteca paralela
La biblioteca Parallel proporciona un paralelismo sencillo para programadores no expertos, de modo que se puedan aprovechar las CPU multiproceso. [4]
Biblioteca Vararg
La biblioteca Vararg proporciona soporte para trabajar con listas de argumentos de longitud variable. [5]
^ King, Jason; Easton, Mark (2004). "Capítulo 4: Análisis de .NET Framework". En Gilmore, Jason (ed.). Desarrollo multiplataforma de .NET: uso de Mono, Portable.NET y Microsoft .NET . Apress . pág. 110. ISBN.1-59059-330-8. Número de serie LCCN 2004018339.
Enlaces externos
Ecma International, Norma ECMA-335, Infraestructura de lenguaje común (CLI), 6.ª edición (junio de 2012)
Ecma International, Informe técnico TR/84, Infraestructura de lenguaje común (CLI): información derivada del archivo XML de la partición IV, 6.ª edición (junio de 2012)