Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FUNDAMENTOS DE PROGRAMACION
U.M.R.P.S.F.X.CH.
INDICE DE CONTENIDO
INDICE DE CONTENIDO
INDICE DE CONTENIDO
Estndares de Codificacin
Estndares de Codificacin
NOTACION C
Estndares de Codificacin
NOTACION POSICIONAL
Notacin poco conocida hoy en da (pero que en
sus tiempos fue famosa).
Se ocupaba primordialmente en ambientes
limitado por el famoso 8.3 (DOS) que tambin se
aplicaba a algunos lenguajes de programacin.
Esta restriccin tambin se aplicaba a algunos
lenguajes de programacin.
Ejemplo:
IVCIIL01, donde IV sera la aplicacin, C para
Estndares de Codificacin
NOTACION HUNGARA
El inventor de esta notacin (Charles Simonyi)
naci en Hungra, por eso el nombre.
Consiste en prefijos en que se aaden a los
nombres de las variables y que indican su tipo.
El resto del nombre indica, lo ms claramente
posible, la funcin que realiza la variable.
De esa forma, un string recibir la letra s o str, un
integer la letra i o int, un decimal la letra d o dec.
Un arreglo la letra a o arr.
Estndares de Codificacin
NOTACION CAMEL
Es quizs la ms famosa y la que, aparte de los
lenguajes de programacin, tambin se le ha visto fuera
de estas.
Se llama notacin Camel porque los identificadores
recuerdan las jorobas de un camello.
Existen dos variantes:
o
Ejemplo:EjemploDeUpperCamelCase.
INDICE DE CONTENIDO
Tecnologa .NET
Tecnologa .NET
.NET es una nueva plataforma para el desarrollo y explotacin
de aplicaciones gestionadas (managed) modernas y orientadas
a objetos
Las aplicaciones .NET se pueden desarrollar en cualquier
lenguaje de programacin que se ajusta a .NET
.NET soporta una extensa framework de libreras de clases
independientes del lenguaje de programacin
.NET soporta la creacin de componentes auto-describibles
.NET ofrece integracin multi-lenguaje, reutilizacin de
componentes, y herencia entre componentes desarrollados en
diferentes lenguajes
.NET ofrece un nueva manera de desarrollar aplicaciones de
escritorio usando las clases Windows Forms
.NET ofrece una nueva manera de desarrollar aplicaciones
basadas en navegador Web a travs de ASP.NET
Las clases ADO.NET proveen una arquitectura desconectada
para acceso a datos.
.NET soporta la creacin de Servicios Web XML independientes
de la plataforma, a travs de SOAP (Simple Object Access
Protocol) y WSDL (Web Services Description Language)
Tecnologa .NET
Para
conseguir
la
independencia
comunicacin se han creado varios
(http://www.w3c.org)
entre
la
estndares
Tecnologa .NET
Framework .NET
Framework .NET
Framework .NET
Framework .NET
Common Language Runtime (CLR)
El Runtime de Lenguaje Comn provee lo que se
llama cdigo administrado es decir un entorno que
provee servicios automticos al cdigo que se
ejecuta.
El CLR es el ncleo de la plataforma .NET. Es el motor
encargado de gestionar la ejecucin de las
El
CLR lo que
aplicaciones.
hace es gestionar
la ejecucin de
las
aplicaciones
diseadas para la
plataforma .NET
Framework .NET
Servicios del CLR
Cargador de Clases: Permite cargar en memoria las clases
Compilador MSIL a nativo: Transforma cdigo intermedio de alto
nivel independiente del hardware que lo corre a cdigo de mquina
propio del dispositivo que lo ejecuta.
Administrador de Cdigo: Coordina toda la operacin de los
distintos subsistemas del Runtime de lenguaje comn
Colector de Basura: Elimina de memoria objetos no utilizados.
Motor de Seguridad: Administra la seguridad del cdigo que se
ejecuta
Motor de Depuracin: Permite hacer un seguimiento de la
ejecucin del cdigo aun cuando se utilicen lenguajes distintos.
Chequeador de Tipos: Controla que las variables de la aplicacin
usen el rea de memoria que tienen asignado.
Administrador de Excepciones: Maneja los errores que se
producen durante la ejecucin del cdigo
Soporte de Hilos: Permite ejecutar cdigo en forma paralela
Empaquetador de COM: Coordina la comunicacin con los
componentes COM para que puedan ser usados por el Marco de
Trabajo.
Framework .NET
Microsoft Intermediate Language (MSIL)
Todos los compiladores de los lenguajes generan un cdigo
MSIL y no un cdigo nativo
Es como la mquina virtual de JAVA y precisamente el
cdigo MSIL es el cdigo mquina de esta mquina virtual.
Por qu el MSIL?
Una aplicacin nativa no puede utilizarse directamente en
otros sistemas operativos, en ocasiones ni en distintas
versiones del mismo sistema, y tampoco se ejecutaran en
otros procesadores
Por tanto, por cada procesador y sistema operativo es
necesario generar un cdigo nativo
.NET genera un cdigo intermedio
Es independiente del sistema operativo y procesadores
Para que un compilador genere un cdigo MSIL utiliza el
Sistema Comn de Tipos
Framework .NET
El MSIL debe ser convertido a un cdigo nativo que
entienda el CPU.
JIT se encarga de generar un cdigo nativo a travs del
MSIL.
JIT ira generando cdigo nativo a medida que se necesite o
se solicite.
Solo se convierte una sola vez, a la segunda solicitud no es
utilizado el JIT.
Por todo esto, se llama cdigo administrado.
Framework .NET
Framework .NET
System.Collections
System.Data
System.IO
System.Net
Framework .NET
System.Runtime.Remo
ting
System.Security
System.Threading
Manipulacin de hilos.
System.Web.UI.WebCo
ntrols
System.Windows.Form
s
System.XML
Framework .NET
Common Type System (CTS)
Sistema de Tipo Comn es el conjunto de
reglas que han de seguir las definiciones de
tipos de datos para que el CLR las acepte.
Algunas reglas del CTS son las siguientes:
Cada tipo de dato puede constar de cero o ms
miembros. Cada uno de estos miembros puede ser
un campo, un mtodo, una propiedad o un evento.
No puede haber herencia mltiple, y todo tipo de
dato ha de heredar directa o indirectamente de
System.Object.
Framework .NET
Cualquier cdigo
private
family
assembly
family or assembly
INDICE DE CONTENIDO
Visual Studio
EN LABORATORIO
INDICE DE CONTENIDO
Por qu ReSharper ?
Porque apoya los lenguajes de C #, VB.NET, XAML, JavaScript, XML,
HTML, CSS, scripts de ASP.NET, ASP.NET MVC.
Ayuda tambin a cualquier usuario de Visual Studio a mejorar su
cdigo.
Porque aplica la comprobacin de errores y correccin automtica de
cdigo , lo que reduce el tiempo de desarrollo y aumenta su eficiencia.
Mejora la calidad del cdigo escrito.
INDICE DE CONTENIDO
Elementos de C#
Elementos de C#
Introduccin al Lenguaje C#
Es un lenguaje desarrollado por la Empresa
Microsoft para la plataforma .NET
Sus principales creadores son Scout
Wiltamuth y Anders Hejlsberg
La sintaxis y estructuracin de C# es muy
parecida a la de C++ o Java
C# es un lenguaje de programacin que
toma las mejores caractersticas de
lenguajes preexistentes como Visual Basic,
Java y C++
Elementos de C#
Introduccin al Lenguaje C#
Su compilador es el ms depurado y
optimizado de los incluidos en el .NET
Framework SDK.
El lenguaje C# no ha sido creado tan
solo por y para Microsoft y su
plataforma .NET
Existencia de Compilador Mono, con
soporte para C#.
Elementos de C#
Elementos de C#
Elementos de C#
Tipos de Datos
Elementos de C#
Variables
C# requiere una asignacin definida,
esto quiere decir que las variables
deben ser asignadas o inicializadas
antes de su uso.
int Codigo = 12345;
string NombrePersona = Juan
Perez;
Elementos de C#
Constantes
Una constante es una variable que no
tendr un cambio en ejecucin.
const int x = 1000;
const char Nom= e ;
Elementos de C#
Enumeradores
Es una
alternativa de una constante, pero el
enumerador puede contener un conjunto de
constantes o valores estticos implcitos dentro de
su cuerpo.
enum Estado
{
Habilitado, // = 0
Deshabilitado, // = 1
Suspendido,
// = 2
}
enum Temperatura
{
TemperaturaMaxima = 34,
TemperaturaMinima = 5,
TemperaturaMedia = 21,
}
Elementos de C#
if else
La instruccin if permite ejecutar
ciertas instrucciones slo si de da una
determinada condicin.
if (<condicin>) {
<instruccionesIf>
} else {
<instruccionesElse>
}
Elementos de C#
if else
Operadores relacionales:
== (Igual),
!= (No Igual),
> (Mayor),
<(Menor),
>= (Mayor igual),
<=(Menor igual).
Elementos de C#
if else
Operadores Lgicos:
& (AND),
| (OR),
^ (OR exclusiva bit a bit),
! (Negacin),
true (Verdadero),
false (Falso)
Elementos de C#
switch
La instruccin switch permite ejecutar unos u otros
bloques de instrucciones segn el valor de una
cierta expresin.
switch (<expresin>)
{
case <valor1>: <bloque1>
<siguienteAccin>
break;
case <valor2>: <bloque2>
<siguienteAccin>
break;
...
default: <bloqueDefault>
<siguienteAccin>
}
Elementos de C#
switch
Ejemplo
string nombre = txtNombre.text;
switch(nombre)
{
case Jos: t=1;
break;
case Paco: t=2;
break;
default: t=0;
break;
}
Elementos de C#
Espacios de Nombres
(namespace)
Elementos de C#
Espacios de Nombres
(namespace)
Elementos de C#
Espacios de Nombres
(namespace)
Elementos de C#
Manejo de excepciones
Las excepciones son el mecanismo
recomendado en la plataforma .NET
para controlar/propagar soluciones
ante un defecto o falla durante la
ejecucin de las aplicaciones
Elementos de C#
Manejo de excepciones
Bsicamente,
son
objetos
derivados
de
la
clase
System.Exception que se generan cuando en tiempo de
ejecucin se produce algn error y que contienen informacin
sobre el mismo.
try {
<instrucciones>
}
catch (<excepcin1>) {
<tratamiento1>
catch (<excepcin2>)
<tratamiento2>
...
}
finally {
<instruccionesFinally>
}
Elementos de C#
Manejo de excepciones
try
{
int c = 0;
int d = 2/c;
}
catch (DivideByZeroException)
{ d=0; }
finally {}
Elementos de C#
Manejo de excepciones
La instruccin throw, nos sirve para informar
una error que consideremos de sea una falta en la
ejecucin de la aplicacin.
throw <objetoExcepcinALanzar>;
try
{
Insertar(objetoLocal);
MessageBox.Show("Los datos han sido grabados
correctamente.");
}
catch (Exception ex)
{
MessageBox.Show("Ha ocurrido un error al guardar
los Datos.");
throw ex;
// return ?
}
Tipos de Clases
Clases, objetos
Una clase es un contenedor de uno o ms datos
(propiedades)
junto
a
las
operaciones
de
comportamiento de dichos datos (funciones).
Las clases son agrupaciones
describen su comportamiento.
de
objetos
que
Elementos de C#
Clases, objetos
En todo momento se trabaja con clases y
objetos definidos.
Las clases representan otro mecanismo para
crear nuevos tipos de datos.
Las
clases,
se
definen
como
los
enumeradores.
C# es un conjunto de objetos que
interaccionan unos con otros a travs de
mtodos.
class <nombreClase>
{
<miembros>
}
Elementos de C#
Clases, objetos
Todas las clases heredan de
System.Object, que es la base de
todos los tipos de datos de C#.
Una clase esta conformada por:
Nombre
Atributos/Propiedades/Miembros o
campos
Mtodos o Servicios
Elementos de C#
Clases, objetos
Nombre
Es un identificador que represente de forma
correcta y funcional los atributos y los mtodos de
una clase
Atributo/Propiedades/Miembros
Es un dato comn que caracteriza a un objeto,
algunas veces un atributo es un tipo de clase
class Libro
{
string Nombre;
string Autor;
unsigned int NumeroPaginas;
Elementos de C#
Clases, objetos
Atributo
Cada uno de estos atributos
contendrn un valor,
Por ejemplo, el Nombre tendr el
nombre de libro, el Autor ser el
nombre del autor que ha escrito el
libro y el NumPaginas contendrn el
nmero de paginas que tiene el libro
Elementos de C#
Clases, objetos
Mtodos o Servicios
Son actividades o servicios que
corresponden una determinada
funcionalidad de un objeto.
En si un mtodo es un conjunto
de instrucciones, si se quiere
referenciar a un mtodo solo
debe de colocarse el nombre
del objeto, un punto y el
Elementos de C#
Clases, objetos
Mtodos o Servicios
Dentro del conjunto de las
instrucciones es valido referirse a los
atributos y obtener o cambiar su valor.
<tipoDevuelto>
<nombreMtodo>
(<parametros>)
{
<instrucciones>
}
Elementos de C#
Clases, objetos
Mtodos o Servicios
El tipo devuelto ser el resultado de las
instrucciones y la manipulacin de los datos
Si no se quiere devolver ningn resultado solo debe
colocarse la palabra void.
Todo mtodo puede devolver un objeto, coleccin,
valor, nulo ?
Si el mtodo devuelve algn objeto es necesario
colocar la palabra return y el resultado o objeto al
final, este debe ser compatible con el tipo devuelto
definido para el mtodo
Elementos de C#
Clases, objetos
Mtodos o Servicios
Los parmetros sern los valores o
objetos que necesitan las instrucciones
para elaborar o construir el resultado
esperado al ejecutar el mtodo, estos
deben cumplir la misma sintaxis de
declaracin de un tipo de dato.
Elementos de C#
Elementos de C#
Elementos de C#
Elementos de C#
Elementos de C#
Elementos de C#
Es una propiedad que permite que las clases sean creados a
partir de otros ya existentes, obteniendo caractersticas
(atributos y mtodos) similares a los ya existentes.
Elementos de C#
class Vehiculo
{
private string Serie;
// Numero de Serie
public string Modelo;
// Nombre del modelo
public string Fabricante;
// Nombre del
Fabricante
public int NumeroPuertas;
// El Nro. de
puertas del vehiculo
}
private
class Vehiculo
{
private string Serie;
// Numero de Serie
public string Modelo;
// Nombre del modelo
public string Fabricante;
// Nombre del Fabricante
public int NumeroPuertas;
// El Nro. de puertas del vehiculo
}
public class Vehiculo
{
private string Serie;
// Numero de Serie
public string Modelo;
// Nombre del modelo
public string Fabricante;
// Nombre del Fabricante
public int NumeroPuertas;
// El Nro. de puertas del vehiculo
}
Elementos de C#
Herencia
Los miembros definidos en la clase padre se le
aadirn a la clase hija.
La clase padre no necesariamente debe estar en el
mismo lenguaje que la hija. (Novedad)
Se puede realizar una herencia en distintos
lenguajes.
public class ClaseBase
{
public string saludos()
{
Return Hola Sucre;
}
}
Elementos de C#
Herencia
public class ClaseDerivada :
ClaseBase
{
public int Cuadrado(int N)
{
Return N*N;
}
}
Elementos de C#
OBJETO
Un objeto de una determinada clase se denomina
unainstanciade la clase. La clase que contiene (y se utiliz
para crear) esa instancia se puede considerar como del tipo de
ese objeto, por ejemplo, una instancia del objeto de la clase
"Personas" sera del tipo "Personas".
Vehiculo miVehiculo;
miVehiculo = new Vehiculo();
Vehiculo miVehiculo = new
Vehiculo();
var miVehiculo = new Vehiculo();
Elementos de C#
ACCESO A LAS PROPIEDADES DE UNA CLASE
Cada objeto de una Clase Vehiculo, tiene un conjunto de
propiedades/miembros.
El acceso a ellos se los realizara utilizando el operador .
NombreDeLaInstancia.PropiedadClase;
//
//
Elementos de C#
public class Motor
{
public int CaballosFuerza;
public double Cilindrada;
}
public class Vehiculo
{
private string Serie;
public string Modelo;
public string Fabricante;
public int NumeroPuertas;
public Motor motor;
}
// Numero de Serie
// Nombre del modelo
// Nombre del Fabricante
// El Nro. de puertas del vehiculo
// Clase Motor
Elementos de C#
public class Vehiculo
{
private const string Serie1;
private
}
// Numero de Serie
// Numero de Serie
Elementos de C#
XML
XML es el acrnimo de eXtensibe Markup Languaje. XML es un
formato estndar del World Wide Web Consortium (W3C)
diseado a partir de SGML para representar datos estructurados
de forma jerrquica (en un rbol). Los documentos XML incluyen
una serie de etiquetas que permiten crear documentos
autocontenidos, en los que los datos van siempre acompaados
de sus metadatos correspondientes.
XML no es, como su nombre puede sugerir, un lenguaje de
marcado. XML es un metalenguaje que permite definir lenguajes
de marcado adecuados a usos especficos. Aunque a primera
vista un documento XML puede parecer similar a HTML hay una
diferencia fundamental: un documento XML contiene datos que
se autodefinen, exclusivamente. Un documento HTML contiene
datos mal definidos, mezclados con elementos de formato. En
XML se separa el contenido de la presentacin de forma total.
Elementos de C#
XML
Elementos de C#
XML
XML, al que algunos consideran el Esperanto de los
sistemas de informacin, se emplea principalmente
para representar documentos (texto con etiquetas que
identifican porciones del documento) y conjuntos de
datos (estructuras de datos jerrquicas, para ser ms
precisos).
Entre sus ventajas se encuentra su aceptacin casi
universal, su legibilidad y su carcter autocontenido (a
diferencia de los formatos binarios propios de cada
aplicacin), si bien el tamao de los documentos XML
es mayor que el de sus equivalentes binarios y su
procesamiento requiere ms recursos, por lo que no
resulta adecuado en aplicaciones en las que la
Elementos de C#
XML
En resumen, XML permite representar datos de forma
homognea en entornos heterogneos, lo que facilita la
interoperabilidad entre distintos sistemas.
Formatos basadas en este formato estndar (SOAP, ebXML,
BizTalk, WebSphere, etc.).
EJEMPLO
Representacin de datos en formato ASCII :
"PO-1234","CUST001","X9876","5","14.98
Representacin de los mismos datos en XML:
<ORDEN_PEDIDO>
<COD_PEDIDO> PO-1234 </COD_PEDIDO>
<COD_CLIENTE> CUST001 </COD_CLIENTE>
<COD_ARTICULO> X9876 </COD_ARTICULO >
Elementos de C#
XML
XML es sensible a las maysculas.
ELEMENTOS
Los elementos XML estn delimitados por etiquetas de comienzo
y fin entre las que se escribe su contenido:
<TAG_NAME> ... </TAG_NAME>
Elementos de C#
XML
Los distintos elementos de un documento XML pueden incluir
atributos que describen al elemento en cuestin (tipo de datos,
dominio de valores permitidos, etc.). Dichos atributos han de
aparecer en la etiqueta de comienzo del elemento y el valor del
atributo debe especificarse entre comillas dobles (") o simples ('):
<TAG_NAME ATTRIBUTE="value"> ... </TAG_NAME>
Instrucciones de procesamiento
En su prlogo, un documento XML puede incluir una serie de
instrucciones de
procesamiento, delimitadas por: <? ... ?>, en las que se puede
indicar el sistema de codificacin empleado (Unicode por
defecto), especificar la hoja de estilo XSLT que se emplear para
visualizar el documento, declarar espacios de nombres y definir el
esquema del documento, etc. Solo se requiere, obligatoriamente,
especificar que se trata de un documento
Elementos de C#
XML
<?xml version="1.0"?>
Un ejemplo ms detallado en el que se especifica la hoja de estilo que se aplica al
documento para su presentacin es el siguiente:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="template.xsl"?>
<ROOT>
<ELEMENT1> <SUBELEMENT1 /> <SUBELEMENT2 /> </ELEMENT1>
<ELEMENT2> </ELEMENT2>
<ELEMENT3 type="string"> </ELEMENT3>
<ELEMENT4 type="integer" value="9.3"> </ELEMENT4>
</ROOT>
ENTIDADES
Las entidades en XML proporcionan un mecanismo de substitucin textual:
Entidad
<
<
>
&
Sustitucin
>
&
Elementos de C#
XML
Comentarios y secciones CDATA
Un documento XML tambin puede incluir comentarios,
delimitados por las construcciones <!-- y --> y secciones CDATA
que sirven para incluir cualquier cosa (contenido textual) en el
documento XML, delimitadas por las construcciones <!
[CDATA[ y ]]> (como <PRE> ... </PRE> en HTML).
<!-- Este codigo
CDATA -->
<!-- Esto es un comentario -->
<ejemplo>
<!-- Este codigo XML no usa CDATA -->
<![CDATA[
<ejemplo>
<HTML>
<HTML>
<HEAD>
<HEAD>
<TITULO>Rock & Roll</TITULO>
<TITULO>Rock
Roll</TITULO>
</HEAD>
</HEAD>
</HTML>
</HTML>
</ejemplo>
XML
usa
&
Elementos de C#
XML
DOCUMENTOS XML BIEN FORMADOS
Un documento bien formado en XML tiene que reunir las
siguientes cualidades:
Elementos de C#
XML
Teniendo en cuenta las estrictas reglas anteriores, el siguiente documento XML no
es vlido porque sus elementos no estn anidados correctamente:
<?xml Version="1.0" ?>
<PARENT>
<CHILD1> Child 1 </CHILD1>
<CHILD2> <CHILD3> Child 3 or 2? </CHILD2> </CHILD3>
</PARENT>
El siguiente documento XML tampoco es vlido
porque tiene dos races:
<?xml Version="1.0" ?>
<PARENT>
<CHILD1> Elemento CHILD1 </CHILD1>
</PARENT>
<PARENT>
<CHILD1> Otro elemento CHILD1 </CHILD1>
</PARENT>
Elementos de C#
Elementos de C#
REFLECTION
Las clases del espacio de nombres System.Reflection, junto con
System.Type, permiten obtener informacin acerca de los
ensamblados cargados y los tipos definidos en los mismos, como
clases, interfaces y tipos de valor.
Se puede utilizar la reflexin para crear instancias de tipo en
tiempo de ejecucin, as como para invocarlas y obtener acceso a
las mismas.
El cargador de Common Language Runtime administra dominios
de aplicacin, que constituyen lmites definidos de los objetos
que tienen el mismo mbito de aplicacin.
Dicha administracin incluye la carga de cada ensamblado en el
dominio de aplicacin apropiado y el control del diseo de
memoria correspondiente a la jerarqua de tipos de cada
ensamblado.
Elementos de C#
REFLECTION
La reflexin resulta til en estas situaciones:
Cuando es necesario obtener acceso a atributos en los metadatos
del programa. Para obtener ms informacin, vea Recuperar
informacin almacenada en atributos.
Para examinar e instanciar tipos en un ensamblado.
Para compilar nuevos tipos en tiempo de ejecucin. Utilice clases
en System.Reflection.Emit.
Para realizar enlaces en tiempo de ejecucin, con acceso a los
mtodos en tipos creados en tiempo de ejecucin.
Elementos de C#
REFLECTION
Los ensamblados contienen mdulos, los mdulos contienen tipos
y stos ltimos contienen miembros. La reflexin proporciona
objetos que encapsulan ensamblados, mdulos y tipos.
Se utiliza la reflexin para crear dinmicamente una instancia de
un tipo, enlazar el tipo a un objeto existente u obtener el tipo a
partir de un objeto existente. A continuacin, se puede invocar a
los mtodos del tipo u obtener acceso a los campos y
propiedades correspondientes. Normalmente, se usa la reflexin
en los siguientes casos:
Assembly para definir y cargar ensamblados, cargar los mdulos
que aparecen en el manifiesto del ensamblado, buscar un tipo a
partir de este ensamblado y crear una instancia del mismo.
Module para detectar informacin, como el ensamblado que
contiene el mdulo y las clases del mdulo. Tambin se pueden
obtener todos los mtodos globales u otros mtodos especficos
Elementos de C#
REFLECTION
ConstructorInfo para detectar informacin, como el nombre, los
parmetros, los modificadores de acceso (por ejemplo, public o
private) y los detalles de implementacin (por ejemplo, abstract o
virtual) de un constructor. Utilice el mtodo GetConstructors o
GetConstructor de un objeto Type para invocar un constructor
especfico.
MethodInfo para detectar informacin, como el nombre, el tipo
devuelto, los parmetros, los modificadores de acceso (por
ejemplo, public o private) y los detalles de implementacin (por
ejemplo, abstract o virtual) de un mtodo. Utilice el mtodo
GetMethods o GetMethod de un objeto Type para invocar un
mtodo especfico.
FieldInfo para detectar informacin, como el nombre, los
modificadores de acceso (por ejemplo, public o private) y los
detalles de implementacin (por ejemplo, static) de un campo, as
como para obtener o establecer los valores del campo.
Elementos de C#
REFLECTION
EventInfo para detectar informacin, como el nombre, el tipo de
datos del controlador de eventos, los atributos personalizados, el
tipo declarativo y el tipo reflejado de un evento, as como para
agregar o quitar controladores de eventos.
PropertyInfo para detectar informacin, como el nombre, el tipo
de datos, el tipo declarativo, el tipo reflejado y el estado de slo
lectura o de escritura de una propiedad, as como para obtener o
establecer los valores de propiedad.
ParameterInfo para detectar informacin, como el nombre de
un parmetro, el tipo de datos, si un parmetro es un parmetro
de entrada o salida, as como la posicin del parmetro en una
firma del mtodo.
CustomAttributeData
para detectar informacin sobre
atributos personalizados cuando se trabaja en el contexto de solo
reflexin del dominio de aplicacin. CustomAttributeData permite
Elementos de C#
REFLECTION
Las clases del espacio de nombres System.Reflection.Emit
proporcionan una forma especializada de reflexin que permite
compilar tipos en tiempo de ejecucin.
La reflexin puede utilizarse asimismo para crear aplicaciones
denominadas exploradores de tipos, que permiten a los usuarios
seleccionar tipos y, a continuacin, ver la informacin
correspondiente.
La reflexin tiene tambin otras aplicaciones. Los compiladores
de lenguajes como JScript utilizan la reflexin para generar tablas
de
smbolos.
Las
clases
del
espacio
de
nombres
System.Runtime.Serialization utilizan la reflexin para
obtener acceso a los datos y determinar los campos que se van a
mantener.
Las
clases
del
espacio
de
nombres
System.Runtime.Remoting utilizan la reflexin indirectamente
a travs de la serializacin.
Elementos de C#
REFLECTION
Ejemplo para Obtener el Tipo de Dato
// Using GetType to obtain type information:
int i = 42;
System.Type type = i.GetType();
System.Console.WriteLine(type);
El resultado es:
System.Int32
Ejemplo para obtener el nombre completo
// Using Reflection to get information from an Assembly:
System.Reflection.Assembly info = typeof(System.Int32).Assembly;
System.Console.WriteLine(info);
El resultado es:
Elementos de C#
DISTRIBUTED
Comunicacin entre procesos
Cuando
en
un
sistema
tenemos
distintos
procesos
independientes
ejecutndose,
necesitamos
disponer
de
mecanismos que hagan posible la comunicacin entre ellos. Se
pueden utilizar distintos mecanismos de comunicacin entre
procesos [IPC: InterProcess Communication]:
El portapapeles de Windows [Windows Clipboard], que, como
almacn central de datos, nos permite que distintas
aplicaciones intercambien datos "copiando y pegando".
DDE [Dynamic Data Exchange], un protocolo que permite a
las aplicaciones intercambiar datos de una forma ms general
que el portapapeles.
OLE [Object Linking and Embedding], basado en COM, nos
permite manipular documentos compuestos de datos que
Elementos de C#
DISTRIBUTED
Elementos de C#
DISTRIBUTED
Elementos de C#
DISTRIBUTED
Ficheros mapeados en memoria: Permiten que dos procesos de
una misma mquina compartan un fichero que pueden
manipular como si fuese un bloque de memoria en su espacio
de direcciones, si bien para acceder a l correctamente debern
utilizar algn mecanismo de exclusin mutua.
Semforos, eventos, Mutex y otras primitivas de sincronizacin
que permiten comunicar la ocurrencia de alguna accin o de
algn cambio de estado.
Elementos de C#
DISTRIBUTED