El documento presenta la agenda de una clase sobre la Base Class Library de .NET. Incluye introducciones a aplicaciones de consola, manejo de cadenas, XML, entrada/salida de archivos, compresión y colecciones de objetos. Explica conceptos clave y muestra ejemplos de código para varias clases como String, DateTime, XML, E/S de archivos y colecciones.
La API de Persistencia de Java (JPA) especifica cómo mapear objetos de Java a tablas relacionales de bases de datos. Reemplaza los Entity Beans de EJB con clases de entidad estándar de Java anotadas. Proporciona una interfaz para consultas y gestión del ciclo de vida de las entidades mediante el Entity Manager.
Este documento describe la herencia en Java y sus características principales. La herencia permite crear nuevas clases que heredan los atributos y métodos de clases existentes, permitiendo la reutilización de código. Todas las clases en Java heredan directa o indirectamente de la clase Object, la cual contiene métodos como clone, equals y hashCode. La herencia permite crear jerarquías de clases donde las subclases son más específicas que sus superclases.
1) Java se creó en 1991 como parte de un proyecto de Sun para desarrollo de software para electrónica de consumo. 2) Desde un inicio se diseñó para ser multiplataforma y ejecutarse en diferentes CPUs, lo que le dio gran portabilidad. 3) Java ha tenido varias versiones importantes como JDK 1.0, 1.1, J2SE 1.2 que agregó nuevas características.
Introducción a Doctrine 2 ORM.
Una introducción y uso básico de Doctrine 2 ORM en PHP sin utilizar frameworks, a través de un proyecto sencillo usado como ejemplo.
El codigo PHP del proyecto se puede descargar de su repositorio de Github: (https://github.com/gonfert/cine.git)
Presentación realizada para la X Symfony Zaragoza
Este documento resume la historia y características principales de Java. Comenzó en 1991 como un proyecto llamado Green para aplicaciones de televisión interactivas. Fue lanzado oficialmente en 1995 por Sun Microsystems como un lenguaje orientado a objetos multiplataforma diseñado para "escribir una vez y ejecutar en cualquier lugar". Java ha influido en muchos otros lenguajes y tiene una amplia API estándar para varias tareas.
El documento describe los tipos de objetos en .NET, incluyendo tipos por valor y referencia, así como estructuras, enumeraciones, cadenas y StringBuilder. Los tipos incluyen datos integrados como enteros y cadenas, así como tipos definidos por el usuario como clases y estructuras. Los tipos por valor se almacenan en la pila mientras que los tipos por referencia almacenan direcciones de memoria en la pila y los datos en el montón.
La multitarea permite la ejecución simultánea de varias tareas compartiendo un único procesador, mientras que el multiproceso requiere de múltiples procesadores. Java permite la programación multitarea a través de hilos implementados con la clase Thread o la interfaz Runnable. El framework de concurrencia de Java simplifica el desarrollo de aplicaciones multitarea a través de estructuras de datos concurrentes, variables atómicas, bloqueos y otras utilidades.
La API de Persistencia de Java (JPA) especifica cómo mapear objetos de Java a tablas relacionales de bases de datos. Reemplaza los Entity Beans de EJB con clases de entidad estándar de Java anotadas. Proporciona una interfaz para consultas y gestión del ciclo de vida de las entidades mediante el Entity Manager.
Este documento describe la herencia en Java y sus características principales. La herencia permite crear nuevas clases que heredan los atributos y métodos de clases existentes, permitiendo la reutilización de código. Todas las clases en Java heredan directa o indirectamente de la clase Object, la cual contiene métodos como clone, equals y hashCode. La herencia permite crear jerarquías de clases donde las subclases son más específicas que sus superclases.
1) Java se creó en 1991 como parte de un proyecto de Sun para desarrollo de software para electrónica de consumo. 2) Desde un inicio se diseñó para ser multiplataforma y ejecutarse en diferentes CPUs, lo que le dio gran portabilidad. 3) Java ha tenido varias versiones importantes como JDK 1.0, 1.1, J2SE 1.2 que agregó nuevas características.
Introducción a Doctrine 2 ORM.
Una introducción y uso básico de Doctrine 2 ORM en PHP sin utilizar frameworks, a través de un proyecto sencillo usado como ejemplo.
El codigo PHP del proyecto se puede descargar de su repositorio de Github: (https://github.com/gonfert/cine.git)
Presentación realizada para la X Symfony Zaragoza
Este documento resume la historia y características principales de Java. Comenzó en 1991 como un proyecto llamado Green para aplicaciones de televisión interactivas. Fue lanzado oficialmente en 1995 por Sun Microsystems como un lenguaje orientado a objetos multiplataforma diseñado para "escribir una vez y ejecutar en cualquier lugar". Java ha influido en muchos otros lenguajes y tiene una amplia API estándar para varias tareas.
El documento describe los tipos de objetos en .NET, incluyendo tipos por valor y referencia, así como estructuras, enumeraciones, cadenas y StringBuilder. Los tipos incluyen datos integrados como enteros y cadenas, así como tipos definidos por el usuario como clases y estructuras. Los tipos por valor se almacenan en la pila mientras que los tipos por referencia almacenan direcciones de memoria en la pila y los datos en el montón.
La multitarea permite la ejecución simultánea de varias tareas compartiendo un único procesador, mientras que el multiproceso requiere de múltiples procesadores. Java permite la programación multitarea a través de hilos implementados con la clase Thread o la interfaz Runnable. El framework de concurrencia de Java simplifica el desarrollo de aplicaciones multitarea a través de estructuras de datos concurrentes, variables atómicas, bloqueos y otras utilidades.
Este documento describe los conceptos básicos de la programación orientada a objetos. Explica que las clases definen el estado y comportamiento de los objetos, los atributos representan el estado y los métodos el comportamiento. También cubre temas como constructores, encapsulamiento, herencia, polimorfismo, paquetes y el lenguaje UML para modelado.
Este documento proporciona una introducción a los conceptos básicos de la programación orientada a objetos en Java, incluyendo definiciones de objetos, clases, mensajes y herencia. Explica que los objetos contienen variables y métodos, las clases son prototipos que definen los atributos comunes a los objetos de un tipo, los objetos se comunican mediante el envío de mensajes, y la herencia permite que una clase herede atributos de otra clase existente.
El documento describe conceptos básicos de programación orientada a objetos en Java como clases, objetos, instanciación, modificadores de acceso, herencia e interfaces. Explica que un objeto es una instancia de una clase, la creación de objetos involucra el uso del operador new, y que las clases pueden definir modificadores de acceso como public, private y protected.
Esta presentación les ayudará a entender como JPA maneja las relaciones de clases y las llaves primarias compuestas.
Además de como crear validadores y conversores.
Tema 15 aplicaciones de dos capas por gioRobert Wolf
Una aplicación de dos capas separa el código de la aplicación del sistema de administración de la base de datos. En una aplicación de dos capas, el cliente contiene la interfaz de usuario y lógica del negocio, mientras que el servidor contiene un administrador de bases de datos. La API JDBC de Java proporciona una forma estándar para que un cliente Java se comunique con diferentes administradores de bases de datos a través de un protocolo.
Temas tratados en el Capítulo 2 del Curso de Fundamentos de Programación en Java - PROGRAMACIÓN ORIENTADA A
OBJETOS CON JAVA.
Unidad de Educación Contínua - UNIDEC
Universidad Central del Ecuador
Ing. Giovanny Moncayo Unda
1. El documento describe el lenguaje de programación Java, incluyendo que es orientado a objetos, interpretado y compilado a la vez, y portable. 2. Explica conceptos básicos de programación orientada a objetos como clases, objetos, encapsulamiento, herencia y polimorfismo. 3. Cubre estructuras básicas de Java como declaración de clases, atributos, métodos, condicionales if, bucles for, vectores y matrices.
Este documento describe diferentes enfoques para escribir clases contenedoras que exponen funciones de bibliotecas nativas en Java. Explica el enfoque de uno-a-uno, donde cada función nativa se mapea a un método nativo único. Luego introduce el concepto de "stubs compartidas", donde una función stub distribuye llamadas a otras funciones nativas, simplificando la tarea de escribir clases contenedoras. Finalmente, discute las ventajas e inconvenientes de ambos enfoques.
Este documento contiene información sobre una presentación de diapositivas creada por el estudiante Cristian Santiago Coloma Arcos para la asignatura Ingeniería de Software II sobre una compañía de seguros llamada Aseguradora Chevrolet. Incluye el nombre del documento, nombre del estudiante, URL de la presentación de diapositivas y código para incrustarla en otros sitios web. También contiene una entrevista realizada como parte de un examen parcial sobre los requisitos de la compañía aseguradora investigada.
OCP, JSE 6 Programmer (1z0-851) - Guia practica 3 de 7(ap-is)Oscar V
Este documento presenta una guía práctica para la sección 3 del examen Oracle Certified Professional, Java SE 6 Programmer. Cubre el uso de APIs estándares de Java relacionadas con tipos primitivos, E/S de archivos, formateo de fechas, números y cadenas, y expresiones regulares. Explica las clases y métodos más importantes para trabajar con wrappers de tipos primitivos, leer y escribir archivos, formatear fechas usando locales, y parsear cadenas y streams usando expresiones regulares y formateo de cadenas.
Este documento presenta 10 ejercicios sobre el uso de funciones en Excel. Cada ejercicio explica funciones relacionadas con una categoría como desplazamiento, funciones de fechas, funciones financieras y más. Se proporcionan ejemplos de sintaxis y descripciones breves de cada función.
El documento describe los diagramas de clases, incluyendo sus componentes principales como clases, atributos, operaciones y las relaciones entre clases como dependencia, generalización y asociación. Explica cómo las clases representan plantillas y los objetos son instancias de clases, con atributos que definen sus características y operaciones que especifican cómo interactúan.
Este documento describe los elementos básicos de una clase en programación orientada a objetos, incluyendo atributos, operaciones, la estructura de una clase, y cómo crear objetos. Los atributos almacenan las propiedades y características de un objeto, mientras que las operaciones permiten que un objeto realice acciones. Las clases definen la estructura común para todos los objetos de ese tipo.
Este documento proporciona una introducción a los conceptos básicos de Java, incluyendo tipos de datos primitivos, clases, objetos, herencia, paquetes, métodos y constructores. También explica operadores, declaración de variables, condicionales, bucles y cadenas de caracteres.
Este documento describe conceptos clave de programación orientada a objetos como clases, objetos, tipos abstractos de datos, constructores, paquetes y la clase Object. Explica cómo declarar una clase, los diferentes tipos de visibilidad de métodos, y el uso de this. También cubre temas como recolección de objetos, miembros static, y provee ejemplos de cómo aplicar estos conceptos en Java.
Esta presentación le pertenece a Paúl Arévalo.
Este capítulo introduce el concepto de herencia y clases derivadas.
La herencia hace posible crear jerarquías de clases relacionadas y reduce la cantidad de código redundante en componentes de clases.
La herencia es una herramienta poderosa que proporciona un marco adecuado para producir software fiable, comprensible, de bajo coste, adaptable y reutilizable.
El documento describe cómo Juan envía flores a su amiga Ana a través de Pedro, un florista local. Juan le da a Pedro la información necesaria sobre las flores y la dirección de Ana. Pedro tiene la responsabilidad de entregar las flores a Ana según lo solicitado.
La clase es el elemento básico de la programación orientada a objetos en Java. Una clase define la estructura y comportamiento de un objeto mediante atributos y métodos. Las clases se declaran utilizando la palabra clave class, y los objetos se crean a partir de las clases usando la palabra clave new. Las clases permiten encapsular datos y comportamiento para modelar entidades del mundo real.
Este documento describe diferentes técnicas de mapeo en Hibernate/JPA como @Embedded, @Embeddable, modos de identidad como @Id, @GeneratedValue, @SequenceGenerator, modos de locking como @Version, herencia mediante @Inheritance, relaciones polimórficas, batch processing, servicios, transitividad (cascades), caching, validaciones con Hibernate Validator y Envers para auditoría. Explica recomendaciones sobre performance y también introduce conceptos como multi-tenancy.
El documento describe el mapeo objeto-relacional (ORM) y el framework Hibernate. Explica las ventajas de usar ORM, como trabajar con objetos en lugar de filas de datos. También describe los componentes clave de Hibernate como las clases, los archivos XML de mapeo y de configuración, y cómo crear, leer, actualizar y eliminar objetos de la base de datos.
Este documento resume varias clasificaciones de caries dental propuestas por diferentes autores, incluyendo las clasificaciones de Mount y Hume, Black y Nyvad. La autora concluye que la clasificación de Black es la más sencilla y ampliamente utilizada a nivel mundial, y que la clasificación de Mount y Hume también es simple y conservadora. Todas estas clasificaciones son útiles para los odontólogos y mejoran la comprensión del tema.
Este documento proporciona información biográfica sobre Greene Vardiman Black, un pionero en odontología estadounidense nacido en 1836. Black desarrolló numerosos instrumentos dentales innovadores y enseñó en varias facultades dentales prominentes. Fue un investigador prolífico que publicó artículos sobre una variedad de temas científicos y médicos. Black hizo contribuciones significativas al avance del conocimiento en odontología preventiva y operatoria dental.
Este documento describe los conceptos básicos de la programación orientada a objetos. Explica que las clases definen el estado y comportamiento de los objetos, los atributos representan el estado y los métodos el comportamiento. También cubre temas como constructores, encapsulamiento, herencia, polimorfismo, paquetes y el lenguaje UML para modelado.
Este documento proporciona una introducción a los conceptos básicos de la programación orientada a objetos en Java, incluyendo definiciones de objetos, clases, mensajes y herencia. Explica que los objetos contienen variables y métodos, las clases son prototipos que definen los atributos comunes a los objetos de un tipo, los objetos se comunican mediante el envío de mensajes, y la herencia permite que una clase herede atributos de otra clase existente.
El documento describe conceptos básicos de programación orientada a objetos en Java como clases, objetos, instanciación, modificadores de acceso, herencia e interfaces. Explica que un objeto es una instancia de una clase, la creación de objetos involucra el uso del operador new, y que las clases pueden definir modificadores de acceso como public, private y protected.
Esta presentación les ayudará a entender como JPA maneja las relaciones de clases y las llaves primarias compuestas.
Además de como crear validadores y conversores.
Tema 15 aplicaciones de dos capas por gioRobert Wolf
Una aplicación de dos capas separa el código de la aplicación del sistema de administración de la base de datos. En una aplicación de dos capas, el cliente contiene la interfaz de usuario y lógica del negocio, mientras que el servidor contiene un administrador de bases de datos. La API JDBC de Java proporciona una forma estándar para que un cliente Java se comunique con diferentes administradores de bases de datos a través de un protocolo.
Temas tratados en el Capítulo 2 del Curso de Fundamentos de Programación en Java - PROGRAMACIÓN ORIENTADA A
OBJETOS CON JAVA.
Unidad de Educación Contínua - UNIDEC
Universidad Central del Ecuador
Ing. Giovanny Moncayo Unda
1. El documento describe el lenguaje de programación Java, incluyendo que es orientado a objetos, interpretado y compilado a la vez, y portable. 2. Explica conceptos básicos de programación orientada a objetos como clases, objetos, encapsulamiento, herencia y polimorfismo. 3. Cubre estructuras básicas de Java como declaración de clases, atributos, métodos, condicionales if, bucles for, vectores y matrices.
Este documento describe diferentes enfoques para escribir clases contenedoras que exponen funciones de bibliotecas nativas en Java. Explica el enfoque de uno-a-uno, donde cada función nativa se mapea a un método nativo único. Luego introduce el concepto de "stubs compartidas", donde una función stub distribuye llamadas a otras funciones nativas, simplificando la tarea de escribir clases contenedoras. Finalmente, discute las ventajas e inconvenientes de ambos enfoques.
Este documento contiene información sobre una presentación de diapositivas creada por el estudiante Cristian Santiago Coloma Arcos para la asignatura Ingeniería de Software II sobre una compañía de seguros llamada Aseguradora Chevrolet. Incluye el nombre del documento, nombre del estudiante, URL de la presentación de diapositivas y código para incrustarla en otros sitios web. También contiene una entrevista realizada como parte de un examen parcial sobre los requisitos de la compañía aseguradora investigada.
OCP, JSE 6 Programmer (1z0-851) - Guia practica 3 de 7(ap-is)Oscar V
Este documento presenta una guía práctica para la sección 3 del examen Oracle Certified Professional, Java SE 6 Programmer. Cubre el uso de APIs estándares de Java relacionadas con tipos primitivos, E/S de archivos, formateo de fechas, números y cadenas, y expresiones regulares. Explica las clases y métodos más importantes para trabajar con wrappers de tipos primitivos, leer y escribir archivos, formatear fechas usando locales, y parsear cadenas y streams usando expresiones regulares y formateo de cadenas.
Este documento presenta 10 ejercicios sobre el uso de funciones en Excel. Cada ejercicio explica funciones relacionadas con una categoría como desplazamiento, funciones de fechas, funciones financieras y más. Se proporcionan ejemplos de sintaxis y descripciones breves de cada función.
El documento describe los diagramas de clases, incluyendo sus componentes principales como clases, atributos, operaciones y las relaciones entre clases como dependencia, generalización y asociación. Explica cómo las clases representan plantillas y los objetos son instancias de clases, con atributos que definen sus características y operaciones que especifican cómo interactúan.
Este documento describe los elementos básicos de una clase en programación orientada a objetos, incluyendo atributos, operaciones, la estructura de una clase, y cómo crear objetos. Los atributos almacenan las propiedades y características de un objeto, mientras que las operaciones permiten que un objeto realice acciones. Las clases definen la estructura común para todos los objetos de ese tipo.
Este documento proporciona una introducción a los conceptos básicos de Java, incluyendo tipos de datos primitivos, clases, objetos, herencia, paquetes, métodos y constructores. También explica operadores, declaración de variables, condicionales, bucles y cadenas de caracteres.
Este documento describe conceptos clave de programación orientada a objetos como clases, objetos, tipos abstractos de datos, constructores, paquetes y la clase Object. Explica cómo declarar una clase, los diferentes tipos de visibilidad de métodos, y el uso de this. También cubre temas como recolección de objetos, miembros static, y provee ejemplos de cómo aplicar estos conceptos en Java.
Esta presentación le pertenece a Paúl Arévalo.
Este capítulo introduce el concepto de herencia y clases derivadas.
La herencia hace posible crear jerarquías de clases relacionadas y reduce la cantidad de código redundante en componentes de clases.
La herencia es una herramienta poderosa que proporciona un marco adecuado para producir software fiable, comprensible, de bajo coste, adaptable y reutilizable.
El documento describe cómo Juan envía flores a su amiga Ana a través de Pedro, un florista local. Juan le da a Pedro la información necesaria sobre las flores y la dirección de Ana. Pedro tiene la responsabilidad de entregar las flores a Ana según lo solicitado.
La clase es el elemento básico de la programación orientada a objetos en Java. Una clase define la estructura y comportamiento de un objeto mediante atributos y métodos. Las clases se declaran utilizando la palabra clave class, y los objetos se crean a partir de las clases usando la palabra clave new. Las clases permiten encapsular datos y comportamiento para modelar entidades del mundo real.
Este documento describe diferentes técnicas de mapeo en Hibernate/JPA como @Embedded, @Embeddable, modos de identidad como @Id, @GeneratedValue, @SequenceGenerator, modos de locking como @Version, herencia mediante @Inheritance, relaciones polimórficas, batch processing, servicios, transitividad (cascades), caching, validaciones con Hibernate Validator y Envers para auditoría. Explica recomendaciones sobre performance y también introduce conceptos como multi-tenancy.
El documento describe el mapeo objeto-relacional (ORM) y el framework Hibernate. Explica las ventajas de usar ORM, como trabajar con objetos en lugar de filas de datos. También describe los componentes clave de Hibernate como las clases, los archivos XML de mapeo y de configuración, y cómo crear, leer, actualizar y eliminar objetos de la base de datos.
Este documento resume varias clasificaciones de caries dental propuestas por diferentes autores, incluyendo las clasificaciones de Mount y Hume, Black y Nyvad. La autora concluye que la clasificación de Black es la más sencilla y ampliamente utilizada a nivel mundial, y que la clasificación de Mount y Hume también es simple y conservadora. Todas estas clasificaciones son útiles para los odontólogos y mejoran la comprensión del tema.
Este documento proporciona información biográfica sobre Greene Vardiman Black, un pionero en odontología estadounidense nacido en 1836. Black desarrolló numerosos instrumentos dentales innovadores y enseñó en varias facultades dentales prominentes. Fue un investigador prolífico que publicó artículos sobre una variedad de temas científicos y médicos. Black hizo contribuciones significativas al avance del conocimiento en odontología preventiva y operatoria dental.
Las restauraciones cervicales pueden realizarse con resinas fluidas, composites, ionómeros, ionorresinas o compómeros. Los ionómeros vítreos son materiales de elección para las restauraciones de clase V, ya que poseen adhesión química a esmalte y dentina, liberan flúor de forma prolongada y tienen un efecto cariostático. La selección del material depende de factores como la ubicación de la lesión y el riesgo de caries.
Tema 05 Nomenclatura Y Clasificacion De Las CavidadesMilagros Daly
El documento presenta una descripción detallada de la nomenclatura y clasificación de las cavidades dentales. Explica los tipos de cavidades según su finalidad, extensión, cara comprometida y etiología, así como los componentes de una cavidad dental como paredes, ángulos y factores cavitarios. También introduce la clasificación moderna de cavidades según sitios y estadios de progresión de la caries.
La caries dental es una enfermedad infecciosa causada principalmente por una dieta rica en azúcares que ayuda a las bacterias a corroer el esmalte dental. Los síntomas incluyen dolor en los dientes y cavidades visibles. El tratamiento implica eliminar el material cariado y reemplazarlo con materiales reconstructivos. La prevención es a través de una dieta baja en azúcar, cepillado dental, hilo dental e higiene bucal regular.
Este documento describe los diferentes planos de corte y paredes que definen la ubicación y forma de las cavidades dentales. Explica que los planos horizontales incluyen el oclusal, gingival y medio, mientras que los planos verticales son mesio-distales y vestibulo-palatinos/linguales. También clasifica las cavidades en cinco clases dependiendo de su ubicación.
El documento presenta varias clasificaciones de la caries dental según diferentes autores, incluyendo la clasificación de Mount basada en tres sitios de acumulación de placa, la clasificación de Wyme según la profundidad de la caries, la clasificación de Black según la superficie dental afectada e ICDAS según cambios visuales en el esmalte. También describe la caries según su etapa de progresión, si es activa, crónica o rampante, y según su severidad en la temprana infancia.
Este documento describe las diferentes clases de lesiones cariosas (clases I-VI) según la clasificación de Black, incluyendo definiciones, morfología de la cavidad y materiales de restauración apropiados. Explica los procedimientos clínicos para cada clase, como la preparación de la cavidad y colocación del material restaurador. También resume brevemente algunos estudios sobre técnicas y materiales para restauraciones de clases II y III. El objetivo es proporcionar una guía sobre el enfoque operatorio adecuado para cada
El documento describe la etiología, características clínicas y radiográficas, zonas estructurales y tipos de caries dental. Explica que la caries se produce por la acumulación de placa bacteriana y se ve afectada por factores como la edad, genética y propiedades de la saliva. Describe las características de la caries de esmalte, dentina, cemento y raíz, así como métodos de diagnóstico y tratamientos como remineralización, sellantes, obturaciones de amalgama y resina
El documento presenta varias clasificaciones de la caries dental, incluyendo las clasificaciones de Black, Mount y Hume, ICDAS y Bogiol. La clasificación de Black categoriza las cavidades dental según su ubicación, mientras que la de Mount y Hume las categoriza según ubicación y tamaño. La clasificación ICDAS se enfoca en detección temprana, y la de Bogiol categoriza a los pacientes según su riesgo de caries.
La paciente de 53 años acudió a la clínica dental por dolor gingival. Se diagnosticó periodontitis crónica moderada y caries activas debido a mala higiene. El plan de tratamiento incluyó raspado y alisado, eliminación de caries, restauraciones de resina y enseñanza de cepillado. Luego de varias sesiones, se restauró el 80% de los dientes y la salud periodontal mejoró gracias a los cambios en los hábitos de higiene de la paciente.
El documento describe la API de persistencia Java Persistence (JPA). JPA es un estándar ORM que permite mapear objetos Java a tablas de una base de datos relacional de una manera declarativa mediante anotaciones. JPA proporciona una capa de abstracción sobre tecnologías de acceso a datos como JDBC para facilitar la persistencia de datos.
Este documento resume los conceptos clave de la programación orientada a objetos (POO) como la abstracción, encapsulamiento, herencia y polimorfismo. También explica conceptos como clases, objetos, instancias, constructores, destructores y eventos. Por último, presenta el modelo de programación en capas y las responsabilidades de cada capa como presentación, negocio, acceso a datos e infraestructura.
Este documento describe la implementación de un sistema bibliotecario en Java que pone en práctica conceptos de programación orientada a objetos. El sistema permite visualizar artículos, realizar préstamos y ver usuarios con artículos prestados. Utiliza paquetes como java.util para estructuras de datos, java.io para E/S de archivos, y javax.swing para la interfaz gráfica. Las clases implementan conceptos como encapsulamiento, herencia, polimorfismo y métodos abstractos.
Este documento describe los componentes clave del .NET Framework. Explica que el .NET Framework es una infraestructura que simplifica el desarrollo de aplicaciones a través de lenguajes, herramientas y servicios. Describe el Common Language Runtime, la .NET Framework Class Library, y los tipos de soluciones que se pueden construir, como aplicaciones Windows, aplicaciones web y web services.
Este glosario contiene definiciones de términos relacionados con bases de datos. Define palabras clave como ACID, aggregate functions, alerts, Alpha server, American National Standards Institute (ANSI), American Standard Code for Information Interchange (ASCII), AppleTalk, application database roles, application programming interfaces (API), article, atomicity, base data type, base table, batch, binary sort order, Binn, Boolean search, bulk copy program (bcp), cache, candidate key, cascading delete, cascading update, character set, CHECK constraints, client, client/server model, clustered index, clustering, Code page, column, component object model (COM), composite index
El documento habla sobre los elementos del lenguaje de definición de datos (DDL) en SQL. Menciona que las sentencias DDL utilizan verbos como CREATE, DROP, y ALTER junto con objetos de base de datos como tablas, vistas e índices. También cubre las diferentes categorías de funciones en SQL como funciones de agregado, escalares, de conjunto de filas y de categoría.
El documento describe los diferentes elementos del lenguaje de definición de datos SQL como verbos, objetos, sentencias DDL, DCL y DML. También describe las funciones de SQL como funciones de conjunto de filas, funciones de agregado, funciones escalares y las diferentes categorías de funciones como funciones de configuración, fecha y hora, matemáticas, metadatos, seguridad, cadena, sistema y estadísticas del sistema.
Este documento presenta una introducción al lenguaje de programación C# cubriendo temas como tipos de datos, construcciones de decisión e iteración, programación orientada a objetos, características de .NET, Visual Studio y C#, y conceptos avanzados como genéricos y LINQ. Explica los tipos de datos básicos de C# como enteros, cadenas, arreglos y delegados, y características como encapsulamiento, herencia, polimorfismo y clases parciales.
Este documento presenta una introducción al lenguaje de programación C# cubriendo temas como tipos de datos, construcciones de decisión e iteración, programación orientada a objetos, características de .NET, Visual Studio y C#, y conceptos avanzados como genéricos y LINQ. Explica los tipos de datos básicos como enteros, cadenas y matrices, así como conceptos como encapsulamiento, herencia, polimorfismo y clases genéricas.
El espacio de nombres System.Data.SqlClient es el proveedor de datos .NET Framework para SQL Server. En éste tema observaremos clases, delegados, enumeraciones y algunos ejemplos sobre espacio de nombres System.Data.SqlClient. En el espacio de nombres System.Data también se incluye System.DataSqlClient.
Este documento describe varios conceptos relacionados con el desarrollo de software como ToolBox, Solution Explorer, Error List y Properties Windows. Define propiedades para cada uno y explica brevemente sus funciones como organizar archivos de proyecto, mostrar errores y propiedades de objetos seleccionados. También cubre brevemente los espacios de nombres System.IO, System.Data.SqlClient, System.Drawing y System.Text.
El documento describe los diferentes tipos de elementos que pueden contener un espacio de nombres .NET, incluyendo clases, estructuras, enumeraciones, interfaces y delegados. Las clases son tipos de referencia que requieren la creación de instancias mediante constructores, mientras que las estructuras son tipos de valor. Las enumeraciones contienen conjuntos de constantes relacionadas, e interfaces y delegados definen contratos de métodos sin implementación.
SqlConnection representa una sesión con una base de datos de SQL Server. Se usa para conectarse a una base de datos y ejecutar comandos. El estado de la conexión puede ser abierto o cerrado, y debe cerrarse explícitamente cuando ya no se necesite para liberar recursos. Proporciona métodos para crear comandos, consultar esquemas de la base de datos, y administrar transacciones.
Este documento contiene dos prácticas sobre SQL Server. La primera práctica describe los componentes de SQL Server como las bases de datos y objetos. También explica las características de SQL Server como transacciones y escalabilidad. La segunda práctica cubre los elementos del lenguaje T-SQL incluyendo DDL, DML y DCL. Además, describe varias funciones de cadenas, fechas y conversión de tipos de datos.
Este documento explica los conceptos básicos de entrada y salida de datos en Java, incluyendo diferentes tipos de flujos de entrada y salida como flujos de bytes, caracteres, objetos y archivos. También describe cómo acceder a archivos y directorios, usar tuberías para transmitir datos entre programas, y manejar archivos de acceso aleatorio.
Este documento proporciona definiciones de varios términos relacionados con la programación en Java, como funciones matemáticas, excepciones, bucles, tipos de datos, clases y más. Explica conceptos básicos como variables, métodos, objetos, entre otros.
Este documento proporciona una introducción a los conceptos básicos de la programación orientada a objetos en Java, incluyendo definiciones de objetos, clases, mensajes y herencia. Explica que los objetos contienen variables y métodos, las clases son prototipos que definen objetos de cierto tipo, los objetos se comunican mediante mensajes, y la herencia permite que una clase herede variables y métodos de otra clase.
1) La unidad trata sobre los métodos para la manipulación de archivos y directorios, así como las formas de leer y escribir archivos. 2) Se explican conceptos como flujos de entrada y salida y diferentes clases como FileInputStream, FileOutputStream y otras para el manejo de archivos. 3) También se cubren temas como la serialización de objetos y el almacenamiento en bases de datos.
Este documento presenta una lista de seis libros recomendados sobre criptografía en castellano y seis libros recomendados en inglés. Incluye para cada libro el título, autor, editorial, año de publicación y una breve descripción de los temas cubiertos. El documento forma parte de un curso sobre seguridad informática y criptografía.
Este documento presenta una introducción a la cifra con curvas elípticas. Explica conceptos básicos como curvas elípticas, conjunto de puntos en una curva elíptica, suma de puntos y criptosistemas como ElGamal elíptico. El documento fue escrito por Josep María Miret Biosca de la Universidad de Lleida y forma parte de un curso más amplio sobre seguridad informática y criptografía.
Este documento presenta 10 ejemplos de protocolos criptográficos, incluyendo protocolos de identificación de usuarios, lanzamiento de monedas virtuales, firma de contratos electrónicos, y voto electrónico. Luego describe el algoritmo de firma ciega RSA y un ejemplo de su aplicación. Finalmente, explica el algoritmo de transferencia inconsciente propuesto por Michael Rabin, incluyendo un ejemplo numérico de su funcionamiento.
Este documento describe las aplicaciones de correo electrónico seguro PGP y PEM. Se explican los conceptos básicos de cada uno, como PEM fue propuesto en 1985 y PGP fue desarrollado por Philip Zimmermann en 1991 para proporcionar privacidad en Internet. El documento también describe los algoritmos y operaciones clave de PGP, incluida la generación de claves asimétricas, los anillos de claves públicas y privadas, y el cifrado y firma de mensajes de correo electrónico.
Este documento proporciona información sobre certificados digitales y el estándar PKCS. Explica qué son los certificados digitales, el formato X.509 y los elementos de una Autoridad de Certificación como políticas de certificación y lista de certificados revocados. También describe los documentos principales del estándar PKCS, incluyendo PKCS #1, PKCS #7 y PKCS #11.
El documento presenta información sobre autenticación y firma digital. Explica que la autenticación busca garantizar la integridad de un mensaje asegurando la autenticidad del emisor y que no ha sido modificado. También describe problemas de integridad como la autenticidad del emisor, integridad del mensaje, actualidad del mensaje y no repudio. Finalmente, introduce diferentes esquemas de autenticación como el uso de una tercera parte de confianza, autenticación con cifrado simétrico, funciones hash y firma digital con cifrado asimé
Este documento describe las funciones hash y su uso en criptografía. Explica que las funciones hash se utilizan para generar resúmenes cortos de mensajes que pueden firmarse digitalmente para autenticar el mensaje y el emisor. También describe las propiedades que deben cumplir las funciones hash para ser seguras, como resistencia a colisiones. Finalmente, detalla el algoritmo MD5 como ejemplo de función hash, explicando sus etapas y funciones internas.
Este documento describe el cifrado asimétrico exponencial y el protocolo de intercambio de claves de Diffie-Hellman. Explica cómo cifrar y descifrar números usando exponenciación modular con claves públicas y privadas. También describe cómo A y B pueden intercambiar una clave secreta usando el protocolo de Diffie-Hellman sin que un intruso pueda descubrirla, a menos que resuelva el problema del logaritmo discreto.
Este documento describe el cifrado asimétrico basado en el problema matemático de la mochila. Explica cómo Merkle y Hellman propusieron en 1978 un sistema de cifrado de clave pública que utiliza una "mochila con trampa", creando una mochila difícil a partir de una mochila simple de forma que el cifrado se realiza con la mochila difícil y el descifrado con la mochila simple. La trampa actúa como la clave privada, mientras que la mochila difícil es la clave pública. Luego procede a ilustrar un
Este documento presenta información sobre cifrado simétrico en bloque. Explica algoritmos como DES, Triple DES, IDEA y AES, incluyendo detalles sobre sus bloques, claves y vueltas. También cubre modos de cifrado como ECB, CBC, CFB y OFB y proporciona tasas de cifrado comparativas de varios algoritmos.
Este documento presenta información sobre sistemas de cifrado en flujo. Explica que estos sistemas utilizan la función XOR con una secuencia cifrante binaria pseudoaleatoria generada a partir de una clave secreta. También describe las características que debe cumplir la secuencia cifrante para ser segura, incluyendo la distribución de rachas, la autocorrelación constante y el cumplimiento de los postulados de Golomb. Finalmente, introduce la fórmula para generar secuencias cifrantes.
Este documento presenta una introducción a los sistemas de cifra modernos. Explica que los criptosistemas modernos usan operaciones algebraicas en cuerpos finitos y que su fortaleza se basa en la imposibilidad de descubrir una clave secreta única a pesar de que el algoritmo es público. Además, distingue entre cifrado en flujo y en bloque y menciona algunos ejemplos de cada uno. Finalmente, introduce el cifrado asimétrico basado en funciones unidireccionales con trampa como RSA.
Este documento presenta un capítulo sobre sistemas de cifra clásicos. Brevemente describe algunos de los cifradores clásicos más conocidos como la Escítala, Polybios, César y Afín. También menciona recursos adicionales sobre la historia de la criptografía y algoritmos clásicos.
Este documento trata sobre la teoría de la complejidad algorítmica y su aplicación en criptografía. Explica que los algoritmos pueden clasificarse según su complejidad polinomial o no determinista, lo que da lugar a problemas computacionalmente fáciles o difíciles. Problemas criptográficos como el problema de la mochila, la factorización y el logaritmo discreto son problemas NP que son difíciles de resolver salvo que se conozca un secreto.
Este documento presenta conceptos clave de la teoría de los números como parte de un curso sobre seguridad informática y criptografía. Explica la congruencia y sus propiedades, el conjunto completo de restos, la existencia de inversos multiplicativos y su relación con la primalidad, y cómo estas ideas matemáticas son fundamentales para la criptografía.
Este documento presenta los fundamentos de la teoría de la información. Explica que la cantidad de información contenida en un mensaje se mide en función de la probabilidad de recibir dicho mensaje, siendo mayor la información para mensajes menos probables. También introduce conceptos como entropía, codificación óptima de mensajes y su aplicación en criptografía.
Este documento presenta información sobre la gestión de la seguridad informática, incluyendo la protección lógica y física de datos, el análisis de riesgos, y diferentes modelos y políticas de seguridad. Se discuten temas como la seguridad física en entornos de PC, el proceso de análisis de riesgos, y modelos como Bell-LaPadula, Clark-Wilson y Take-Grant. El objetivo es introducir conceptos básicos sobre la gestión de la seguridad de sistemas de información.
Este documento trata sobre la seguridad informática y criptografía. Explica conceptos clave como la definición de información, la teoría de la información de Shannon, la importancia de la información para las empresas y los riesgos a la vulnerabilidad de la información, incluyendo amenazas internas y externas. También describe diferentes tipos de ataques y delitos informáticos como virus, gusanos, caballos de Troya y spam, así como estrategias para proteger los datos como copias de seguridad.
Este documento presenta una breve introducción a la criptografía. Explica conceptos clave como cifrado simétrico y asimétrico, firmas digitales, y cómo los sistemas híbridos utilizan ambos tipos de cifrado para lograr confidencialidad e integridad. El documento consta de 15 diapositivas y fue creado por el Dr. Jorge Ramió Aguirre de la Universidad Politécnica de Madrid para su curso sobre seguridad informática y criptografía.
Este documento presenta un libro electrónico sobre seguridad informática y criptografía. El libro contiene 21 capítulos sobre diferentes temas relacionados con la seguridad y la criptografía como cifrados simétricos y asimétricos, funciones hash, firmas digitales y protocolos criptográficos. El documento proporciona información sobre el autor, la edición, los derechos de autor y una breve descripción del contenido de cada capítulo.
2. Agenda
Base Class Library
Introducción
Aplicaciones tipo Consola
Manejo de Strings
XML
Entrada y Salida de Archivos
Compresion
Colecciones de Objetos
3. Agenda
Base Class Library
Introducción
Aplicaciones tipo Consola
Manejo de Strings
XML
Entrada y Salida de Archivos
Compresion
Colecciones de Objetos
4. Base Class Library
Introducción
La BCL es un conjunto de tipos (clases, interfaces,
etc.) básicos que vienen predefinidos en el .NET
Framework
Estos tipos están organizados en jerarquías
lógicas de nombres, denominado NAMESPACE
Estos tipos tambien son INDEPENDIENTES del
lenguaje de desarrollo
La BCL es extensible y totalmente orientada a
objetos
Base Class Library
5. Base Class Library
El namespace raíz es SYSTEM
System.Web System.Windows.Forms
Services UI Design ComponentModel
Description HtmlControls
Discovery WebControls
Protocols System.Drawing
Caching Security Drawing2D Printing
Configuration SessionState Imaging Text
System.Data System.Xml
OleDb SqlClient XSLT Serialization
Common SQLTypes XPath
Base Class Library
System
Collections IO Security Runtime
Configuration Net ServiceProcess InteropServices
Diagnostics Reflection Text Remoting
Globalization Resources Threading Serialization
6. System.Console
Funcionalidades:
Get y set del tamaño de la consola, buffer de la pantalla y
cursor.
Cambiar la posición de la ventana y el cursor
Manipular el buffer de la pantalla
Cambiar los colores y el título de la consola
Capturar la presión de teclas
Base Class Library
7. System.String
String es una colección secuencial de objetos
System.Char
Métodos:
Subtring
Recupera una subcadena de la instancia. La subcadena
comienza en una posición de carácter especificada
Split
Identifica las subcadenas de la instancia que están
delimitadas por uno o varios caracteres especificados en
una matriz, y las coloca después en una matriz de elementos
Base Class Library
String.
Concat
Concatena una o más instancias de String o las
representaciones de tipo String de los valores de una o más
instancias de Object.
8. System.String
Insert
Inserta una instancia especificada de String en una posición
de índice especificada de la instancia.
Replace
Reemplaza todas las apariciones de un carácter Unicode o
un objeto String en la instancia por otro carácter Unicode u
otro objeto String.
Trim
Quita todas las apariciones de un conjunto de caracteres
especificados desde el principio y el final de la instancia.
Base Class Library
ToLower
Devuelve una copia de String en minúsculas.
ToUpper
Devuelve una copia de String en mayúsculas.
9. System.DateTime
Representa un instante de tiempo
Métodos más comunes
ToString
Convierte el valor de esta instancia en la representación de
cadena equivalente
AddDays (..AddHours, AddYear, AddMinutes, etc)
Agrega el número de días especificado al valor de esta
instancia
Base Class Library
10. System.DateTime
Propiedades más comunes
Date
Obtiene el componente correspondiente a la fecha de esta
instancia a las 0hs
Day
Obtiene el día del mes
Now
Obtiene un DateTime que constituye la fecha y hora locales
actuales de este equipo
Base Class Library
Ticks
Obtiene el nro de pasos que representan la fecha y hora de
la instancia (cada paso equivale a 100 nanosegundos)
12. System.XML
Qué es exactamente XML?
eXtensible Markup Language
Estándar de la industria (W3C)
Independientes de la aplicación
XML define sólo la estructura de los datos, no la forma de
presentación
Base Class Library
13. System.XML
HTML – Lenguaje de Presentación
XML – Lenguaje Descriptivo
Base Class Library
14. System.XML
TXT
15334, 29.00, “Steve B.”, “XML”, MS Press …
15334, 29.00, “Steve B.”, “XML”, MS Press …
Se puden enviar datos de una aplicación a otra (incluso en plataformas distintas), pero
el layout de los mismos tiene que ser conocido por ambas aplicaciones.
XML
<Book>
<Book>
<id> 15534 </id>
<id> 15534 </id>
<Price> 29.00 </Price>
<Price> 29.00 </Price>
<author> Steve B. </author>
<author> Steve B. </author>
<title> XML </title>
<title> XML </title>
Base Class Library
<editor> MS Press </editor>
<editor> MS Press </editor>
</Book>
</Book>
La representación de los datos (metadata) está en el mismo lugar que los datos, por
lo cual estos pueden ser consumidos por cualquier aplicación en cualquier
plataforma.
15. System.XML
Espacio de nombre System.XML
XMLReader
XMLTextReader
Name
NodeType
Value
XMLWriter
XMLTextWriter
WriteElementString
WriteElementString
Base Class Library
WriteStartElement
WriteEndElement
WriteStartAttribute
WriteEndAttribute
16. Laboratorio
•Crear un documento XML
•Utilizar las clases de System.XML
17. System.IO
Entrada/salida de archivos
Espacio de nombre System.IO
Directory y DirectoryInfo
Path
File y FileInfo
Lectura y escritura de archivos
E/S de XML
FileSystemWatcher
Base Class Library
19. System.Compression
Compresión
Soporte para la compresión y descompresión de
archivos
Clases principales:
GZipStream
Industry-standard GZip (RFC 1952)
DeflateStream
LZW77 (RFC 1951)
Base Class Library
Ejemplos a Continuación…
22. Colecciones de Objetos
Colecciones:
Objetos que, internamente, gestionan arrays, pero que
estan preparados para gestionarlos de forma opimizada
Espacio de Nombres de System.Collection
ArrayList: Array cuyo número de elementos puede
modificarse dinámicamente
HashTable: El acceso a los valores del array se realiza a
traves de una clave asociada a cada elemento
SortedList: Variación de un HashTable en la que los
elementos se ordenan por la clave según van siendo
Base Class Library
agregados, funcionamiento similar al HashTable
Queue: Útiles para almacenar mensajes en el orden en el
que fueron recibidos
Stack: Representa una colección de objetos simple de la
clase último en entrar, primero en salir
30. Resumen
Hasta aquí hemos visto algunas de las capacidades
que nos brinda la Librería de Clases del .Net
Framework.
Vimos como utilizar una aplicación de consola,
utilizar algunos de los métodos y propiedades de la
clase String y DateTime
Comprendimos básicamente la estrutura básica de
un documento XML y cómo aprovecharlo utilizando
las herramientas de System.XML
Aprendimos a leer y escribir un archivo
Aprendimos a comprimir y descomprimir un archivo
Por último aprendimos a utilizar algunas clases del
namespace System.Collection
Sección
Notas del editor
La Clase System.Console ha sido actualizado con nuevas mejoras, que permiten la creación sofisticados de texto . Esto puede ser especialmente útil al proporcional una interfaz a los servicios que utilizan interfaces de texto
Representa texto; es decir, una serie de caracteres Unicode. Comentarios Una cadena es una colección secuencial de caracteres Unicode que normalmente se utilizan para representar texto, mientras que String es una colección secuencial de objetos System.Char que representan una cadena. El valor de String es el contenido de la colección secuencial, y este valor es inmutable. Se dice que String es inmutable porque su valor no puede modificarse una vez que se ha creado. Los métodos que aparentemente modifican una String devuelven en realidad una String nueva que contiene la modificación. Si realmente es necesario modificar el contenido de un objeto de tipo cadena, hay que utilizar la clase System.Text.StringBuilder . Los caracteres Unicode de una cadena se definen mediante un valor escalar Unicode, también denominado punto de código Unicode o valor ordinal (numérico) del carácter Unicode. Los puntos de código se codifican mediante UTF-16 y los valores numéricos de los elementos de la codificación se representan mediante Char . La colección resultante de objetos Char constituye String . Normalmente, un único Char representa un solo punto de código, es decir, el valor numérico de Char equivale al punto de código. Sin embargo, es posible que un punto de código requiera más de un elemento codificado. Por ejemplo, un punto de código adicional de Unicode (un par suplente) se codifica con dos objetos Char . Un índice es la posición de un Char en String , y no un carácter Unicode en sí mismo. Un índice es un número no negativo de base cero que comienza desde la primera posición de la cadena, que es la posición de índice cero. Los valores de índice consecutivos pueden no corresponderse con caracteres Unicode consecutivos, ya que un carácter Unicode puede estar codificado como más de un Char . Para trabajar con caracteres Unicode en lugar de trabajar con objetos Char , se utiliza la clase System.Globalization.StringInfo . Los miembros de String realizan una operación ordinal o lingüística en String . Una operación ordinal actúa sobre el valor numérico de cada objeto Char . Una operación lingüística actúa sobre el valor de String teniendo en cuenta el uso de mayúsculas y minúsculas, ordenación, formato y reglas de análisis específicos de la referencia cultural. Las operaciones lingüísticas se ejecutan en el contexto de una referencia cultural explícitamente declarada o de la referencia cultural implícita actual. Para obtener más información sobre la referencia cultural actual, vea el tema CultureInfo.CurrentCulture . Las reglas de las mayúsculas y minúsculas determinan la forma de cambiar un carácter Unicode de mayúsculas a minúsculas y viceversa. Las reglas de formato determinan la forma de convertir un valor en su representación de cadena, mientras que las reglas de análisis determinan la forma de convertir una representación de cadena en un valor. Las reglas de ordenación determinan el orden alfabético de los caracteres Unicode y la forma de comparar dos cadenas entre sí. Por ejemplo, el método Compare realiza una comparación lingüística, mientras que el método CompareOrdinal realiza una comparación ordinal. Como consecuencia, si la referencia cultural actual es el inglés de Estados Unidos, el método Compare considera que "a" es menor que "A", mientras que el método CompareOrdinal considera que "a" es mayor que "A". .NET Framework admite las reglas de ordenación de palabras, cadenas y ordinales. Una operación de ordenación de palabras realiza una comparación de cadenas donde se tiene en cuenta la referencia cultural y donde ciertos caracteres Unicode no alfanuméricos pueden tener asignados pesos especiales. Por ejemplo, el guión ("-") podría tener asignado un peso muy pequeño, por lo que las cadenas "coop" y "co-op" aparecerían una junto a la otra en una lista ordenada. Una operación de ordenación de cadenas es similar a una operación de ordenación de palabras, con la diferencia de que no hay casos especiales y todos los símbolos no alfanuméricos preceden a todos los caracteres Unicode alfanuméricos. Una operación de ordenación ordinal compara las cadenas basándose en el valor numérico de los Char de la cadena. Para obtener más información sobre las reglas de ordenación de palabras, cadenas y ordinales, vea el tema System.Globalization.CompareOptions . Los procedimientos de comparación y de búsqueda distinguen mayúsculas de minúsculas de forma predeterminada y utilizan la referencia cultural asociada al subproceso actual, salvo que se especifique de otra forma. Por definición, todas las cadenas, incluida la cadena vacía (""), son mayores que una referencia nula y dos referencias nulas son iguales entre sí. Si una aplicación toma decisiones de seguridad basándose en el resultado de una operación de comparación o de una operación de cambio de mayúsculas a minúsculas y viceversa, entonces la operación debe utilizar la referencia cultural de todos los idiomas (invariant) para garantizar que el resultado no se vea afectado por el valor de la referencia cultural actual. Para obtener más información, vea el tema CultureInfo.InvariantCulture . Para realizar comparaciones se utilizan los métodos Compare , CompareOrdinal , CompareTo , Equals , EndsWith y StartsWith . Para obtener el índice de un carácter Unicode o de una subcadena en una cadena, se utilizan los métodos IndexOf , IndexOfAny , LastIndexOf y LastIndexOfAny . Para copiar una cadena o subcadena en otra cadena o en una matriz de Char , se utilizan los métodos Copy y CopyTo . Para crear una o varias cadenas nuevas a partir de las partes de una cadena original, se utilizan los métodos Substring y Split , y para crear una nueva cadena a partir de una o varias subcadenas se utilizan los métodos Concat y Join . Para modificar toda una cadena o parte de ella, se utilizan los métodos Insert , Replace , Remove , PadLeft , PadRight , Trim , TrimEnd y TrimStart . Para cambiar los caracteres Unicode de una cadena de mayúsculas a minúsculas y viceversa, se utilizan los métodos ToLower y ToUpper respectivamente. Para sustituir uno o varios marcadores de posición en una cadena por la representación de cadena de uno o varios valores, se utiliza el método Format . Para obtener el número de objetos Char de una cadena se utiliza la propiedad Length y para obtener acceso a los objetos Char reales de una cadena se utiliza la propiedad Chars . String implementa las interfaces IComparable , ICloneable , IConvertible y IEnumerable . Utilice la clase Convert para las conversiones en lugar de la implementación de miembro de interfaz explícita de IConvertible de este tipo.
Representa texto; es decir, una serie de caracteres Unicode. Comentarios Una cadena es una colección secuencial de caracteres Unicode que normalmente se utilizan para representar texto, mientras que String es una colección secuencial de objetos System.Char que representan una cadena. El valor de String es el contenido de la colección secuencial, y este valor es inmutable. Se dice que String es inmutable porque su valor no puede modificarse una vez que se ha creado. Los métodos que aparentemente modifican una String devuelven en realidad una String nueva que contiene la modificación. Si realmente es necesario modificar el contenido de un objeto de tipo cadena, hay que utilizar la clase System.Text.StringBuilder . Los caracteres Unicode de una cadena se definen mediante un valor escalar Unicode, también denominado punto de código Unicode o valor ordinal (numérico) del carácter Unicode. Los puntos de código se codifican mediante UTF-16 y los valores numéricos de los elementos de la codificación se representan mediante Char . La colección resultante de objetos Char constituye String . Normalmente, un único Char representa un solo punto de código, es decir, el valor numérico de Char equivale al punto de código. Sin embargo, es posible que un punto de código requiera más de un elemento codificado. Por ejemplo, un punto de código adicional de Unicode (un par suplente) se codifica con dos objetos Char . Un índice es la posición de un Char en String , y no un carácter Unicode en sí mismo. Un índice es un número no negativo de base cero que comienza desde la primera posición de la cadena, que es la posición de índice cero. Los valores de índice consecutivos pueden no corresponderse con caracteres Unicode consecutivos, ya que un carácter Unicode puede estar codificado como más de un Char . Para trabajar con caracteres Unicode en lugar de trabajar con objetos Char , se utiliza la clase System.Globalization.StringInfo . Los miembros de String realizan una operación ordinal o lingüística en String . Una operación ordinal actúa sobre el valor numérico de cada objeto Char . Una operación lingüística actúa sobre el valor de String teniendo en cuenta el uso de mayúsculas y minúsculas, ordenación, formato y reglas de análisis específicos de la referencia cultural. Las operaciones lingüísticas se ejecutan en el contexto de una referencia cultural explícitamente declarada o de la referencia cultural implícita actual. Para obtener más información sobre la referencia cultural actual, vea el tema CultureInfo.CurrentCulture . Las reglas de las mayúsculas y minúsculas determinan la forma de cambiar un carácter Unicode de mayúsculas a minúsculas y viceversa. Las reglas de formato determinan la forma de convertir un valor en su representación de cadena, mientras que las reglas de análisis determinan la forma de convertir una representación de cadena en un valor. Las reglas de ordenación determinan el orden alfabético de los caracteres Unicode y la forma de comparar dos cadenas entre sí. Por ejemplo, el método Compare realiza una comparación lingüística, mientras que el método CompareOrdinal realiza una comparación ordinal. Como consecuencia, si la referencia cultural actual es el inglés de Estados Unidos, el método Compare considera que "a" es menor que "A", mientras que el método CompareOrdinal considera que "a" es mayor que "A". .NET Framework admite las reglas de ordenación de palabras, cadenas y ordinales. Una operación de ordenación de palabras realiza una comparación de cadenas donde se tiene en cuenta la referencia cultural y donde ciertos caracteres Unicode no alfanuméricos pueden tener asignados pesos especiales. Por ejemplo, el guión ("-") podría tener asignado un peso muy pequeño, por lo que las cadenas "coop" y "co-op" aparecerían una junto a la otra en una lista ordenada. Una operación de ordenación de cadenas es similar a una operación de ordenación de palabras, con la diferencia de que no hay casos especiales y todos los símbolos no alfanuméricos preceden a todos los caracteres Unicode alfanuméricos. Una operación de ordenación ordinal compara las cadenas basándose en el valor numérico de los Char de la cadena. Para obtener más información sobre las reglas de ordenación de palabras, cadenas y ordinales, vea el tema System.Globalization.CompareOptions . Los procedimientos de comparación y de búsqueda distinguen mayúsculas de minúsculas de forma predeterminada y utilizan la referencia cultural asociada al subproceso actual, salvo que se especifique de otra forma. Por definición, todas las cadenas, incluida la cadena vacía (""), son mayores que una referencia nula y dos referencias nulas son iguales entre sí. Si una aplicación toma decisiones de seguridad basándose en el resultado de una operación de comparación o de una operación de cambio de mayúsculas a minúsculas y viceversa, entonces la operación debe utilizar la referencia cultural de todos los idiomas (invariant) para garantizar que el resultado no se vea afectado por el valor de la referencia cultural actual. Para obtener más información, vea el tema CultureInfo.InvariantCulture . Para realizar comparaciones se utilizan los métodos Compare , CompareOrdinal , CompareTo , Equals , EndsWith y StartsWith . Para obtener el índice de un carácter Unicode o de una subcadena en una cadena, se utilizan los métodos IndexOf , IndexOfAny , LastIndexOf y LastIndexOfAny . Para copiar una cadena o subcadena en otra cadena o en una matriz de Char , se utilizan los métodos Copy y CopyTo . Para crear una o varias cadenas nuevas a partir de las partes de una cadena original, se utilizan los métodos Substring y Split , y para crear una nueva cadena a partir de una o varias subcadenas se utilizan los métodos Concat y Join . Para modificar toda una cadena o parte de ella, se utilizan los métodos Insert , Replace , Remove , PadLeft , PadRight , Trim , TrimEnd y TrimStart . Para cambiar los caracteres Unicode de una cadena de mayúsculas a minúsculas y viceversa, se utilizan los métodos ToLower y ToUpper respectivamente. Para sustituir uno o varios marcadores de posición en una cadena por la representación de cadena de uno o varios valores, se utiliza el método Format . Para obtener el número de objetos Char de una cadena se utiliza la propiedad Length y para obtener acceso a los objetos Char reales de una cadena se utiliza la propiedad Chars . String implementa las interfaces IComparable , ICloneable , IConvertible y IEnumerable . Utilice la clase Convert para las conversiones en lugar de la implementación de miembro de interfaz explícita de IConvertible de este tipo.
El tipo de valor DateTime representa fechas y horas cuyos valores están comprendidos entre la medianoche (12:00:00) del 1 de enero de 0001 d.C. (era cristiana) y las 11:59:59 de la noche del 31 de diciembre de 9999 d.C. (era cristiana). Los valores de hora se miden en unidades de 100 nanosegundos, denominadas pasos, y una fecha concreta es el número de pasos transcurridos desde las 12:00 de la noche del 1 de enero de 1 d.C. (era cristiana) en el calendario GregorianCalendar . Por ejemplo, un valor en pasos de 31241376000000000L representa la fecha de viernes, 1 de enero de 0100 a las 12:00:00 de la noche. Un valor DateTime siempre se expresa en el contexto de un calendario explícito o predeterminado. Los tipos de valor DateTime y TimeSpan se diferencian en que DateTime representa un instante de tiempo, mientras que TimeSpan representa un intervalo de tiempo. Esto significa, por ejemplo, que se puede restar una instancia de DateTime de otra para obtener el intervalo de tiempo entre ambas. O bien, se podría agregar un TimeSpan positivo al DateTime actual para calcular una fecha futura. A una instancia de DateTime se le pueden sumar y restar valores de tiempo. Los valores de tiempo pueden ser positivos o negativos, y pueden expresarse en unidades tales como pasos, segundos o instancias de TimeSpan . Los métodos y las propiedades de este tipo de valor tienen en cuenta una serie de detalles, como los años bisiestos y el número de días de un mes. Las descripciones de valores de tiempo de este tipo suelen expresarse utilizando el estándar de hora universal coordinada (UTC), que antes se denominaba hora media de Greenwich (GMT). Los cálculos y las comparaciones de instancias de DateTime sólo tienen significado si las instancias se crean en la misma zona horaria. Por este motivo, se da por sentado que el programador dispone de algún mecanismo externo, como una variable o una directiva explícita, para saber en qué zona horaria se creó un DateTime . A la hora de realizar cálculos o comparaciones, los métodos y las propiedades de esta estructura utilizan siempre la zona horaria local. Cuando se realiza un cálculo en una instancia de DateTime , como Add o Subtract , el valor de la instancia no se modifica. En lugar de ello, el cálculo devuelve una nueva instancia de DateTime cuyo valor es el resultado del cálculo. Cada miembro de DateTime usa de forma implícita el calendario gregoriano para realizar su operación, con la excepción de los constructores que especifican un calendario y los métodos que indican implícitamente un calendario con un parámetro derivado de IFormatProvider ; por ejemplo, System.Globalization.DateTimeFormatInfo . Utilice la clase System.Globalization.Calendar para realizar las operaciones de fecha y hora con un calendario diferente. Este tipo se hereda de IComparable , IFormattable e IConvertible . Utilice la clase Convert para las conversiones en lugar de la implementación de miembro de interfaz explícita de IConvertible de este tipo.
El tipo de valor DateTime representa fechas y horas cuyos valores están comprendidos entre la medianoche (12:00:00) del 1 de enero de 0001 d.C. (era cristiana) y las 11:59:59 de la noche del 31 de diciembre de 9999 d.C. (era cristiana). Los valores de hora se miden en unidades de 100 nanosegundos, denominadas pasos, y una fecha concreta es el número de pasos transcurridos desde las 12:00 de la noche del 1 de enero de 1 d.C. (era cristiana) en el calendario GregorianCalendar . Por ejemplo, un valor en pasos de 31241376000000000L representa la fecha de viernes, 1 de enero de 0100 a las 12:00:00 de la noche. Un valor DateTime siempre se expresa en el contexto de un calendario explícito o predeterminado. Los tipos de valor DateTime y TimeSpan se diferencian en que DateTime representa un instante de tiempo, mientras que TimeSpan representa un intervalo de tiempo. Esto significa, por ejemplo, que se puede restar una instancia de DateTime de otra para obtener el intervalo de tiempo entre ambas. O bien, se podría agregar un TimeSpan positivo al DateTime actual para calcular una fecha futura. A una instancia de DateTime se le pueden sumar y restar valores de tiempo. Los valores de tiempo pueden ser positivos o negativos, y pueden expresarse en unidades tales como pasos, segundos o instancias de TimeSpan . Los métodos y las propiedades de este tipo de valor tienen en cuenta una serie de detalles, como los años bisiestos y el número de días de un mes. Las descripciones de valores de tiempo de este tipo suelen expresarse utilizando el estándar de hora universal coordinada (UTC), que antes se denominaba hora media de Greenwich (GMT). Los cálculos y las comparaciones de instancias de DateTime sólo tienen significado si las instancias se crean en la misma zona horaria. Por este motivo, se da por sentado que el programador dispone de algún mecanismo externo, como una variable o una directiva explícita, para saber en qué zona horaria se creó un DateTime . A la hora de realizar cálculos o comparaciones, los métodos y las propiedades de esta estructura utilizan siempre la zona horaria local. Cuando se realiza un cálculo en una instancia de DateTime , como Add o Subtract , el valor de la instancia no se modifica. En lugar de ello, el cálculo devuelve una nueva instancia de DateTime cuyo valor es el resultado del cálculo. Cada miembro de DateTime usa de forma implícita el calendario gregoriano para realizar su operación, con la excepción de los constructores que especifican un calendario y los métodos que indican implícitamente un calendario con un parámetro derivado de IFormatProvider ; por ejemplo, System.Globalization.DateTimeFormatInfo . Utilice la clase System.Globalization.Calendar para realizar las operaciones de fecha y hora con un calendario diferente. Este tipo se hereda de IComparable , IFormattable e IConvertible . Utilice la clase Convert para las conversiones en lugar de la implementación de miembro de interfaz explícita de IConvertible de este tipo.
1.- Vista general de XML El código html permite insertar menús, tablas, imágenes o bases de datos en los documentos, pero no permite al usuario que maneje esos elementos como mejor le convenga con la poderosa ayuda del ordenador. Esa es la principal novedad que XML aporta. Con HTML se pueden hacer accesos a información comparativa en diferentes tiendas por ejemplo, pero nada más. Con XML el usuario podrá ordenar los datos o actualizarlos en tiempo real o realizar un pedido. La información que manejan las empresas es uno de sus principales activos. Pero lo normal es que esa información esté fragmentada, en diferentes departamentos, ordenadores conectados o no, etc. El reto ahora está en interrelacionar toda esa información para rendir todo su potencial y ponerlo a trabajar para aumentar los beneficios o reducir los costes. Para realizar esto se necesita un estandar de almacenamiento estructurado que es lo que nos ofrece XML. Una gran cantidad de gente ha oido hablar ultimamente de XML y mucha gente que es una especie de HTML pero más avanzado. Pero todo el mundo lo que debería preguntarse es qué es exactamente XML y qué aplicaciones tiene actualmente. De estas dos cuestiones el mayor error que se suele cometer es considerar a XML un HTML extendido. Lo que si tenemos más o menos claro es que XML es un lenguaje de Marcas, pero qué es exactamente un lenguaje de marcas. arriba 1.1.- Lenguajes de Marcas En los años 60, IBM intentó resolver sus problemas asociados al tratamiento de documentos en diferentes plataformas a través de GML ( Generalized markup Language ). El principal problema era que cada aplicación utilizaba sus propias marcas para describir los diferentes elementos. Las marcas son códigos que indican a un programa cómo debe tratar su contenido y así, si se desea que un texto aparezca con un formato determinado, dicho texto debe ir delimitado por la correspondiente marca que indique como debe ser mostrado en pantalla o impreso. Y lo mismo ocurre con todas las demás características de cualquier texto. Ejemplos pueden tenerlos en mente los usuarios de WordPerfect. Conociendo este sistema y conociendo a la perfección el sistema de marcas de cada aplicación sería posible pasar información de un sistema a otro sin necesidad de perder el formato indicado. La forma que IBM creó para solventar esto se basaba en tratar las marcas como texto accesible desde cualquier sistema, texto plano, código ASCII. Y la norma se denominó GML (General Modeling Language). Más tarde GML pasó a manos de ISO y se convirtio en SGML ( ISO 8879), Standart Generalized Markup Language. Esta norma es la que se aplica desde entonces a todos los lenguajes de marcas, cuyos ejemplos más conocidos son el HTML y el RTF. Los lenguajes de marcas no son equivalentes a los lenguajes de programación aunque se definan igualmente como "lenguajes". Son sistemas complejos de descripción de información, normalmente documentos, que si se ajustan a SGML, se pueden controlar desde cualquier editor ASCII. Las marcas más utilizadas suelen describirse por textos descriptivos encerrados entre signos de "menor" (<) y "mayor" (>), siendo lo más usual que existan una marca de principio y otra de final. Se puede decir que existen tres utilizaciones básicas de los lenguajes de marcas: los que sirven principalmente para describir su contenido, los que sirven más que nada para definir su formato y los que realizan las dos funciones indistintamente. Las aplicaciones de bases de datos son buenas referencias del primer sistema, los programas de tratamiento de textos son ejemplos típicos del segundo tipo, y aunque no lo parezca, el HTML es la muestra más conocida del tercer modelo. arriba ¿Qué es XML? XML, es el estandar de Extensible Markup Language. XML no es más que un conjunto de reglas para definir etiquetas semánticas que nos organizan un documento en diferentes partes. XML es un metalenguaje que define la sintaxis utilizada para definir otros lenguajes de etiquetas estructurados. En primer lugar para entenderlo bien hay que olvidarse un poco, sólo un poco de HTML. En teoría HTML es un subconjunto de XML especializado en presentación de documentos para la Web, mientras que XML es un subconjunto de SGML especializado en la gestión de información para la Web. En la práctica XML contiene a HTML aunque no en su totalidad. La definición de HTML contenido totalmente dentro de XML y por lo tanto que cumple a rajatabla la especificación SGML es XHTML (Extensible, Hypertext Markup Language). Desde su creación, XML ha despertado encontradas pasiones, y como para cualquier tema en Internet, hay gente que desde el principio se deja iluminar por sus expectativas, mientras otras muchas lo han ignorado. arriba Historía y Objetivos XML fue creado al amparo del Word Wide Web Consortium (W3C) organismo que vela por el desarrollo de WWW partiendo de las amplias especificaciones de SGML. Su desarrollo se comenzó en 1996 y la primera versión salió a la luz el 10 de febrero de 1998. La primera definición que apareció fue: Sistema para definir validar y compartir formatos de documentos en la web . Durante el año 1998 XML tuvo un crecimiento exponencial, y con ello me refiero a sus apericiones en medios de comunicación, menciones en páginas web, soporte software, etc. Respecto a sus objetivos son: XML debe ser directamente utilizable sobre Internet. XML debe soportar una amplia variedad de aplicaciones. XML debe ser compatible con SGML. Debe ser fácil la escritura de programas que procesen documentos XML. El número de características opcionales en XML debe ser absolutamente mínima, idealmente cero. Los documentos XML deben ser legibles por humanos y razonablemente claros. El diseño de XML debe ser preparado rápidamente. El diseño de XML debe ser formal y conciso. Los documentos XML deben ser fácilmente creables. La concisión en las marcas XML es de mínima importancia. Esta especificación, junto con los estándares asociados (Unicode e ISO/IEC 10646 para caracteres, Internet RFC 1766 para identificación de lenguajes, ISO 639 para códigos de nombres de lenguajes, e ISO 3166 para códigos de nombres de países), proporciona toda la información necesaria para entender la Versión 1.0 de XML y construir programas de computador que los procesen. arriba Principales características Es una arquitectura más abierta y extensible. No se necesita versiones para que puedan funcionar en futuros navegadores. Los identificadores pueden crearse de manera simple y ser adaptados en el acto en internet/intranet por medio de un validador de documentos (parser). Mayor consistencia, homogeneidad y amplitud de los identificadores descriptivos del documento con XML (los RDF Resource Description FrameWork), en comparación a los atributos de la etiqueta <META> del HTML. Integración de los datos de las fuentes mas dispares. Se podrá hacer el intercambio de documentos entre las aplicaciones tanto en el propio PC como en una red local o extensa. Datos compuestos de múltiples aplicaciones. La extensibilidad y flexibilidad de este lenguaje nos permitirá agrupar una variedad amplia de aplicaciones, desde páginas web hasta bases de datos. Gestión y manipulación de los datos desde el propio cliente web. Los motores de búsqueda devolverán respuestas más adecuadas y precisas, ya que la codificación del contenido web en XML consigue que la estructura de la información resulte más accesible. Se desarrollarán de manera extensible las búsquedas personalizables y subjetivas para robots y agentes inteligentes. También conllevará que los clientes web puedan ser más autónomos para desarrollar tareas que actualmente se ejecutan en el servidor. Se permitirá un comportamiento más estable y actualizable de las aplicaciones web, incluyendo enlaces bidireccionales y almacenados de forma externa (El famoso epígrafe "404 file not found" desaparecerá). El concepto de "hipertexto" se desarrollará ampliamente (permitirá denominación independiente de la ubicación, enlaces bidireccionales, enlaces que pueden especificarse y gestionarse desde fuera del documento, hiperenlaces múltiples, enlaces agrupados, atributos para los enlaces, etc. Creado a través del Lenguaje de enlaces extensible (XLL). Exportabilidad a otros formatos de publicación (papel, web, cd-rom, etc.). El documento maestro de la edición electrónica podría ser un documento XML que se integraría en el formato deseado de manera directa.
Introducción a XML Antes de continuar es necesario hacer una pequeña introducción a XML ya que que es el lenguaje en que se han de escribir los comentarios especiales de documentación. Si ya conoce este lenguaje puede saltarse este epígrafe. XML (Extensible Markup Language) es un metalenguaje de etiquetas , lo que significa que es un lenguaje que se utiliza para definir lenguajes de etiquetas. A cada lenguaje creado con XML se le denomina vocabulario XML , y la documentación generada por el compilador de C# está escrita en un vocabulario de este tipo. Los comentarios a partir de los que el compilador generará la documentación han de escribirse en XML, por lo que han de respetar las siguientes reglas comunes a todo documento XML bien formado: La información ha de incluirse dentro de etiquetas , que son estructuras de la forma: < <etiqueta> > <contenido> </ <etiqueta > En <etiqueta> se indica cuál es el nombre de la etiqueta a usar. Por ejemplo: <EtiquetaEjemplo> Esto es una etiqueta de ejemplo </EtiquetaEjemplo> Como <contenido> de una etiqueta puede incluirse tanto texto plano (es el caso del ejemplo) como otras etiquetas. Lo que es importante es que toda etiqueta cuyo uso comience dentro de otra también ha de terminar dentro de ella. O sea, no es válido: <Etiqueta1> <Etiqueta2> </Etiqueta1></Eetiqueta2> Pero lo que sí sería válido es: <Etiqueta1> <Etiqueta2> </Etiqueta2></Etiqueta1> También es posible mezclar texto y otras etiquetas en <contenido>. Por ejemplo: <Etiqueta1> Hola <Etiqueta2> a </Etiqueta2> todos </Etiqueta1> XML es un lenguaje sensible a mayúsculas, por lo que si una etiqueta se abre con una cierta capitalización, a la hora de cerrarla habrá que usar exactamente la misma. Es posible usar la siguiente sintaxis abreviada para escribir etiquetas sin <contenido>: < <etiqueta> /> Por ejemplo: <<EtiquetaSinContenidoDeEjemplo>/> En realidad en la <etiqueta> inicial no tiene porqué indicarse sólo un identificador que sirva de nombre para la etiqueta usada, sino que también pueden indicarse atributos que permitan configurar su significado. Estos atributos se escriben de la forma <nombreAtributo> = " <valor> " y separados mediante espacios. Por ejemplo: <EtiquetaConAtributo AtributoEjemplo="valor1" > Etiqueta de ejemplo que incluye un atributo </EtiquetaConAtributo> <EtiquetaSinContenidoYConAtributo AtributoEjemplo="valor2" /> Sólo puede utilizarse caracteres ASCII, y los caracteres no ASCII (acentos, eñes, ...) o caracteres con algún significado especial en XML han de ser sustituidos por secuencias de escape de la forma &# <códigoUnicode> ; . Para los caracteres más habituales también se han definido las siguientes secuencias de escape especiales:
XML en .NET Framework El lenguaje de marcado extensible (XML) es un metalenguaje de marcado que proporciona un formato para describir datos estructurados. XML habilita una nueva generación de aplicaciones de presentación y manipulación de datos basadas en Web. Es el lenguaje universal para datos en el Web. XML proporciona a los programadores la capacidad de ofrecer datos estructurados desde muchas aplicaciones al sistema local con el fin de trabajar localmente con ellos. Espacio de nombres System.Xml Este conjunto de temas trata el uso de las clases XML del espacio de nombres System.Xml. Este espacio de nombres tiene un conjunto completo de clases XML para análisis, validación y manipulación de datos XML mediante sistemas de lectura, sistemas de escritura y componentes compatibles con el consorcio World Wide Web (W3C) DOM. También se explican las consultas XPath (XML Path Language) y las transformaciones XSLT (Extensible Stylesheet Language Transformations). La lista siguiente contiene las clases principales del espacio de nombres XML: La clase XmlTextReader proporciona acceso rápido de lectura, sin almacenamiento en caché y con desplazamiento sólo hacia delante a datos XML. La clase XmlNodeReader proporciona un objeto XmlReader a través del subárbol de nodo DOM dado. La clase XmlValidatingReader proporciona validación de esquemas DTD, XDR y XSD. La clase XmlTextWriter proporciona una forma rápida y de desplazamiento sólo hacia delante para generar código XML. La clase XmlDocument implementa las especificaciones W3C Document Object Model level 1 Core y Core DOM Level 2 La clase XmlDataDocument proporciona una implementación de un objeto XmlDocument que se puede asociar a un objeto DataSet. Los datos XML estructurados se pueden ver y manipular simultáneamente a través de la representación relacional del objeto DataSet o de la representación de árbol del objeto XmlDataDocument. Vea el tema Utilizar datos XML y la clase DataSet La clase XPathDocument proporciona una caché rápida y de alto rendimiento con el fin de procesar documentos XML para XSLT. La clase XPathNavigator proporciona un modelo de datos W3C XPath 1.0 sobre un almacén con un modelo de desplazamiento de tipo cursor. La clase XslTransform corresponde a un procesador XSLT compatible con la especificación W3C XSLT 1.0 con el fin de transformar documentos XML. Las clases del modelo de objetos XmlSchema proporcionan un conjunto de clases que se pueden examinar y que reflejan directamente la especificación W3C XSD. Proporcionan la capacidad de crear esquemas XSD mediante programación. La clase XmlSchemaCollection proporciona una biblioteca de esquemas XDR y XSD. Estos esquemas, almacenados en memoria, proporcionan validación rápida en tiempo de análisis para el objeto XmlValidatingReader.
El espacio de nombres System.Xml proporciona compatibilidad basada en normas para procesar XML. Se admiten las siguientes normas: XmlReader proporciona acceso de sólo lectura y con desplazamiento sólo hacia delante a una secuencia de datos XML. El nodo actual hace referencia al nodo en el que está situado el lector. Para avanzar el lector, utilice cualquiera de los métodos de lectura y las propiedades reflejan el valor del nodo actual. XmlWriter es una clase base abstracta que define una interfaz para escribir código XML. La clase XmlWriter proporciona un modo de sólo lectura, de tipo sólo hacia adelante y sin almacenamiento en caché para generar secuencias XML, que puede servir de ayuda en la creación de documentos XML que se ajustan a las recomendaciones del W3C (www.w3.org/TR/2000/REC-xml-20001006.html) acerca de XML 1.0, Second Edition, y de los espacios de nombres en XML (www.w3.org/TR/REC-xml-names/). En la lista siguiente se muestra el propósito de los métodos y propiedades que incluye la clase XmlWriter : Especificar si se debe permitir el uso de espacios de nombres. Escribir código XML con un formato correcto. Codificar bytes binarios en Base64 y BinHex, y escribir el texto resultante. Administrar la salida, lo que incluye a los métodos para determinar su progreso, con la propiedad WriteState . Escribir varios documentos en una secuencia de salida. Vaciar o cerrar la secuencia de salida. Informar del prefijo de espacio de nombres actual, xml:lang , o el ámbito de xml:space . Escribir nombres válidos, nombres completos y símbolos ( tokens ) de nombres. En la lista siguiente se identifican los elementos que la clase XmlWriter no comprueba: Los caracteres no válidos de los nombres de atributos y elementos. Los caracteres Unicode que no se ajustan a la codificación especificada. Si los caracteres Unicode no se ajustan a la codificación especificada, la clase XmlWriter no establece secuencias de escape para ellos en entidades de carácter. Atributos duplicados. Caracteres del identificador público DOCTYPE o del identificador del sistema.
El espacio de nombres System.IO contiene tipos que permiten leer y escribir en los archivos y secuencias de datos, así como tipos que proporcionan compatibilidad básica con los archivos y directorios. Contenido de System.IO Clases: BinaryReader Lee tipos de datos primitivos como valores binarios en una codificación específica. BinaryWriter Escribe tipos primitivos en binario en una secuencia y admite escribir cadenas en una codificación específica. BufferedStream Agrega una capa de almacenamiento en búfer a las operaciones de lectura y escritura en otra secuencia. No se puede heredar esta clase. Directory Expone métodos estáticos para crear, mover y enumerar archivos en directorios y subdirectorios. DirectoryInfo Expone métodos de instancia para crear, mover y enumerar archivos en directorios y subdirectorios. DirectoryNotFoundException Excepción que se inicia cuando no encuentra parte de un archivo o directorio. EndOfStreamException Excepción que se inicia cuando se intenta realizar una operación de lectura más allá del final de una secuencia. ErrorEventArgs Proporciona datos para el evento Error. File Proporciona métodos estáticos para crear, copiar, eliminar, mover y abrir archivos y contribuye a la creación de objetos FileStream. FileInfo Proporciona métodos de instancia para crear, copiar, eliminar, mover y abrir archivos y contribuye a la creación de objetos FileStream. FileLoadException Excepción que se inicia cuando se encuentra un ensamblado administrado que no se puede cargar. FileNotFoundException Excepción que se inicia cuando se produce un error al intentar tener acceso a un archivo que no existe en el disco. FileStream Expone un objeto Stream alrededor de un archivo; se admiten operaciones de lectura y escritura sincrónica y asincrónica. FileSystemEventArgs Proporciona datos para los eventos de directorio Changed, Created y Deleted. FileSystemInfo Proporciona la clase base para los objetos FileInfo y DirectoryInfo. FileSystemWatcher Escucha las notificaciones de cambio del sistema de archivos y provoca eventos cuando cambia un directorio o un archivo de un directorio. InternalBufferOverflowException Excepción iniciada cuando se desborda el búfer interno. IODescriptionAttribute Establece la descripción que los diseñadores visuales pueden mostrar cuando se hace referencia a un evento, un extensor o una propiedad. IOException Excepción que se inicia cuando se produce un error de E/S. MemoryStream Crea una secuencia cuyo almacén de respaldo es la memoria. Path Ejecuta operaciones en instancias de String que contienen información de rutas de archivos o directorios. Estas operaciones se ejecutan de forma adecuada para múltiples plataformas. PathTooLongException Excepción que se inicia cuando un nombre de ruta de acceso o un nombre de archivo es más largo que la longitud máxima definida por el sistema. RenamedEventArgs Proporciona datos para el evento Renamed. Stream Proporciona una vista genérica de una secuencia de bytes. StreamReader Implementa un TextReader que lee los caracteres de una secuencia de bytes en una codificación determinada. StreamWriter Implementa TextWriter para escribir los caracteres de una secuencia en una codificación determinada. StringReader Implementa TextReader que lee en una cadena. StringWriter Implementa TextWriter para escribir información en una cadena. La información se almacena en el StringBuilder subyacente. TextReader Representa un lector que puede leer una serie secuencial de caracteres. TextWriter Representa un sistema de escritura que puede escribir una serie secuencial de caracteres. Esta clase es abstracta. Estructuras: WaitForChangedResult Contiene información acerca del cambio producido. Delegados: ErrorEventHandler Representa el método que controlará el evento Error de un objeto FileSystemWatcher. FileSystemEventHandler Representa el método que controlará el evento Changed, Created o Deleted de una clase FileSystemWatcher. RenamedEventHandler Representa el método que controlará el evento Renamed de una clase FileSystemWatcher. Enumeraciones: FileAccess Define constantes para accesos de lectura, de escritura o de lectura y escritura a un archivo. FileAttributes Proporciona atributos para archivos y directorios. FileMode Especifica cómo debe abrir un archivo el sistema operativo. FileShare Contiene constantes para controlar el tipo de acceso que otros FileStreams puedan tener al mismo archivo. NotifyFilters Especifica los cambios que se van a buscar en un archivo o una carpeta. SeekOrigin Proporciona los campos que representan puntos de referencia en las secuencias para realizar búsquedas seek. WatcherChangeTypes Cambios que pueden producirse en un archivo o directorio.
El espacio de nombres System.IO contiene tipos que permiten leer y escribir en los archivos y secuencias de datos, así como tipos que proporcionan compatibilidad básica con los archivos y directorios. Contenido de System.IO Clases: BinaryReader Lee tipos de datos primitivos como valores binarios en una codificación específica. BinaryWriter Escribe tipos primitivos en binario en una secuencia y admite escribir cadenas en una codificación específica. BufferedStream Agrega una capa de almacenamiento en búfer a las operaciones de lectura y escritura en otra secuencia. No se puede heredar esta clase. Directory Expone métodos estáticos para crear, mover y enumerar archivos en directorios y subdirectorios. DirectoryInfo Expone métodos de instancia para crear, mover y enumerar archivos en directorios y subdirectorios. DirectoryNotFoundException Excepción que se inicia cuando no encuentra parte de un archivo o directorio. EndOfStreamException Excepción que se inicia cuando se intenta realizar una operación de lectura más allá del final de una secuencia. ErrorEventArgs Proporciona datos para el evento Error. File Proporciona métodos estáticos para crear, copiar, eliminar, mover y abrir archivos y contribuye a la creación de objetos FileStream. FileInfo Proporciona métodos de instancia para crear, copiar, eliminar, mover y abrir archivos y contribuye a la creación de objetos FileStream. FileLoadException Excepción que se inicia cuando se encuentra un ensamblado administrado que no se puede cargar. FileNotFoundException Excepción que se inicia cuando se produce un error al intentar tener acceso a un archivo que no existe en el disco. FileStream Expone un objeto Stream alrededor de un archivo; se admiten operaciones de lectura y escritura sincrónica y asincrónica. FileSystemEventArgs Proporciona datos para los eventos de directorio Changed, Created y Deleted. FileSystemInfo Proporciona la clase base para los objetos FileInfo y DirectoryInfo. FileSystemWatcher Escucha las notificaciones de cambio del sistema de archivos y provoca eventos cuando cambia un directorio o un archivo de un directorio. InternalBufferOverflowException Excepción iniciada cuando se desborda el búfer interno. IODescriptionAttribute Establece la descripción que los diseñadores visuales pueden mostrar cuando se hace referencia a un evento, un extensor o una propiedad. IOException Excepción que se inicia cuando se produce un error de E/S. MemoryStream Crea una secuencia cuyo almacén de respaldo es la memoria. Path Ejecuta operaciones en instancias de String que contienen información de rutas de archivos o directorios. Estas operaciones se ejecutan de forma adecuada para múltiples plataformas. PathTooLongException Excepción que se inicia cuando un nombre de ruta de acceso o un nombre de archivo es más largo que la longitud máxima definida por el sistema. RenamedEventArgs Proporciona datos para el evento Renamed. Stream Proporciona una vista genérica de una secuencia de bytes. StreamReader Implementa un TextReader que lee los caracteres de una secuencia de bytes en una codificación determinada. StreamWriter Implementa TextWriter para escribir los caracteres de una secuencia en una codificación determinada. StringReader Implementa TextReader que lee en una cadena. StringWriter Implementa TextWriter para escribir información en una cadena. La información se almacena en el StringBuilder subyacente. TextReader Representa un lector que puede leer una serie secuencial de caracteres. TextWriter Representa un sistema de escritura que puede escribir una serie secuencial de caracteres. Esta clase es abstracta. Estructuras: WaitForChangedResult Contiene información acerca del cambio producido. Delegados: ErrorEventHandler Representa el método que controlará el evento Error de un objeto FileSystemWatcher. FileSystemEventHandler Representa el método que controlará el evento Changed, Created o Deleted de una clase FileSystemWatcher. RenamedEventHandler Representa el método que controlará el evento Renamed de una clase FileSystemWatcher. Enumeraciones: FileAccess Define constantes para accesos de lectura, de escritura o de lectura y escritura a un archivo. FileAttributes Proporciona atributos para archivos y directorios. FileMode Especifica cómo debe abrir un archivo el sistema operativo. FileShare Contiene constantes para controlar el tipo de acceso que otros FileStreams puedan tener al mismo archivo. NotifyFilters Especifica los cambios que se van a buscar en un archivo o una carpeta. SeekOrigin Proporciona los campos que representan puntos de referencia en las secuencias para realizar búsquedas seek. WatcherChangeTypes Cambios que pueden producirse en un archivo o directorio.
El namespaces System.IO.Compression contiene dos clases que provee soporte para la compresion y descompresion de streams. GZipStream usa el algorítmo estándar Gzip, especificado en el RFC 1952. DeflateStream usa el algoritmo LZW77 con el encoding Huffman, es que especificado en el RFC 1951. Ámbas clases pueden ser extendidas para usar otros método de compresion, si es requerido. Nota: que las clases aquí mencionadas no soportan para trabajar con archivos comprimidos. El codigo de ejemplo mostrado muestra como lee los datos comprimidos de un archivo y lo descomprime. Noque como los datos son canalizados desde el FileStream, por el GZipStream en moso de descompresion, al StreamReader.
SortedList es un híbrido entre Hashtable y Array . Cuando se obtiene acceso a un elemento mediante su clave utilizando la propiedad del indizador Item , se comporta como Hashtable . Cuando se obtiene acceso a un elemento mediante su clave utilizando GetByIndex o SetByIndex , se comporta como Array . SortedList mantiene internamente dos matrices para almacenar los elementos de la lista; es decir, una matriz para las claves y otra para los valores asociados. Cada elemento es un par de clave y valor al que se puede tener acceso como objeto DictionaryEntry . Una clave no puede ser una referencia nula ( Nothing en Visual Basic), pero un valor sí puede serlo. La capacidad de SortedList es el número de elementos que puede contener la lista. Conforme se agregan elementos a SortedList , la capacidad aumenta automáticamente según lo requiera la reasignación. La capacidad puede reducirse llamando a TrimToSize o estableciendo la propiedad Capacity de forma explícita. HashTable Cada elemento es un par de clave y valor almacenado en un objeto DictionaryEntry. Una clave no puede ser una referencia nula ( Nothing en Visual Basic), pero un valor sí puede serlo. Los objetos utilizados como claves en Hashtable deben implementar o heredar los métodos Object.GetHashCode y Object.Equals. Si la igualdad de clave fuera solamente igualdad de referencia, la implementación heredada de estos métodos sería suficiente. Asimismo, estos métodos deben dar los mismos resultados cuando se llamen con los mismos parámetros mientras la clave esté incluida en Hashtable . Los objetos de claves deben permanecer inmutables mientras se utilicen como claves en Hashtable . Cuando se agrega un elemento a Hashtable , el elemento se coloca en un sector de almacenamiento en función del código hash de la clave. Las búsquedas posteriores de la clave utilizarán su código hash para buscar en un sector de almacenamiento determinado solamente; de este modo, se reducirá considerablemente el número de comparaciones de clave necesarias para encontrar un elemento. El factor de carga de Hashtable determina la relación máxima de elementos por sectores de almacenamiento. Factores de carga más pequeños causan tiempos de búsqueda más largos a costa de un mayor consumo de memoria. El factor de carga predeterminado de 1,0 suele proporcionar el mejor equilibrio entre velocidad y tamaño. También se puede especificar un factor de carga diferente cuando se cree Hashtable . Conforme se agregan elementos a Hashtable , va aumentando el factor de carga real de Hashtable . Cuando el factor de carga real alcanza el factor de carga especificado, el número de sectores de almacenamiento en Hashtable aumenta automáticamente al número primo más pequeño que sea superior al doble del número actual de sectores de almacenamiento de Hashtable .
Ultimo slide de cada sección, es un resumen de todos los temas