Biblioteca de Clases Base (BCL)

Anuncio
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Cod. 1728.61
PLATAFORMA .NET Y
SERVICIOS WEB
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
[email protected]
Dpto. de Informática
OOTLab - Laboratorio de Tecnologías de Orientación a Objetos
http://www.ootlab.uniovi.es
Recordatorio: estructura del .NET
Framework (I)
• Desarrollo de aplicaciones Requisitos
comunes de infraestructura
• Necesidades de infraestructura se
agravan en aplicaciones distribuidas
• .NET Framework: plataforma para ofrecer
una solución común y unificada a esos
requisitos
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
Recordatorio: estructura del .NET
Framework (II)
• El .NET Framework consta de:
– Un entorno de ejecución: el CLR (Common
Language Runtime)
– Una biblioteca de clases base: la BCL (Base
Class Library)
– Una plataforma de aplicaciones web (ASP.NET,
servicios web)
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
Recordatorio: estructura del .NET
Framework (III)
VB
C++
C#
J#
…
CLS (Common Language Specification)
Windows
Forms
ASP .NET
Servicios web, formularios
BCL (Base Class Library)
CLR (Common Language Runtime)
Sistema operativo
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
Papel de la BCL (I)
• ¿Para qué una biblioteca?
– Ofrecer una base sobre la que construir
aplicaciones
– Esta base es totalmente OO (a diferencia de
API tradicionales)
– Dar soporte al CTS (Common Type System)
• La BCL funciona en estrecha colaboración
con el CLR
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
Papel de la BCL (II)
• Entre otros fines, permite:
– Representar los tipos y excepciones básicos
– Encapsular estructuras de datos
– Realizar E/S
– Acceder a datos
– IGU, XML, diagnóstico y monitorización,
atributos y reflectividad, COM/COM+,
compilación...
• Incluye clases, clases abstractas e
interfaces
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
Características generales de la BCL
• Enorme colección de clases gestionadas
(managed)
• Accesibles por cualquier lenguaje que
soporte el CTS y el CLS
• No es necesario usar el API de Windows o
similares
• Se pretende que sean fáciles de usar
• Referencia a null: si se invoca a un método,
se genera System.NullReferenceException
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
Características generales de la BCL:
Sincronización y multitarea
• Todos los miembros estáticos y públicos de
BCL (métodos, propiedades y campos)
soportan la concurrencia
• Se pueden invocar sin que aparezcan
condiciones de carrera, interbloqueos, etc.
• Los demás elementos de la BCL pueden o
no soportar multitarea (ver documentación
en cada caso)
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
Acceso a las clases de la BCL
• Dentro de .NET es frecuente derivar de
ellas
• Accesibles por cualquier lenguaje que se
adhiera al CTS y al CLS
• Accesibles desde código nativo (a través de
COM)
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
Namespaces (espacios de nombres)
• Recordatorio
– Una forma de organizar las clases (evitar que
se agoten los nombres, entre otras cosas)
– Al definir tipos, se puede indicar en qué espacio
de nombres están
• Todas las clases de BCL están organizadas
en espacios de nombres
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
El espacio de nombres System (I)
System.Web
Services
Description
Discovery
Protocols
UI
HtmlControls
WebControls
Caching
Configuration
Security
SessionState
System.Windows.Forms
Design
ComponentModel
System.Drawing
Drawing2D
Imaging
System.Data
OleDb
Common
Printing
Text
System.Xml
SqlClient
SQLTypes
XSLT
XPath
Serialization
System
Collections
Configuration
Diagnostics
Globalization
IO
Net
Reflection
Resources
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Security
ServiceProcess
Text
Threading
Runtime
InteropServices
Remoting
Serialization
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
El espacio de nombres System (II)
• Es la raíz de los tipos básicos
– Object
– Byte, Char, Int32, String...
• Ejemplo: Manejando un byte como un
objeto
System.Byte b = new System.Byte();
Console.WriteLine(b.ToString());
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
El espacio de nombres System (III)
• Además, contiene muchos espacios de
nombres de segundo nivel
– System.Configuration: acceso a ficheros de
configuración
– System.Data: Acceso a datos (ADO.NET)
– System.Xml: Procesamiento de XML
• System.Xml.Serialization: serialización de objetos a
XML (y al revés)
– System.Diagnostics: Acceso a registro de
eventos, procesos del sistema, contadores de
rendimiento, depuradores...
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
El espacio de nombres System (IV)
– System.Timers: Generación de eventos
(temporización)
– System.Globalization: Recursos para la
internacionalización de aplicaciones
– System.Net: Acceso a red (incluye soporte para
diversos protocolos)
– System.Collections: Colecciones de objetos,
como listas, colas, arrays, tablas hash,
diccionarios...
– System.IO: Entrada y salida básica.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
El espacio de nombres System (V)
– System.Text: Codificación de caracteres,
conversión de caracteres, manipulación de
cadenas.
– System.Text.RegularExpressions: Soporte para
expresiones regulares
– System.Threading: Soporte para programación
multihilo, sincronización, etc.
– System.Reflection: Metadatos, uso dinámico de
tipos
– System.Drawing: Gráficos 2D, acceso al GDI.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
El espacio de nombres System (VI)
– System.Runtime.CompilerServices: Soporte
para compiladores
– System.Runtime.InteropServices:
Interoperabilidad con COM
– System.Runtime.Serialization: Serialización,
incluyendo la serialización de tipo binario y
SOAP.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
System.Xml
• Soporte para XML
– Clases que representan el documento,
elementos, atributos...
– Posibilidad de cargar un fichero de texto (o un
string) con XML
– Creación dinámica de los nodos
– Lo que constituye el documento se puede
modificar en memoria
• Soporte para XSLT
– Transformación de documentos XML
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
System.Diagnostics
• EventLog
– Escribir en el registro de eventos de sistema,
leer los eventos, manipular registros de
eventos...
– Se puede iterar por los eventos
• Process
– Monitorizar procesos del sistema
– Incluso en otras máquinas
– Crear y detener procesos
• Otros
– Monitorizar (performance counters)
– Depuración y trazas
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
System.Net
•
•
•
Ofrece acceso a la red
Implementa muchos protocolos básicos
Gran sencillez de uso
– Comparación con sockets y otros recursos
• Clases para:
– Transacciones HTTP, descarga de ficheros
– DNS
– Cookies
– Gestión de direcciones
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
System.Collections (I)
• ArrayList: Array dinámico
– Implementa la interfaz IList
• BitArray: Array de bits
• CollectionBase
– Clase abstracta
– Base para las colecciones
• HashTable
– Implementa: IDictionary, ICollection,
IEnumerable, ISerializable,etc.
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
System.Collections (II)
• Se definen varias interfaces
– ICollection: Métodos de tamaño, enumeración,
etc.
– IDictionary: Colección de pares clave-valor
– IEnumerable / IEnumerator: Permite iterar sobre
una colección
– IList: Colección de objetos a los que se puede
acceder mediante un índice
– IHashCodeProvider: Función hash para un
objeto
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
System.IO
• El CLR no tiene instrucciones intrínsecas
para E/S
• Se apoya completamente en la
funcionalidad de la BCL
• 30 clases:
– Almacenamiento (ficheros binarios, de texto,
streams...)
– Gestión de directorios (Directory, DirectoryInfo)
– Excepciones relacionadas (FileNotFound,
FileLoad...)
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
System.Text
• System.Text
– Codificación ASCII,Unicode,UTF-7,UTF-8
– Codificación y descodificación mediante
algoritmos del usuario
• Clases abstractas
• System.Text.RegularExpressions
– Clases para acceder al motor de expresiones
regulares de .NET
– No sólo verificar el emparejamiento, sino saber
qué subcadena lo cumplió
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
System.Threading
• Interlocked
– Protección de variables compartidas
(operaciones atómicas)
– Incremento, decremento, asignación
•
•
•
Eventos, monitores, mutex...
Gestión de hilos (threads)
Ejecución de métodos en intervalos de
tiempo
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
Otros espacios de nombres (I)
• Además de System y sus espacios de
segundo nivel, existen otros espacios de
nombres incluidos en BCL
• Se agrupan bajo el espacio Microsoft
• Son:
– Microsoft.CSharp
– Microsoft.JScript
– Microsoft.VisualBasic
– Microsoft.Vsa
– Microsoft.Win32
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
Otros espacios de nombres (II)
• Microsoft.CSharp
– Contiene clases para la compilación y
generación de código en C#
– Existen otras similares: Microsoft.JScript,
Microsoft.VisualBasic
• Microsoft.Vsa
– Integrar lenguajes de scripting en las
aplicaciones, y ejecutar el código
• Microsoft.Win32
– Manipular eventos del SO y el registry
Cursos de Verano 2002
UNIVERSIDAD DE OVIEDO
Biblioteca de Clases Base (BCL)
Agustín Cernuda del Río
OOTLab
Descargar