Resumen Ejecutivo Unidad Uno

28
Taller de Programación III C# Profesor: Marcelo Montecinos C.

description

Resumen Ejecutivo Unidad Uno

Transcript of Resumen Ejecutivo Unidad Uno

  • 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.