|
|
Tercer repaso de 7 del temario para el examen 70-536 de la certificación MCTS en .NET. Engloba los temas 3.Searching, Modifying, and Encoding Text, 6.Graphics y 16.Globalization del libro oficial de Microsoft. |
Expresiones Regulares:
· Introducción a las expresiones regulares en .NET.
· Te permiten determinar cuando un texto cumple un formato propuesto. Soportan docenas de caracteres especiales y operadores. Los más usados comúnmente son “^” para indicar el comienzo de la cadena, “$” para indicar el final, “?” para indicar un carácter opcional, “.” para indicar cualquier carácter y “*” para indicar un carácter repetido.
· La clase Regex provee las funcionalidades para trabajar con expresiones regulares en .NET.
· Usando el método estático Regex.IsMatch puedes comprobar si una cadena cumple un patrón dado.
· Para extraer datos usando expresiones regulares puedes crear un patrón usando grupos para especificar los datos que necesitas extraer, llama a Regex.Match para crear un objeto Match y entonces examina cada uno de los ítems en el array Match.GroupX.
· La enumeración RegexOptions representa las opciones de búsqueda de las expresiones regulares.
· Para reformatear texto usando expresiones regulares, llama al método estático Regex.Replace.
Codificando y decodificando:
· Introducción a las codificaciones.
· Los estándares de codificación mapean valores en bytes a caracteres. ASCII es uno de los estándares más antiguos y extendidos; en cualquier caso, provee un soporte limitado para lenguas distintas del Inglés. Hoy, varios estándares de codificación Unicode proveen soporte multilenguaje.
· La clase Encoding provee de métodos estáticos para codificar y decodificar texto.
· Con Encoding.GetEncodings puedes obtener una lista de las páginas de códigos soportadas.
o UTF-32: Caracteres unicode como secuencias de enteros de 32 bits. Representada por la clase UTF32Encoding.
o UTF-16: Caracteres unicode como secuencias de enteros de 16 bits. Representada por la clase UnicodeEncoding.
o UTF-8: Caracteres unicode como secuencias de enteros de 8 bits. Cierta compatibilidad con ASCII. Representada por la clase UTF8Encoding.
o UTF-7: Idem, UTF7Encoding.
o ASCII: Alfabeto latín con caracteres como secuencias de enteros de 7 bits. Representada por la clase ASCIIEncoding.
o ANSI/ISO: Soportada por la clase Encoding.
· Para especificar el tipo de codificación cuando escribes en un fichero, puedes llamar a constructores de Stream que tienen una variable de tipo Encoding como parámetro.
· Aunque rara vez lo necesitarás (y no tan rara), también puedes hacerlo al leer de un archivo de la misma forma.
Dibujando gráficos:
· Introducción a la programación de gráficos.
· El espacio de nombres System.Drawing provee de herramientas para dibujar gráficos y editar imágenes. Las clases más utilizadas son Graphics, Image y Bitmap.
· Usa las estructuras Point y Size para especificar la localización y tamaño de los controles.
· La estructura Color provee las propiedades predefinidas de los colores comunes.
· Como crear objetos Graphics para dibujar.
· Para dibujar líneas y formas, crea una instancia de la clase Graphics, crea un objeto Pen y llama a uno de los métodos .DrawX de Graphics para dibujar una línea ó una forma usando la instancia de Pen. Estos, se pueden personalizar:
o La enumeración DashStyle especifica el tipo de línea. Se indica en la propiedad Pen.DashStyle.
o La enumeración LineCap especifica el tipo de terminador. Se indica en las propiedades Pen.EndCap y Pen.StartCap.
· Los Pens pueden ser personalizados con patrones.
· Para dibujar formas rellenas, crea una instancia de la clase Graphics, crea un objeto Brush y llama a uno de los métodos .FillX de Graphics para dibujar la forma usando la instancia de la clase abstracta Brush de tipo HatchBrush (patrón), LinearGradientBrush (degradado), PathGradientBrush (degradado complejo), SolidBrush (simple) y TextureBrush (con textura).
Trabajando con imágenes:
· Las clases Image y Bitmap posiblitan el editar ó crear imágenes y salvar el resultado como un archivo.
· Para mostrar una imagen en un formulario Windows, carga la imagen en una instancia de Image ó Bitmap, crea una instancia del control PictureBox y usa la instancia anterior para definir la propiedad PictureBox.BackgroundImage.
· Para crear y salvar una imagen, crea un objeto Bitmap, edítalo usando un objeto Graphics y llama al método Bitmap.Save.
· Para mostrar un icono, llama al método Graphics.DrawIcon ó Graphics.DrawIconUnstretched usando una de las propiedades de la clase SystemIcons.
Formateando texto:
· Para añadir texto gráficamente, crea un objeto Graphics, crea un objeto Font, si quieres también un objeto Brush y llama al método Graphics.DrawString especificando la localización donde quieres escribir.
· Para crear un objeto Font, pásale como argumentos el nombre de la familia de la fuente (“Tahoma”, “Verdana”, etc..), el tamaño y el estilo.
· Usa la clase StringFormat para controlar el formateo del texto. Puedes usar esta clase para cambiar la dirección ó el alineamiento del texto. Sus principales propiedades indican:
o La enumeración StringAligment, especifica la alineación de la cadena en relación con el rectángulo que la contiene.
o La enumeración StringFormatFlags, especifica información de diseño de la cadena.
o La enumeración StringTrimming, especifica como recortar los caracteres que no caben en el rectángulo.
Usando información cultural:
· Globalizar y localizar aplicaciones.
· Las distintas culturas son representadas por la clase CultureInfo. Es la vía para manipular la información cultural.
· La cultura actual de la aplicación puede ser obtenida y modificada mediante la propiedad CultureInfo.CurrentCulture.
· Para implementar la globalización de forma efectiva, los datos deben estar formateados en lugar de ser “hardcodeados”.
· La propiedad CurrentThread.CurrentCulture también sirve para obtener y/ó modificar la información cultural de la aplicación.
· La propiedad CurrentThread.CurrentUICulture representa la información cultural de los aspectos gráficos de la aplicación. Esta propiedad debería ser modificada SOLO al inicio de la aplicación.
· La enumeración CultureTypes representa los tipos de referencias culturales que se pueden obtener de CultureInfo.GetCultures.
· La clase RegionInfo contiene información más detallada sobre países o regiones.
· La clase NumberFormatInfo provee un mecanismo para controlar como los números son representados y mostrados.
· La clase DateTimeFormatInfo provee un mecanismo para controlar como las fechas son representadas y mostradas.
· El método DateTime.ToBinary permite convertir una fecha y hora a un valor binario de 64 bits que se puede utilizar después para volver a crear el objeto DateTime mediante el método DateTime.FromBinary.
· El método DateTime.Parse permite convertir una fecha y hora en su DateTime equivalente.
· El método DateTime.ParseExact permite convertir una fecha y hora en su DateTime equivalente mediante un formato dado.
· El método Int32.Parse permite convertir la representación textual de un número a su equivalente Int32.
o La enumeración NumberStyles representa los estilos permitidos para convertir un string en número.
Creando una cultura personalizada:
· Las culturas personalizadas pueden ser creadas con la clase CultureAndRegionInfoBuilder.
· La cultura y región de un CultureAndRegionInfoBuilder puede ser heredada de otra.
· El formateo de números puede ser controlado des de la propiedad CultureAndRegionInfoBuilder.NumberFormat.






