Citation preview

Lista de BCL en c# Espacio de nombres

Utilidad de los datos que contiene

System

Tipos muy frecuentemente usados, como los tipos basicos, tablas , excepciones, fechas, numeros aleatorios, recolector de basura , entrada y salida en consola, etc...

System.Collections

Colecciones de datos de uso comun como pilas, colas, listas, diccionarios, etc

System.Data

Manipulación de bases de datos. Forman la denominada arquitectura ADO.NET

System.Net

Realización de comunicaciones en red.

System.Reflection

Acceso a metadatos que acompañan a los módulos de código.

System.IO

Manipulación de ficheros y otros flujos de datos.

System.Runtime.Remoting

Acceso a objetos remotos.

System.Security

Acceso a la política de seguridad en que se basa el CLR.

System.Threading

Manipulación de hilos.

System.Web.UI.WebControls

Creación de interfaces de usuario basadas en ventanas para aplicaciones web

System.Winforms

Creacion de interfaces de usuario basadas en ventanas para aplicaciones estándar.

System.XML

Acceso a datos en formato XML

Common Type System (CTS) Modificador

Código desde el que es accesible el miembro

Public

Cualquier código

Private

Código del mismo tipo de dato

Family

Código del mismo tipo de dato o hijos de éste

Assembly

Código del mismo ensamblado

Family and assembly

Código del mismo tipo o de hijos de éste, ubicado en el mismo ensamblado

Family or assembly

Código del mismo tipo o hijos de éste, o código ubicado en el mismo ensamblado

El Common Language Specification (CLS) o Especificación del Lenguaje Común es un conjunto de reglas que han de seguir las definiciones de tipos que se hagan usando un determinado lenguaje gestionado si se desea que sean accesibles desde cualquier otro lenguaje gestionado. Obviamente, sólo es necesario seguir estas reglas en las definiciones de tipos y miembros que sean accesibles externamente, y no la en las de los privados. Además, si no importa la interoperabilidad entre lenguajes tampoco es necesario seguirlas. A continuación se listan algunas de reglas significativas del CLS: Los tipos de datos básicos admitidos son bool, char, byte, short, int, long, float, double, string y object Nótese pues que no todos los lenguajes tienen porqué admitir los tipos básicos enteros sin signo o el tipo decimal como lo hace C#. Las tablas han de tener una o más dimensiones, y el número de dimensiones de cada tabla ha de ser fijo. Además, han de indexarse empezando a contar desde 0. Se pueden definir tipos abstractos y tipos sellados. Los tipos sellados no pueden tener miembros abstractos. Las excepciones han de derivar de System.Exception, los delegados de System.Delegate, las enumeraciones de System.Enum, y los tipos por valor que no sean enumeraciones de System.ValueType. Los métodos de acceso a propiedades en que se traduzcan las definiciones get/set de éstas han de llamarse de la forma get_X y set_X respectivamente, donde X es el nombre de la propiedad; los de acceso a indizadores han de traducirse en métodos get_Item y setItem; y en el caso de los eventos, sus definiciones add/remove han de traducirse en métodos de add_X y remove_X. En las definiciones de atributos sólo pueden usarse enumeraciones o datos de los siguientes tipos: System.Type, string, char, bool, byte, short, int, long, float, double y object. En un mismo ámbito no se pueden definir varios identificadores cuyos nombres sólo difieran en la capitalización usada. De este modo se evitan problemas al acceder a ellos usando lenguajes no sensibles a mayúsculas. Las enumeraciones no pueden implementar interfaces, y todos sus campos han de ser estáticos y del mismo tipo. El tipo de los campos de una enumeración sólo puede ser uno de estos cuatro tipos básicos: byte, short, int o long.

La palabra static que antecede a la declaración del tipo de valor devuelto es un modificador del significado de la declaración de método que indica que el método está asociado a la clase dentro de la que se define y no a los objetos que se creen a partir de ella. Main() es lo que es denomina el punto de entrada de la aplicación, que no es más que el método por el que comenzará su ejecución. Necesita del modificador static para evitar que para llamarlo haya que crear algún objeto de la clase donde se haya definido.

Entendiendo los eventos más comunes en Windows Forms:

TextChanged : En los recuadros de texto (TextBox), ocurre cada vez que el usuario presiona una tecla o pega texto en la caja de texto. Se puede usar este evento para tratar con teclas específicas (tales como capturar teclas específicas) o cuando necesitas realizar una acción cada vez que el contenido cambie. MouseDown : Ocurre cuando el usuario presiona por primera vez el cuadro de texto. Se usa cuando se necesita mayor funcionalidad que la proveída por el evento click. MouseUp: Ocurre cuando el usuario libera el ratón de la caja de texto. MouseMove: Ocurre cuando el usuario mueve el ratón sobre la caja de texto.

Prefijos para variables Tipo de dato

Prefijo

Valor de ejemplo

Bool

Bln

BlnLoggedIn

Byte

Byt

BytAge

Char

Chr

ChrQuantity

Decimal

Dec

DecSalary

Double

Dbl

DblCalculateResult

Float

Flt

FltInterestRate

Long

Lng

LngCustomerID

Object

Obj

ObjWord

Short

Sho

ShototalParts

String

Str

strFirstName

Int

Int

IntLoopcounter

Casting(Conversión de tipos de datos)

Conversiones implícitas: TIPO

Conversion segura a:

byte

short, int, long, float, double, or decimal

short

int, long, float, double, or decimal

int

long, float, double, or decimal

long

float, double, or decimal

float

double

double

decimal

Para las conversiones explícitas se pueden usar los métodos de la clase Convert : dblVariable = Convert.ToDouble(intVariable);

Conceptos de depuración: F5-Continuar ejecución : Continúa la ejecución hasta el siguiente punto de ruptura . Una vez en el punto de ruptura... F11-Paso a paso: Ejecuta el código línea a línea. Si la ínea actual es una llamada a una función, entra en la función y ejecuta la primera línea de código. F10-Paso ligero: Ejecuta el código línea a línea. Si la línea actual es una llamada a una función, la ejecuta en su totalidad y se para en la primera línea de código fuera de la función. Shift+F5-salto: Ejecuta todas las líneas de código en la función actual y detiene la ejecución en la línea siguiente a la que llamó a la función actual. Tratamiento de excepciones

try: La sección try es donde se coloca el fragmento de código que es susceptible de fallo. Se pueden colocar todos los métodos dentro de excepciones. Catch: El código dentro de catch se ejecuta sólo cuando una excepción ocurre; es el codigo que se escribe para tratar de capturar la excepción. Finally: Código que se ejecuta cuando la ejecución de los catch y try se completan. Esta sección se reserva para el código limpio. (Código que siempre quieres que se ejecute, independientemente de que la excepción tenga lugar o no).

Hay tres estilos de tratamiento de excepciones : A try block followed by one or more catch blocks. . A try block followed by a finally block. . A try block followed by one or more catch blocks, followed by a finally block. Si algún otro fragmento de código causara alguna otra excepción, se puede parchear envolviendo dicho código en su propio try,catch.

POO La interface de una clase se compone de: Propiedades. Métodos; Eventos;

El método MessageBox MessageBox.Show(MessageText, Caption); MessageBox.Show(MessageText, Caption, Buttons); MessageBox.Show(MessageText, Caption, Buttons, Icon); Enumeraciones permitidas para el parámetro Buttons: AbortRetryIgnore Displays Abort, Retry, and Ignore buttons OK Displays an OK button only OKCancel Displays OK and Cancel buttons YesNoCancel Displays Yes, No, and Cancel buttons YesNo Displays Yes and No buttons RetryCancel Displays Retry and Cancel buttons

Enumeraciones comunes para el parámetro ICON: Exclamation Displays a symbol consisting of an exclamation point in a triangle with a yellow background Information Displays a symbol consisting of a lowercase letter i in a circle None Displays no symbol Question Displays a symbol consisting of a question mark in a circle Stop Displays a symbol consisting of a white X in a circle with a red background Warning Displays a symbol consisting of an exclamation point in a triangle with a yellow background

Trabajando con gráficos Visual c# se comunica con el GDI (Graphics Device Interface) a través de la clase Graphics. El proceso básico es el siguiente 1. Se crea una variable objeto de la clase Graphics para mantener la referencia al objeto Graphics de la forma. 2. La variable es asignada al objeto Graphics de la forma. 3. Para dibujar o imprimir, se llama a los métodos del objeto Graphics. Ejemplo: System.Drawing.Graphics objGraphics; objGraphics = this.textBox1.CreateGraphics(); Creando un objeto Graphics para un nuevo mapa de bits:

Bitmapvariable = new Bitmap(width, height, pixelformat); Valores comunes para pixelformat: Format16bppGrayScale . Format16bppRgb555

Format24bppRgb . Para hacer que los objetos dibujados permanezcan en la forma: Colocar todo el código relacionado en el evento Paint de la forma. Dibujar en memoria un Bitmap y copiar los contenidos de la memoria Bitmap en el evento Paint de la forma. Entendiendo la estructura del registro de Windows Principales nodos del registro de Windows: HKEY_CLASSES_ROOT :Contiene información que asocia tipos de de archivos con programas y datos de configuración de los componentes COM. HKEY_CURRENT_USER : Contiene información de configuración para el usuario actualmente logeado en el SO. HKEY_LOCAL_MACHINE: Contiene información específica de la configuración del ordenador. Independientemente del usuario conectado. HKEY_USERS: Contiene todos los perfiles de los usuarios de la computadora. Cuando un usuario se logea, HKEY_CURRENT_USER es asignado como un alias a un usUario especifico en HEKY_USERS. HKEY_CURRENT_CONFIG: Información sobre el perfil del hardware usado por el ordenador durante la sesión. Tipos de valores comunes en datos del registro: REG_SZ : El tipo primario de cadena de datos. Se usa para almacenar cadenas de longitud limitada u otros tipos de texto. REG_EXPAND_SZ : Tipo de cadena expandible para almacenar variables del sistema cuyos valores son resueltos en tiempo de ejecución. REG_MULTI_SZ: Almacena múltiples cadenas de texto en formato de array. Cada cadena se finaliza con un carácter nulo. REG_BINARY: Almacena datos en binario.

TRABAJANDO CON WPF

El control imagen:

EL URI puede ser tanto un recurso de disco local como de la web La propiedad Image.Stretch determina cómo se muestra una imagen: None : La imagen contenida se presenta en su tamaño original. Si es necesario, recortada para encajar en el espacio disponible. Fill: Cambia el tamaño para ajustarla al espacio disponible. Uniform : la imagen cambia de tamaño conservando sus proporciones, pero sin llenar completamente el espacio. UniformToFill: Como en uniform, la imagen conserva sus proporciones, pero se agranda hasta llenar todo el espacio disponible, para después ser recortada.

Control ProgressBar (Barra de progreso ): Diseñada para proveer de información gráfica de una tarea que lleve tiempo. Sus propiedades son: InsEnabled: Determina si está habilitada. IsIndeterminate: determina si la barra de progresos se enseña para el valor actual. Maximum: Cuando la propiedad “value” se iguala a Maximun, se llena. Minimun: Orientation; SmallChange: representra la cantidad añadida o sustraida de “value” cuando un pequeño cambio es requerido.

Value: El valor de progreso de la tarea en un momento dado.

Propiedades añadidas: Son propiedades que se incluyen en un control y que definen la relación y comportamiento con respecto al contenedor en el que están situados. Empaquetar URI:

Uniform Resource Identifier o URI (en español «identificador uniforme de recurso») es una cadena de caracteres corta que identifica inequívocamente un recurso (servicio, página, documento, dirección de correo electrónico, enciclopedia, etc.). Normalmente estos recursos son accesibles en una red o sistema. Los URI pueden ser localizadores uniformes de recursos, Uniform Resource Name, o ambos.

La sintaxis completa para acceder a un recurso desde WPF es: pack://// Donde Authority puede tener dos posibles valores. Puede ser tanto “application” - que indica que que la URI debería mirar en el ensamblado la aplicación actual se encuentra en los archivos de recursos o de contenido, o SiteOfOrigin, que indica a la aplicación debería mirar en la web de la aplicación para los archivos de recursos indicados.

Cualquier objeto declarado como “Resource” debe tener la propiedad x:KEY =”” Este es el nombre que otros objetos de WPF usarán para acceder al recurso. Para acceder a un recurso se usar la sintaxis {StaticResource myBrush} Diferencia entre staticResource y DinamicResource: Radica en cómo se recuperan los recursos los elementos que hacen la referencia. Los recursos referenciados por StaticResource se recuperan una vez y se usan durante la vida del recurso. Los que son referenciados dinámicamente son requeridos cada vez que el objeto referenciado es usado. Es decir, si el atributo de un objeto referenciado estáticamente, cambiara su estado en otro lugar del código éste, no acusaría el cambio, mientras que si la referencia fuera dinámica, el cambio tendría lugar.

Los diccionarios de recursos son colecciones de recursos que pueden ser accesibles e importables a la app. Para acceder a los diccionarios se debe añadir una referencia a los mismos en la colección resourceDiccionary.MergedDiccionaries. Ejemplo:





Trabajando con estilos: Tabla de propiedades de la clase Style: Propiedad

Descripción

BasedOn

Indica el nombre del estilo del que hereda el estilo actualmente.

Resources

Contiene un colección de recursos locales que usa el estilo.

Setter

Contiene una colección de Setters o EventSetters. Son usados para fijar los valores de las propiedades de controles o rejillas como parte del estilo.

TargetType

Indica a qué tipo de elemento se le aplica el estilo.

Triggers

Contiene una colección de disparadores y objetos relacionados que permiten aplicar el estilo cuando se produce un evento dado.