Post on 16-Nov-2015
description
Taller de Programacin III
C#
Profesor: Marcelo Montecinos C.
Taller de Programacin III Profesor: Marcelo Montecinos C
2
Unidad 1:
Fundamentos del Framework 4 de .NET
Taller de Programacin III Profesor: Marcelo Montecinos C
3
NDICE DE CONTENIDOS
INTRODUCCIN ................................................................................................................................. 4
CONTENIDOS ...................................................................................................................................... 5
TEMA 1: FRAMEWORK................................................................................................................................ 5
1.1. Descripcin de Framework de .NET ................................................................................. 5
1.2. Ventajas del uso del Framework de .NET ........................................................................ 6
1.3. Componentes del Framework ......................................................................................... 7
1.4. Interoperabilidad entre lenguajes (MSIL, JIT) .................................................................. 8
1.5. Instalacin de Visual Studio 2010 ..................................................................................... 8
TEMA 2: FUNDAMENTOS DE C# ................................................................................................................. 9
2.1. Tipos de datos .................................................................................................................. 10
2.2. Funciones .......................................................................................................................... 10
2.3. Control de Flujo ................................................................................................................ 11
2.4. Input, Output con C# ...................................................................................................... 12
2.5. Manejo de excepciones ................................................................................................. 17
2.6. Generics ............................................................................................................................ 19
TEMA 3: PROGRAMACIN DE 00 CON C# .............................................................................................. 20
3.1. Clases en C# .................................................................................................................... 21
3.2. Constantes, campos, mtodos y propiedades. .......................................................... 21
3.3. Herencia ............................................................................................................................ 22
3.4. Espacios de nombre ........................................................................................................ 23
3.5. Enumeraciones ................................................................................................................. 23
3.6. Eventos y delegados ....................................................................................................... 25
3.7. Expresiones Lambda ........................................................................................................ 25
3.8. Ensamblados .................................................................................................................... 26
RESUMEN ............................................................................................................................................. 27
BIBLIOGRAFA ................................................................................................................................... 28
Taller de Programacin III Profesor: Marcelo Montecinos C
4
INTRODUCCIN
La plataforma .NET de Microsoft es un componente de software que puede
ser aadido al sistema operativo Windows, para el desarrollo y ejecucin de
aplicaciones Windows y distribuidas. La unidad uno tiene el objetivo de ensear
los fundamentos del .Net FrameWork de C#, adems de indicar y definir
elementos bsicos del lenguaje C#.
En el presente documento se presenta y expone el FrameWork de .Net
describiendo su caractersticas, ventajas y componentes, luego se describen los
elementos fundamentales del lenguaje C#, es un lenguaje en esencia dctil y
eficiente en la programacin orientada al objeto. Por ltimo se expone y
describe lo elementos bsicos de la Programacin orientada al objeto en C#.
Comentario [CEV1]: Extender la introduccin, hacer una pequea introduccin al os temas que se trataran en la unidad.
Taller de Programacin III Profesor: Marcelo Montecinos C
5
CONTENIDOS
Tema 1: Framework
La plataforma .NET Framework de Microsoft es un componente del software
que puede ser aadido al sistema operativo Windows. Provee un extenso
conjunto de soluciones predefinidas para necesidades generales de la
programacin de aplicaciones, y administra la ejecucin de los programas
escritos especficamente con la plataforma. Esta solucin es el producto principal
en la oferta de Microsoft, y pretende ser utilizada por la mayora de las
aplicaciones.
1.1. Descripcin de Framework de .NET
.NET est compuesto por dos componentes principales: Common
Language Runtime y la biblioteca de clases. El primero es el fundamento de .NET
Framework, dentro de este, el motor en tiempo de ejecucin es equivalente a un
agente que administra el cdigo (principio fundamental) en tiempo de ejecucin
y es capaz de proporcionar los servicios centrales de administracin como: la de
Imagen sacada de google.:
taringa.net
Taller de Programacin III Profesor: Marcelo Montecinos C
6
memoria, de subprocesos y comunicacin remota. Al mismo tiempo aplica una
seguridad estricta a los tipos y formas de especificacin del cdigo que
promueven su seguridad y solidez. Como principio fundamental se encuentra la
administracin del cdigo (destinado al motor en tiempo de ejecucin), este se
denomina cdigo administrado, a diferencia del resto de cdigo o cdigo no
administrado.
El segundo aspecto del Framework de .NET, es una completa coleccin
orientada a objetos de tipos reutilizables que se pueden emplear para desarrollar
aplicaciones capaces de abarcar desde las tradicionales herramientas de GUI1 o
de lnea de comandos, hasta las aplicaciones basadas en innovaciones ms
recientes de ASP.NET, como: formularios Web Forms y servicios Web XML.
1.2. Ventajas del uso del Framework de .NET
.NET Framework puede hospedarse en componentes no administrados que
cargan Common Language Runtime en sus procesos e inician la ejecucin de
cdigo administrado, con lo que se crea un entorno de software en el que se
pueden utilizar caractersticas administradas y no administradas.
Dentro de las ventajas ms destacables podemos encontrar:
1 GUI: Graphical User Interface o Interfaz Grfica de Usuario.
Taller de Programacin III Profesor: Marcelo Montecinos C
7
Fuente: elaboracin propia
1.3. Componentes del Framework
Dentro de los componentes del Framework encontramos:
a) CLR o Common Language Runtime: administra la memoria, ejecucin de
subprocesos, ejecucin de cdigo, comprobacin de la seguridad del cdigo
(esto significa que un componente administrado puede ser capaz o no de
realizar operaciones de acceso a archivos, acceso al Registro y otras, incluso si
se est utilizando en la misma aplicacin activa), compilacin y dems
servicios del sistema.
El motor en tiempo de ejecucin impone la seguridad de acceso del
cdigo. Por ejemplo, los usuarios pueden confiar en que un archivo ejecutable
incrustado en una pgina Web puede reproducir una animacin en la
pantalla o entonar una cancin, pero no puede tener acceso a sus datos
personales, sistema de archivos o red.
Ventajas
Basado en estndares y
prcticas Web
Extensible
Fcil de utilizar por los desarrolladores
Diseado utilizando modelos
de aplicaciones unificados
Taller de Programacin III Profesor: Marcelo Montecinos C
8
b) CTS: En. NET Framework de Microsoft, el sistema de tipos comn (CTS) es un
estndar que especifica cmo se representan las definiciones de tipo y los
valores especficos de estos en la memoria de un computador. Su objetivo es
permitir que los programas escritos en diferentes lenguajes de programacin
puedan compartir fcilmente la informacin.
c) BCL: es la Librera de Clase Bsicas y contiene cientos de tipos de datos que
permiten acceder a los servicios del CLR y a las funcionalidades ms
frecuentemente usadas a la hora de escribir programas. Posee clases
prediseadas y permite crear nuevas clases que, por la herencia, extiendan su
funcionalidad y se integren con el resto de clases.
BLC est escrita en lenguaje MSIL, por lo que se puede usar desde cualquier
lenguaje con compilador que genere MSIL.
1.4. Interoperabilidad entre lenguajes (MSIL, JIT)
El CLR realiza un control automtico del cdigo para que este sea seguro,
es decir, controla los recursos del sistema para que la aplicacin se ejecute
correctamente. Este control se realiza a travs de dos herramientas:
a) Interoperabilidad multilenguaje: se refiere a la capacidad para que el cdigo
pueda ser escrito en cualquier lenguaje compatible con .Net, ya que siempre
se compila en cdigo intermedio (MSIL).
b) Compilacin Just-In-Time: compilador JIT incluido en el Framework que
compila el cdigo intermedio (MSIL) generando un cdigo mquina propio de
la plataforma, aumentando rendimiento de la aplicacin al ser especfico
para cada plataforma.
1.5. Instalacin de Visual Studio 2010
Para comenzar a trabajar, es necesario contar con el programa Visual
Studio 2010 instalado en el computador, para esto es necesario tener
Taller de Programacin III Profesor: Marcelo Montecinos C
9
credenciales de administrador. Sin embargo, no es necesario tener estas
credenciales para poder utilizar Visual Studio despus de su instalacin.
Para instalar Visual Studio, ejecute primer Setup.exe, que se encuentra en el
directorio raz de los discos de instalacin de Visual Studio o mediante descarga
del sitio web del producto.
Tema 2: Fundamentos de C#
C# (lase, en como C sharp) es un lenguaje de programacin que permite
el desarrollo de aplicaciones para Internet, mviles y aplicaciones de propsito
general. En un comienzo se desarroll para programar en la plataforma .NET de
Microsoft, pero dadas sus caractersticas se ha nivelado su estructura por las
principales entidades de estndares internacionales, permitiendo que se
desarrollen otras plataformas similares, y por lo tanto C# puede ser utilizado como
lenguaje de programacin en ellas. Entre estas plataformas se destaca
el Proyecto MONO desarrollado bsicamente para programar aplicaciones para
Linux, pero que tambin se ejecuta sobre Windows y MAC.
Para obtener ms informacin, vea Instalar distintas versiones de Visual
Studio en paralelo y Determinar qu versin de .NET Framework est
instalada.
Instalar distintas versiones de Visual Studio en paralelo: http://msdn.microsoft.com/es-es/library/vstudio/ms246609(v=vs.100).aspx Determinar qu versin de .NET Framework est instalada: http://msdn.microsoft.com/es-es/library/vstudio/y549e41e(v=vs.100).aspx
Taller de Programacin III Profesor: Marcelo Montecinos C
10
2.1. Tipos de datos
Cuando nos referimos a C#, estamos halando de un tipo de lenguaje
tipado, es decir, todas las variables y constantes tienen un tipo, al igual que toda
expresin que da como resultado un valor.
La biblioteca de clases .NET Framework define un conjunto de tipos
numricos integrados y tipos ms complejos que representan una amplia
variedad de construcciones lgicas, como el sistema de archivos, conexiones de
red, colecciones y matrices de objetos y fechas. Un programa tpico de C# usa los
tipos de la biblioteca de clases, y tambin los tipos definidos por el usuario.
La informacin almacenada en un tipo puede incluir lo siguiente:
El espacio de almacenamiento que requiere una variable del tipo.
Los valores mximo y mnimo que puede representar.
Los miembros (mtodos, campos, eventos, etc.) que contiene.
El tipo base del que hereda.
La ubicacin donde se asignar la memoria para las variables en
tiempo de ejecucin.
Los tipos de operaciones permitidos.
2.2. Funciones
Una funcin es un bloque de cdigo que realiza x operaciones y puede
devolver o no algn valor. Su principal usabilidad es aclarar y reusar la
programacin, por ejemplo, si trabajramos con todo el cdigo de una
aplicacin sera muy difcil de leer y de mantener.
Para tener una mayor claridad sobre las funciones, debemos saber que a
las funciones dentro de las clases les llamamos mtodos. Esto se debe a que
C# slo admite funciones dentro de clases, por lo tanto todo lo que nos
encontraremos son los llamados mtodos.
Taller de Programacin III Profesor: Marcelo Montecinos C
11
2.3. Control de Flujo
Para controlar el flujo de cdigo en un programa es necesario la utilizacin
de instrucciones de control de flujo. Dentro de C# las usadas son if else y switch.
Estas instrucciones de bifurcacin cambian el flujo de la ejecucin del programa
en tiempo de ejecucin segn ciertas condiciones. A continuacin definiremos
cada una de ellas.
a) if, else y else if: en la gran mayora de los programas ser necesario tomar
decisiones sobre qu acciones realizar. Estas pueden depender de datos que
introduzca el usuario, de si se ha producido algn error u otro. La estructura
condicional if ... else es la que nos permite tomar ese tipo de decisiones.
Traducida literalmente del ingls, se la podra llamar la estructura "si...si no", es
decir, "si se cumple la condicin, haz esto, y si no, haz esto otro".
Ejemplo de if y if else
b) La instruccin switch: en C#, la instruccin switch proporciona mltiples
operaciones de bifurcaciones condicionales. En C# se exige el uso de una
instruccin break o goto al final de cada caso y, si no hay ninguna presente, el
compilador produce el siguiente error: el control no puede pasar
explcitamente de una etiqueta de caso a otra. Se debe tener en cuenta que
donde un caso no especifica un cdigo para ejecutar cuando coincide ese
caso, el control pasar al caso siguiente.
Al utilizar goto en una instruccin switch, slo se puede saltar a otro bloque de
casos en el mismo modificador. Si desea saltar al caso predeterminado, debe
Taller de Programacin III Profesor: Marcelo Montecinos C
12
utilizar goto default. De lo contrario, utilice goto case cond, donde cond es la
condicin que coincide con el caso al que desee saltar. En C# se permite
realizar cambios en una variable de cadena.
Ejemplo de switch en C#
En el mbito de la programacin nos encontramos tambin con otro tipo
de instrucciones, estas son las instrucciones iterativas, estas sirven para ejecutar las
mismas instrucciones de un cdigo ms de una vez, determinado por una
condicin. Estas instrucciones tambin son conocidas como bucles.
Taller de Programacin III Profesor: Marcelo Montecinos C
13
Ejemplo de diagrama de una instruccin iterativa
Dentro de las instrucciones iterativas encontramos:
Instruccin while: permite ejecutar un bloque de instrucciones mientras
(while) se de una determinada condicin. Su sintaxis es:
Ejemplo:
int i = 0;
while(i < 10) {
Console.WriteLine(i);
i++;
} // 0 1 2 3 4 5 6 7 8 9
while (condicin) {
//Instrucciones a ejecutar }
Comentario [CEV2]: Necesito la revisin y visto Bueno de las sintaxis y los ejemplos de las instrucciones iterativas.
Taller de Programacin III Profesor: Marcelo Montecinos C
14
Instruccin dowhile: variante de while que evala la condicin al final del
bucle. Las instrucciones se ejecutan por lo menos una vez. Su sintaxis es:
Ejemplo:
int i = 0;
do
{
Console.WriteLine(i);
i++;
} while(i < 10); // 0 1 2 3 4 5 6 7 8 9
Instruccin for: variante de while que permite reducir el cdigo necesario
para los bucles ms utilizados. Su sintaxis es:
Ejemplo:
for(int i = 0; i < 10; i++)
{
Console.WriteLine(i);
} // 0 1 2 3 4 5 6 7 8 9
do {
//Instrucciones a ejecutar } while (condicin);
for(inicializacin;condicin;modificacin) {
//Instrucciones a ejecutar }
Taller de Programacin III Profesor: Marcelo Montecinos C
15
Si existen diversos valores en la Inicializacin y modificacin estos deben ser
separados por comas (,), tal como se muestra a continuacin:
for(int i = 0, j = 10; i < 10; i++, j--) {
Console.WriteLine(({0} {1}), i, j);
} //(0 10)(1 9)(2 8)(3 7)(4 6)(5 5)(6 4)(7 3)(8 2)(9 1)
Instruccin foreach: variante de for para el tratamiento de todos los
elementos de una coleccin. Su sintaxis es:
Ejemplo:
public static void Main(string[] args) {
foreach(string dato in args) {
Console.WriteLine(dato);
}
}
2.4. Input, Output con C#
La interaccin entre el usuario y el programa se realiza por el intercambio
de informacin entre ellos a travs de los input (ingreso de informacin) y output
(obtencin de informacin desde la consola), esto permite que exista una
comunicacin entre el usuario y el programa.
foreach(tipoElemento elemento in coleccin) {
//Instrucciones a ejecutar } }
Taller de Programacin III Profesor: Marcelo Montecinos C
16
La consola permite que esta comunicacin sea simple y es
tradicionalmente lo que se utiliza para la comunicacin entre usuarios y
programas. Dentro de la consola es la clase Console, la cual permite acceder a
las secuencias estndar de entrada, salida y error. Esta clase slo tiene sentido
para aplicaciones de consola, ya que permite la compatibilidad entre ellas. Las
entradas y salidas asociadas a la consola son:
Entrada estndar: teclado
Salida estndar: pantalla
Error estndar: pantalla
Es posible redireccionar todas las secuencias que veremos a continuacin.
Para comenzar veremos las secuencias de salida.
Console.Write y Console.WriteLine: muestran informacin en la pantalla de
la consola
WriteLine: enva un fin de lnea/retorno de carro
Ambos mtodos (Console.Write y Console.WriteLine son sobrecargados
Es posible emplear una cadena de formato y parmetros para las secuencias de
Salida por pantalla:
Formatos de texto
Formatos numricos
Dentro de las secuencias de entrada tenemos:
Console.Read y Console.ReadLine: leen informacin introducida por el
usuario, donde: Read lee el siguiente carcter y ReadLine lee toda la lnea
introducida.
Comentario [CEV3]: Se refiere a los mtodos anteriores? Sobre Write?
Comentario [CEV4]: Para las secuencias de salida?
Taller de Programacin III Profesor: Marcelo Montecinos C
17
2.5. Manejo de excepciones
Preparan los programas para lo inesperado. Tradicionalmente, los mtodos
devuelven cdigos informativos, donde el cdigo de la lgica del programa y el
del tratamiento del error estn mezclados. Las razones de que esto ocurra son:
Todos los cdigos de error son parecidos.
Los cdigos de error no son significativos por s mismos.
Los cdigos de error se definen a nivel de mtodo.
Los cdigos de error son muy fciles de ignorar.
Para poder indicar y controlas los errores producidos el tiempo de
ejecucin crea Objetos de Excepcin. Estos a su vez se definen a travs de
System.Exception, lo cual proporciona informacin clara sobre el cdigo
generado del error ocurrido.
Una de las instrucciones que nos puede servir para controlar errores es:
Instruccin trycatch: separa la lgica del programa del tratamiento del
error. Se realiza para controlar posibles errores mientras se ejecuta el
cdigo. Si sintaxis es:
Taller de Programacin III Profesor: Marcelo Montecinos C
18
Tambin el Bloque catch general puede capturar cualquier excepcin
independientemente de su clase, pero no proporciona informacin detallada
acerca del error atrapado por el catch(Excetion ex).
De todas formas, aunque en un comienzo de la programacin se pueden
introducir cdigos e instrucciones que ayuden a controlar posibles errores, los
programadores pueden lanzar las excepciones del sistema o las suyas propias
atraves de la instruccin throw, el programador puede lanzar excepciones propias
fabricadas por l, como por ejemplo en el caso de validar un rango de edad.
try{ instrucciones }catch(excepcin1) { tratamiento1 } catch(excepcin2) { tratamiento2 } finally instruccionesFinally
Comentario [CEV5]: Es correcto esto?
Taller de Programacin III Profesor: Marcelo Montecinos C
19
If (edadTrabajado
Taller de Programacin III Profesor: Marcelo Montecinos C
20
Tema 3: Programacin de OO con C#
Dentro de este paradigma, la programacin es adquisicin de
conocimiento de la realidad que queremos modelar, en pos de construir un
modelo computacional de la misma. Asociamos entonces a entes de la realidad,
objetos del mundo computacional con el objetivo de construir un modelo de
simulacin de la misma.
La OOP. se basa en la idea natural de la existencia de un mundo lleno de
objetos y que la resolucin del problema se realiza en trminos de objetos, es
decir, es un lenguaje es orientado a objetos, ya que los elementos esenciales de
construccin del software son objetos y mensajes. Este tipo de programacin
implica entre otros beneficios, una gran capacidad de reso, ya que una vez que
hemos encontrado un mecanismo para resolver un problema, lo utilizamos para
alcanzar el mismo resultado exitoso una y otra vez.
Pero, qu se entiende por objeto?, podemos definir un objeto como un
conjunto complejo de datos y programas que poseen estructura y forman parte
de una organizacin. Esto detalla elementos importantes de los objetos.
Entendemos que un objeto no es un dato simple, sino que contiene en su interior
72196561
Taller de Programacin III Profesor: Marcelo Montecinos C
21
cierto nmero de componentes bien estructurados. Otro aspecto fundamental
del objeto es que este no es un ente aislado, sino que forma parte de una
organizacin jerrquica o de otro tipo.
3.1. Clases en C#
Una clase es una construccin que permite crear tipos personalizados
propios mediante la agrupacin de variables de otros tipos, mtodos y
eventos. Una clase es como un plano. Define los datos y el comportamiento de un
tipo. Si la clase no se declara como esttica, el cdigo de cliente puede utilizarla
mediante la creacin de objetos o instancias que se asignan a una variable. La
variable permanece en memoria hasta todas las referencias a ella estn fuera del
mbito.
En ese momento, CLR la marca como apta para la recoleccin de
elementos no utilizados. Si la clase se declara como esttica, solo existe una copia
en memoria y el cdigo de cliente solo puede tener acceso a ella a travs de la
propia clase y no de una variable de instancia.
Para obtener ms informacin, vea Clases estticas y sus miembros.
http://msdn.microsoft.com/es-es/library/79b3xss3.aspx
3.2. Constantes, campos, mtodos y propiedades.
Una clase puede tener sus propias constantes, campos, variables (llamadas
"propiedades"), y funciones (llamadas "mtodos"). Estos se definen como:
Recordemos que en una estructura de datos tal como una clase puede
estar formado por atributos variables, es decir que su valor puede cambiar en
cualquier momento y /o constantes cuyo valor es invariable.
Miembros de clase, los diversos elementos que conforman la clase (datos, y
mtodos): cada clase puede tener distintos miembros de clase, entre los que
se incluyen las propiedades que describen los datos de clase, los mtodos que
Comentario [CEV7]: Al parecer falta referirse a constantes y mtodos.
Comentario [CEV8]: El miembro, sera la constante o el mtodo?
Taller de Programacin III Profesor: Marcelo Montecinos C
22
definen el comportamiento de la clase y los eventos que proporcionan
comunicacin entre distintos objetos y clases.
Los campos y propiedades representan informacin que contiene un
objeto. A continuacin veremos ambos.
Campos: se parecen a las variables ya que se pueden leer y establecer
directamente. Tanto C# como Visual Basic permiten crear un campo privado
para almacenar el valor de propiedad o bien usar las denominadas
propiedades de implementacin automtica que crean este campo en
segundo plano automticamente y proporcionan la lgica bsica para los
procedimientos de propiedad.
Propiedades: tienen procedimientos get y set, que proporcionan un mayor
control sobre la forma en que se establecen o devuelven los valores. La
mayora de las propiedades tienen mtodos o procedimientos para configurar
y obtener el valor de la propiedad. Sin embargo, se pueden crear
propiedades de solo lectura o solo escritura para restringir su modificacin o
lectura.
En Visual Basic se pueden utilizar las palabras
clave ReadOnly y WriteOnly. En C#, se puede omitir el mtodo de
propiedad get o set. Sin embargo, tanto en Visual Basic como en C#, las
propiedades implementadas automticamente no pueden ser de solo lectura o
de solo escritura.
3.3. Herencia
La herencia, junto con la encapsulacin y el polimorfismo, es una de las tres
caractersticas principales (o pilares) de la programacin orientada a objetos. La
herencia permite crear nuevas clases que reutilizan, extienden y modifican el
comportamiento que se define en otras clases. La clase cuyos miembros se
heredan se denomina clase base y la clase que hereda esos miembros se
Taller de Programacin III Profesor: Marcelo Montecinos C
23
denomina clase derivada. Una clase derivada solo puede tener una clase base
directa. Sin embargo, la herencia es transitiva. Si ClassC se deriva de ClassB y
ClassB se deriva de ClassA, ClassC hereda los miembros declarados en ClassB y
ClassA.
3.4. Espacios de nombre
Los espacios de nombres son una manera de organizar los distintos tipos
que aparecen en un programa en C#. Conceptualmente es similar a una
carpeta en un sistema de archivo del equipo. Al igual que las carpetas, los
espacios de nombres permiten a las clases tener un nombre completo nico. Un
programa en C# contiene uno o ms espacios de nombres, que quedan
definidos por el programador o como parte de una biblioteca de clases
previamente escrita.
Por ejemplo, el espacio de nombres System incluye la clase Console (una
clase que contiene los mtodos para leer y escribir en la ventana de la consola).
El espacio de nombres System tambin contiene mltiples espacios de nombres
diferentes, como System.IO y System.Collections. Slo .NET Framework tiene ms
de ochenta espacios de nombres, cada uno con miles de clases: los espacios de
nombres se utilizan para minimizar la confusin que se podra producir entre tipos y
mtodos con nombres parecidos.
Si escribe una clase fuera de una declaracin de espacio de nombres, el
compilador proporcionar un espacio de nombres predeterminado para esa
clase.
3.5. Enumeraciones
Una enumeracin es un tipo con valor especial, que deriva de
System.Enum, pueden ser de tipo byte,int32 o uint64, los campos son literalmente
estticos, cada uno representa una constante.
Taller de Programacin III Profesor: Marcelo Montecinos C
24
Cules son sus restricciones:
No puedes definir tus propios mtodos.
No puedes implementar interfaces.
No puedes definir propiedades ni eventos.
Esto nos hace preguntarnos: para que me sirven las enumeraciones? Son
ellas quienes nos proveen una serie de mltiples opciones para los desarrolladores,
ya que su propsito es simplificar el cdigo y mejorarlo habilitndolo para el uso
de smbolos en lugar de simples valores numricos.
Taller de Programacin III Profesor: Marcelo Montecinos C
25
3.6. Eventos y delegados
Un evento es un mensaje que enva un objeto cuando ocurre una accin.
La accin puede estar causada por la interaccin del usuario, como un clic, o por
otra lgica del programa. El objeto que provoca el evento se conoce como
remitente del evento. El objeto que captura el evento y responde a l se
denomina receptor del evento.
En las comunicaciones de eventos, el remitente del evento no sabe qu
objeto o mtodo recibir los eventos que provoca. Se necesita un intermediario
(o mecanismo de tipo puntero) entre el origen y el receptor. .NET Framework
define un tipo especial (Delegate) que proporciona la funcionalidad de un
puntero a funcin.
Un delegado es una clase que puede guardar una referencia a un
mtodo. A diferencia de otras clases, una clase de delegado tiene un prototipo y
puede guardar referencias nicamente a los mtodos que coinciden con su
prototipo. Por lo tanto, un delegado equivale a un puntero a funcin con
seguridad o a una devolucin de llamada. Aunque los delegados tienen otros
usos, esta explicacin se centra en la funcionalidad de control de eventos de los
delegados. Una declaracin de delegado es suficiente para definir una clase de
delegado. La declaracin proporciona el prototipo del delegado y Common
Language Runtime proporciona la implementacin.
3.7. Expresiones Lambda
Una expresin lambda es una funcin annima que se puede usar para
crear tipos delegados o de rbol de expresin. Al utilizar expresiones lambda,
puede escribir funciones locales que se pueden pasar como argumentos o
devolverse como valor de llamadas de funcin. Las expresiones lambda son
especialmente tiles para escribir expresiones de consulta LINQ.
Para crear una expresin lambda, especifique parmetros de entrada (si
existen) a la izquierda del operador =>lambda, y coloca la expresin o bloque de
Taller de Programacin III Profesor: Marcelo Montecinos C
26
instrucciones en el otro lado. Por ejemplo, la expresin lambda x => x *
x especifica un parmetro denominado x y devuelve el valor x elevado al
cuadrado. Puede asignar esta expresin a un tipo delegado, como se muestra en
el ejemplo siguiente:
delegate int del(int i); static void Main(string[] args) { del myDelegate = x => x * x; int j = myDelegate(5); //j = 25 }
3.8. Ensamblados
Los ensamblados componen la unidad fundamental de implementacin,
control de versiones, reutilizacin, mbito de activacin y permisos de seguridad
en una aplicacin basada en .NET. Los ensamblados adoptan la forma de un
archivo ejecutable (.exe) o un archivo de biblioteca de vnculos dinmicos (.dll) y
son los bloques de creacin de .NET Framework. Proporcionan a Common
Language Runtime la informacin que necesita para estar al corriente de las
implementaciones de tipos. Un ensamblado puede entenderse como una
coleccin de tipos y recursos que forman una unidad lgica de funcionalidad y
que se compilan para trabajar conjuntamente.
Los ensamblados pueden contener uno o ms mdulos. Por ejemplo, los
proyectos de mayor envergadura se pueden planificar de tal forma que varios
desarrolladores individuales trabajen en mdulos separados y, a la vez, todos
juntos para crear un solo ensamblado.
Taller de Programacin III Profesor: Marcelo Montecinos C
27
RESUMEN
C# es un lenguaje de programacin simple pero eficaz, diseado para
escribir aplicaciones empresariales.
Nace como una evolucin de los lenguajes C y C++, utilizando muchas de
las caractersticas de C++ en las reas de instrucciones, expresiones y operadores,
pero presentando considerables mejoras e innovaciones en reas como
seguridad de tipos, control de versiones, eventos y recoleccin de elementos no
utilizados (liberacin de memoria).
C# proporciona acceso a los tipos de API ms comunes: .NET Framework,
COM, Automatizacin y estilo C. Asimismo, admite el modo unsafe, en el que se
pueden utilizar punteros para manipular memoria que no se encuentra bajo el
control del recolector de elementos no utilizados.
Desde el punto de vista profesional la tecnologa .Net especficamente el
lenguaje C# es una eficiente herramienta para el desarrollo aplicaciones web
distribuidas, que est en constante evolucin y actualizacin considerando la
nuevas necesidades del mercado en Tecnologas de informacin .
Comentario [CEV9]: Incluir un comentario personal, sobre porque es importante aprenderlo.
Taller de Programacin III Profesor: Marcelo Montecinos C
28
BIBLIOGRAFA
Bibliografa obligatoria
Jeff Fergurson, Brian Patterson, Jason Beres . (2003) La Biblia de C#. Ediciones
Anaya Multimedia. Deposito Legal: M.3033-2003 ISBN:84-415-1484-4.
Bibliografa complementaria
Visual C# - MSDN - Microsoft
http://msdn.microsoft.com/en-us/library/kx37x362.aspx.
Comentario [CEV10]: Utilizar algunos de los libros que se encuentran disponible en la biblioteca virtual de Inacap.