L1. Conceptos de Serialización Serialización: Proceso de convertir un objeto en una secuencia de Bytes Stream: Una secuencia de Bytes La Serialización permite almacenar físicamente un objeto y por lo tanto mantener el Estado de una aplicación OBS: Descerializar es el proceso inverso Espacio de Nombres System.RunTime.Serialization
L2. Elementos Involucrados (Streams) El proceso de Serialización requiere de un Stream para poder leer y escribir, puede ser de cualquier tipo: Filestream, Networkstream,...
L2. Elementos Involucrados (Formatter) Formatters: Encargadas de realizar el trabajo de Serialización (son Clases) Binaryformatter (Binarios) Soapformatter (XML) Customizables (Definidos para el caso particular) Espacio de Nombres System.RunTime.Serialization.Formatters
L2. Elementos Involucrados (Otras Clases) ObjectIDGenerator: Genera los IDs de los objetos ObjectManager: Lleva la traza de los Objetos Descerializados
L2. Atributo de la Clase Serializable <Serializable()> Public Class El Atributo Serializable le indica a Visual Studio agregar todo el código necesario para la Serialización
L2. File Stream Los métodos de la Clase File Stream permiten Serializar y Descerializar un objeto Nota: Se puede implementar el concepto de Serialización utilizando simplemente archivos de texto y métodos de archivo También implementando la interfaz ISerializable se puede implementar Serialización
L3. Objeto Binaryformatter Permite trabajar con serializacion binaria Método Serialize recibe como parámetros un Filestream y el objeto a serializar Método Deserialize, recibe como parámetros un Filestream y devuelve el objeto (se debe luego utilizar Ctype para realizar casting al tipo deseado).
L3. Objeto Soapformatter Permite trabajar con Serializacion Soap La ventaja de este objeto es que crea el XML y el esquema XML en un solo paso Espacio de nombres System.Runtime.Serialization.Formatters.Soap Método Serialize recibe como parámetros un Filestream y el objeto a serializar Método Deserialize, recibe como parámetros un Filestream y devuelve el objeto (se debe luego utilizar Ctype para realizar casting al tipo eseado).
L4. Serialización Personalizada Dos maneras 1) Implementando la interface System.Runtime.Serialization.Iformatter 2) Heredando de la clase System.Runtime.Serialization.Formatter
L4. Interfaz IFormatter PROPIEDADES public SerializationBinder public StreamingContext public ISurrogateSelector MÉTODOS public FUNCTION Deserialize (serializationstream AS STREAM) AS OBJECT public SUB Serialize (serializationstream AS STREAM, O as OBJECT )
L5. Clonado de Objetos Copia superficial Shallow consiste en asignar un Objeto a otro (eso no es clonado) Copia profunda Deep consiste en asignar todos los atributos a un objeto desde otro Objeto El problema es cuando tenemos Subobjetos dentro de Objetos
L5. Clonado empleando Serialización Se serializa el objeto X El objeto a serializar debe tener trabajar con un objeto de la clase Streamingcontext Se utiliza un stream de memoria (Memorystream) Se Descerializa el objeto empleando el Stream de Memoria y el resultado se asigna al objeto que recibe la clonación
L5Implementando la Interfaz ICloneable Método Clone() Function Clone As Object
L6. Serialización XML (1/2) Espacio de nombres Clase Xml.Serialization XmlSerializer Para serializar se crea una instancia de la clase XmlSerializer. Al Constructor se le pasa como parámetro el tipo del objeto a serializar O.GetType()
L6. Serialización XML (2/2) El metódo Serialize recibe dos parámetros, el lugar a serializar (Textwritter, Xmlwritter, o un Stream) y el objeto a serializar Clase XmlSerializer Para serializar se crea una instancia de la clase XmlSerializer. Al Constructor se le pasa como parámetro el tipo del objeto a serializar O.GetType()
L7. Esquemas XSD XSD, es la abreviatura de Xml Scheme Definition El documento Xml tiene los datos y el documento Xsd la definición, la metadata. Imprescindible para poder descerializar un documento sino se conoce a priori la implementación del serializado
L7. Generación Esquemas XSD En V.B. 2010 con los métodos de las clases de Xml (Xmlwritter) Permiten el manejo de los Data Set Tipados
L8. Expresiones Regulares Una expresión regular, también llamada Patrón, describe un conjunto de cadenas sin enumerar sus elementos (notación precisa y concisa) Utilizadas en los procesos de validación Relacionado con las gramáticas de los lenguajes de programación Son un método eficiente y eficaz de procesar texto
L9. Esp. De Nombres de las Expr. Regulares Para el caso web (ASP) System.Web.RegularExpressions Para el manejo de texto System.Text.RegularExpressions
L9. Fundamentos de Expresiones Regulares Los caracteres distintos de. $ ^ { [ ( ) * +? \ equivalen a sí mismos La secuencia de escape es \
L9. Constructoress de Expresiones Regulares Escapes de carácter : conjunto de caracteres de escape Sustituciones : modelos de reemplazo. Clases de carácter : El conjunto de caracteres Opciones de expresiones regulares: conjunto de opciones que modifican el comportamiento de búsqueda Cuantificadores: cantidades opcionales que modifican una expresión regular. Construcciones de agrupamiento : provocan que una expresión regular capture grupos de subexpresiones. Construcciones de referencia inversa : modificadores de referencias inversas de expresiones regulares. Construcciones de alternancia: Datos de alternancia que modifican una expresión regular para permitir una búsqueda de coincidencia entre dos o más alternativas.
L9. Sustituciones $ número : Sustituye la última subcadena con la que coincide el número de grupo número (decimal). ${ nombre } : Sustituye la última subcadena que coincide con un grupo (?<name> ). $$ : Sustituye un solo literal "$". $& : Sustituye una copia de toda la coincidencia. $` : Sustituye todo el texto de la cadena de entrada delante de la coincidencia. $' : Sustituye todo el texto de la cadena de entrada detrás de la coincidencia. $+ : Sustituye el último grupo capturado. $_ : Sustituye toda la cadena de entrada.
L9. Clases de Caracteres [ grupo_caracteres ] (Grupo de caracteres positivo.) ejemplo, todas las vocales, [aeiou]. caracteres de puntuación y dígitos decimales, [\p{p}\d] en el código. [^ grupo_caracteres ] (Grupo de caracteres negativo.) [ primercarácter - últimocarácter ] (Intervalo de caracteres.) ejemplo, para especificar el intervalo de dígitos decimales de '0' a '9', el intervalo de letras minúsculas de 'a' a 'f' y el intervalo de letras mayúsculas de 'A' a 'F', [0-9a-fA-F].
L10. Opciones de Expresiones Regulares Permiten modificar el comportamiento de las Expresiones Regulares con opciones que afectan el comportamiento de coincidencia Se pueden indicar en el parámetro Options del Constructor de la clase Regex También con la construcción de agrupamiento en línea (?Imnsx-imnsx:) o con la construcción miscelánea (?Imnsx-imnsx).
L11. Clase Regex (1/2) Representa una expresión regular inmutable En el Constructor se la pasa como parámetro la expresión regular. Regex rx = new Regex(@"^?\D+(\.\D{2})?$"); Formato de moneda en dolares americanos Método Ismatch, determina si un texto cumple la expresión, devuelve un boolean rx.ismatch(texto)
L11. Clase Regex (2/2) Método Match: Busca una cadena de entrada para una aparición de expresión regular y devuelve el resultado preciso como un objeto match sencillo. Método Matches: Busca una cadena de entrada para todas las apariciones de una expresión regular y devuelve todas las coincidencias con éxito como si se llamara al objeto match varias veces. Método Replace: Dentro de una cadena de entrada especificada, reemplaza las cadenas que coinciden con un modelo de expresión regular por una cadena de reemplazo especificada. Método Split: Divide una cadena de entrada en una matriz de subcadenas en las posiciones definidas por una coincidencia de expresión regular
L12. Clase Match Collection Representa el conjunto de coincidencias con éxito encontradas por la solicitud de un modelo de expresión regular en la cadena de entrada. EL MÉTODO MATCHES DE LA CLASE REGEX RETORNA EL MATCH COLLECTION. SE COMPORTA COMO UNA COLECCIÓN TRADICIONAL, PATRÓN ITERATOR.
L13. Clase Group Group representa los resultados de un solo grupo de captura. Un grupo de captura puede capturar ninguna cadena, una o varias en una sola coincidencia debido a los cuantificadores, así que Group proporciona una colección de objetos Capture. PROPIEDADES Captures : Colección de todas las capturas que coinciden con el grupo de captura Index : Posición en la cadena original donde se encontró el primer carácter de la subcadena capturada. Length : Longitud de la subcadena capturada. Success : Indica si la coincidencia ha tenido éxito. Value : Obtiene la subcadena capturada.
L14. Clase Capture Collection Representa una secuencia de subcadenas de captura. CaptureCollection devuelve el conjunto de capturas realizadas por un único grupo de capturas. PROPIEDADES Count : Obtiene el número de subcadenas capturadas por el grupo. Item : Obtiene un miembro individual de la colección. SE COMPORTA COMO UNA COLECCIÓN TRADICIONAL, PATRÓN ITERATOR.