En esta lección se pretende familiarizar al alumno con el entorno Visual Studio .Net, que es el entorno más completo para realizar proyectos software en cualquiera de los lenguajes .Net, en este caso en C#.
Esta lección es introductoria, sin embargo resulta de gran utilidad para establecer un primer contacto con el entorno en caso de no conocerlo. Además, permite familiarizarse con él, descubriendo las principales herramientas y opciones de las múltimples que el entorno ofrece.
Objetivos.En esta leción el alumno aprenderá a:
- Crear un nuevo
proyecto de C# en Visual Studio .Net.
- Interpretar e interactuar con las
herramientas más importantes del entorno Visual Studio .Net.
- Compilar y
ejecutar proyectos en C#.
- Establecer directivas al preprocesador de C#.
TEMA 2. TIPOS DE DATOS PREDEFINIDOS, VARIABLES, EXPRESIONES Y SENTENCIAS.Introducción.En esta lección se presenta la sintáxis básica del lenguaje, con la que se pueden comenzar a crear ejemplos sencillos. La sintaxis de C# no es muy diferente de los lenguajes C++ ó Java, puesto que tiene influencias de ambos, pero presenta unas características propias que le aportan una gran facilidad a la hora de aprender a programar con C#.
En concreto se estudiarán los diferentes tipos de datos predefinidos por el lenguaje, así como las primeras construcciones que se pueden hacer con el mismo: expresiones, uso de operadores, conversión de tipos, declaración de variables y constantes, así como las sentencias condicionales que sirven para guiar el flujo de un programa.
Objetivos.En esta lección el alumno aprenderá a:
- Definir variables y
constantes de los diferentes tipos definidos en C#.
- Crear expresiones
con dichas variables, constantes o valores concretos de los diferentes
tipos, utilizando los operadores entre ellos.
- Crear secuencias
condicionales que evalúen, utilicen o modifiquen el valor de dichas
variables.
TEMA 3. CLASES Y OBJETOS. Introducción.Esta lección presenta los elementos fundamentales que forman parte de todo programa escrito en C# como son las clases y los objetos. Como todo lenguaje basado en el paradigma de Orientación a Objetos, la programación en C# se basa en la creación de clases en las que se define su comportamiento y sus datos internos, y de las que, en tiempo de ejecución se instanciarán objetos, que serán los componentes del programa que realizarán las tareas para las que fueron creadas en función de sus datos y el comportamiento de su clase.
Objetivos.En esta lección el alumno estudiará los fundamentos de la
programación orientada a objetos, y aprenderá a:
- Crear clases y
jerarquías de clases en C#, utilizando los diferentes modificadores de
las clases.
- Declarar variables miembro de la clase o de la instancia,
crear métodos y acceder a las variables definidas, utilizando los
conocimientos de sintaxis básica aprendidos en la lección anterior para
definir el comportamiento de cada clase en base a sus métodos.
- Crear
programas que reciban argumentos de la línea de comandos y ofrezcan
resultados por la misma vía.
TEMA 4. POLIMORFISMO.Introducción. En esta lección se continúa con los conceptos de orientación a objetos, explicando los aspectos más avanzados relativos a la herencia como son aquellos relacionados con el polimorfismo. El polimorfismo es una característica muy interesante de la programación orientada a objetos, que se encuentra recogida en el lenguaje C#. Mediante el polimorfismo se pueden tener diferentes comportamientos en diversas clases relacionadas mediante la herencia, pero ofreciendo mecanismos de invocación comunes, siendo el objeto concreto el que recurra a un comportamiento u otro en función de su clase.
Objetivos.En esta lección el alumno aprenderá a:
- Sobrecargar métodos y
operadores, estableciendo comportamientos diferentes para el mismo
método en distintas clases de una jerarquía, de forma que se
especialice su comportamiento.
- Utilizar la herencia de interfaz o de
implementación para establecer una interfaz de invocación invariante, y
definir el comportamiento en cada clase que siga dicha interfaz.
- Realizar conversiones entre clases definidas por el usuario.
TEMA 5. ENUMERACIONES, ESTRUCTURAS, ARRAYS, ÍNDICES Y COLECCIONES.Introducción.En esta lección se estudiará la definición de tipos complejos en C#, utilizando construcciones del lenguaje como son las enumeraciones, arrays, listas, colas, pilas y demás. Se explicará en que consiste cada una de estas colecciones y se dará unas ideas de uso.
Objetivos.En esta lección el alumno aprenderá a:
- Entender en qué
consisten los distintos tipos que aquí se nombran.
- Manejar los
distintos tipos compuestos aquí descritos, estructuras, arrays, listas
de arrays, colas, etc.
- Hacer uso de los distintos métodos y propiedades
que tienen las clases que encapsulan estos tipos.
TEMA 6. ERRORES Y MANEJO DE EXCEPCIONES. Introducción.Esta lección describe el mecanismo de control de errores basado en la propagación y captura de excepciones. Las excepciones constituyen un mecanismo muy potente para gestionar los errores o situaciones anómalas en un programa, puesto que permiten delegar el tratamiento del mismo hasta un objeto que tenga la capacidad para recuperar el estado de excepción y realizar las acciones necesarias para proseguir con la ejecución, en caso de que sea posible.
Objetivos.En esta lección el alumno aprenderá a:
- Lanzar y capturar
excepciones como método de control de errores en un programa.
- Definir
excepciones particulares para resolver necesidades concretas.
- Diseñar
la estructura de excepciones de un programa
TEMA 7. CADENAS DE CARACTERES Y EXPRESIONES REGULARES. Introducción.En esta lección se tratarán todas las posibilidades ofrecidas por C# para tratar texto. El manejo de cadenas de caracteres es una de las tareas más comunes que se realizan en proyectos pequeños, y está presente en casi cualquier proyecto de programación. Se explicarán desde la más sencilla y menos eficiente como son los Strings hasta las expresiones regulares, una potente herramienta de análisis de textos que ofrece nuevas posibilidades al tratamiento de cadenas de caracteres.
Objetivos.En esta lección, el alumno aprenderá a:
- Inicializar los
Strings.
- Hacer uso de la clase System.String, para operar con los
strings.
- Hacer uso de la clase StringBuilder, que implementa unas
operaciones más eficientes.
- Entender el concepto de expresión regular.
- Usar la clase Regex, para hacer operaciones sobre texto basándose en
expresiones regulares.
- Comprender los distintos conceptos: Coincidencia,
grupo y captura.
- Utilizar las distintas clases de C# que implementan
estos conceptos.
TEMA 8. DELEGADOS Y EVENTOS. Introducción.Esta lección pretende iniciar al alumno en el manejo de mecanismos de detección de eventos y situaciones asíncronas por medio de delegados y eventos. Los delegados son una generalización de los eventos, que permiten registrar interés en ser informados ante la ocurrencia de situaciones asíncronas.
Objetivos.En esta lección el alumno aprenderá a:
- El concepto de
delegados y eventos.
- Suscribirse a un evento para ser notificado de
forma asíncrona cuando se produzca.
- Crear delegados para publicar la
ocurrencia de algún evento .
- Establecer múltiples delegados que serán
notificados ante la ocurrencia de un evento.
TEMA 9. CONSTRUCCION DE APLICACIONES PARA WINDOWS. Introducción.En esta lección se enseñá al alumno a crear aplicaciones con una interfaz gráfica de usuario (GUI). Este tipo de aplicaciones se caracterizan por tener una interfaz amigable con ventanas, que ofrece componentes gráficos.
Se enseñarán las facilidades que el entorno .Net ofrece, y la forma de utilizar los componentes gráficos desde código en C#, de forma que se puedan dotar a nuestras aplicaciones de una interfaz amigable.
Objetivos.En esta lección el alumno aprenderá a:
- Dotar de interfaz
gráfica a sus aplicaciones.
- Crear formularios con los que el usuario
pueda introducir datos en la aplicación.
- Crear interfaces gráficas con
los diferentes recursos que la plataforma .Net pone a su disposición,
como menús, barras de herramientas, diferentes tipos de diálogos y
controles para manejarlos.
- Utilizar el modelo de eventos y delegados
para seguir el flujo de control de la interfaz
TEMA 10. ENTRADA / SALIDA.La plataforma .NET proporciona una abstracción para representar los ficheros y directorios del sistema operativo mediante clases. Estas clases proporcionan métodos para crear, abrir manipular, cerrar y borrar los ficheros y directorios. Se encuentran en el espacio de nombres System.IO, que incluye la clase File, la cual representa un fichero en disco, y la clase Directory, que representa un directorio.
TEMA 11. THREADS. Introducción. C# es un lenguaje de programación orientado a objetos que ofrece soporte para aplicaciones con multiples flujos de ejecución. Para ello, existe una clase que implementa los threads, asi como otras que ofrecen mecanismos de sincronización de threads.
En esta lección se tratarán los threads y los métodos que existen para sincronizar su ejecución.. Se aprenderá cómo se declaran y cómo se usan. Se sus métodos y las propiedades y se aprenderá a trabajar con ellos, realizando las tareas más comunes.
Objetivos.En esta lección se aprenderá a:
- Crear multiples flujos de ejecución mediante el uso de threads .
- Establecer prioridades
entre los threads de una aplicación .
- Proteger recursos compartidos por
varios threads.
- Operaciones básicas del manejo de threads.
De esta forma
el alumno será capaz de:
- Definir sus propios threads para sus
aplicaciones con soporte multihilo.
- Sincronizar el acceso a recursos
compartidos por los threads de sus aplicaciones.
- Programar aplicaciones
más rápidas y más eficientes
TEMA 12. PROGRAMACIÓN DE ATRIBUTOS Y REFLEXIÓN. Introducción. C# ofrece la posibilidad de añadir información adicional al código, en forma de atributos. Así, el programador puede crear los atributos que desee para documentar el código.
Además, estos atributos pueden influir también en el comportamiento del programa, puesto que gracias a la reflexión podemos acceder a estos atributos y utilizarlos desde otras aplicaciones. Además de esto, la reflexión permite acceder y utilizar los tipos definidos en los programas.
Objetivos.En esta lección el alumno aprenderá aprenderá:
- El concepto de
atributo.-
- La programación de atributos.
- El concepto de reflexión.
- La
utilización de la reflexión para acceder a atributos y tipos en los
ensamblados.
De esta forma será capaz de:
- Definir sus propios atributos
en el código.
- Acceder y utilizar atributos presentes en otros
ensamblados.
- Acceder y utilizar tipos definidos en otros ensamblados.