35
Introducción a Microsoft Visual C# .NET

c# introduccion

Embed Size (px)

DESCRIPTION

introducción a .NET c#

Citation preview

  • Introduccin a Microsoft

    Visual C# .NET

  • La plataforma .Net

    .NET, en esencia es una librera de clases que contienen

    o encapsulan una gran cantidad de funciones que

    trabajan sobre el sistema operativo, logrando una

    estructura comn para todos los lenguajes que trabajen

    sobre esta plataforma.

    .NET Framework permite acceder a una infraestructura

    dotada con lenguajes de programacin como C#, Visual

    Basic .NET, C++ y JScript, y con la posibilidad de

    acceder a infinidad de servicios tiles para desarrollar

    cualquier tipo de aplicacin. Como consecuencia una

    clase que sea programada en C#, podr ser heredada o

    utilizada en cualquier lenguaje de la plataforma.

  • .Net Framework

    La plataforma .NET de Microsoft es un componente desoftware que puede ser aadido al sistema operativoWindows.

    Provee un extenso conjunto de soluciones predefinidas paranecesidades generales de la programacin de aplicaciones,y administra la ejecucin de los programas escritosespecficamente con la plataforma.

    .NET Framework se incluye en Windows Server 2008,Windows Vista, Windows 7 y Windows 8. De igual manera,puede ser instalada en Windows XP, y en la familia desistemas operativos Windows Server 2003.

    Una versin "reducida" de .NET Framework est disponiblepara la plataforma Windows Mobile, incluyendo telfonosinteligentes.

  • Componentes .Net

    Framework

    El entorno comn de ejecucin para lenguajes, o CLR

    que es el motor en tiempo de ejecucin del Framework.

    La biblioteca de clases base o BCL.

  • Componentes .Net

    Framework CLR

    Common Language Runtime o Entorno comn de ejecucin.

    El CLR es el verdadero ncleo del framework de .NET, en lse cargan las aplicaciones desarrolladas en los distintoslenguajes.

    La herramienta de desarrollo compila el cdigo fuente decualquiera de los lenguajes soportados por .NET en uncdigo intermedio, el CIL (Common Intermediate Language)antes conocido como MSIL (Microsoft IntermediateLanguage).

    Para ejecutarse se necesita un segundo paso, uncompilador JIT (Just-In-Time) es el que genera el cdigomquina real que se ejecuta en la plataforma del cliente.De esta forma se consigue con .NET independencia de laplataforma de hardware.

  • Componentes .Net

    Framework BCL

    La Biblioteca de Clases Base (BCL) maneja la mayora de

    las operaciones bsicas que se encuentran involucradas

    en el desarrollo de aplicaciones, incluyendo entre otras:

    Interaccin con los dispositivos perifricos

    Manejo de datos (ADO.NET)

    Administracin de memoria

    Cifrado de datos

    Transmisin y recepcin de datos por

    distintos medios (XML, TCP/IP)

    Administracin de componentes Web que

    corren tanto en el servidor como en el

    cliente (ASP.NET)

    Manejo y administracin de excepciones

    Manejo del sistema de ventanas

    Herramientas de despliegue de grficos

    (GDI+)

    Herramientas de seguridad e integracin con

    la seguridad del sistema operativo

    Manejo de tipos de datos unificado

    Manejo de cadenas de caracteres y

    expresiones regulares

    Operaciones aritmticas

    Manipulacin de fechas, zonas horarias y

    periodos de tiempo

    Manejo de arreglos de datos y colecciones

    Manipulacin de archivos de imgenes

    Aleatoriedad

    Generacin de cdigo

    Manejo de idiomas

    Auto descripcin de cdigo

    Interaccin con el API Win32 o Windows

    API.

    Compilacin de cdigo

    Interaccin con otras aplicaciones

  • Visual Studio .NET

    Microsoft Visual Studio es un entorno de desarrollointegrado (IDE) para sistemas operativos Windows. Soportamltiples lenguajes de programacin tales como C++, C#,Visual Basic .NET, F#, Java, Phyton, Ruby, PHP; al igual queentornos de desarrollo web como ASP.NET.

    Versiones existentes del Visual Studio

    Visual Studio 6.0

    Visual Studio .NET 2002

    Visual Studio .NET 2003

    Visual Studio 2005

    Visual Studio 2008

    Visual Studio 2010

    Visual Studio 2012/13

  • Visual Studio .NET

    Arquitectura de desarrollo

  • Visual Studio .NETEsquema de desarrollo y ejecucin

  • Fundamentos

    C# (lase C sharp) es un lenguaje de programacin creado porMicrosoft que permite el desarrollo de aplicaciones para Internet,para mviles y aplicaciones de propsito general.

    Inicialmente se desarroll para programar en la plataforma .NET,pero se han desarrollado otras plataformas que cumplen con dichaestructura y por lo tanto C# puede ser utilizado como lenguaje deprogramacin en ellas. Entre estas plataformas se destaca elProyecto MONO, desarrollado para Linux y Mac.

    El primer lenguaje en importancia para el CLR es C#, mucho de loque soporta la Plataforma .NET est escrito en C#.

    El lenguaje C# es orientado a objetos y se ha creado basndose enla estructura de C y C++, especialmente su sintaxis y potencia, yadoptando el estilo y metodologa de la programacin en VisualBasic.

  • Caractersticas de C#

    C# provee el beneficio de un ambiente elegante y unificado.

    No soporta herencia mltiple, solamente el runtime .NET permite laherencia mltiple en la forma de interfaces, las cuales no puedencontener implementacin.

    No maneja apuntadores, para emular la funcin de los apuntadores seutiliza delegates el cual provee las bases para el .NET event model.

    Por default trabaja con cdigo administrado.

    La Plataforma .NET provee un colector de basura que es responsable deadministrar la memoria en los programas C#.

    El manejo de errores est basado en excepciones.

    Soporta los conceptos como encapsulacin, herencia y polimorfismo dela programacin orientada a objetos.

    El Modelo completo de clases est construido en la cima del .NET VirtualObject System (VOS). El modelo de objetos es parte de lainfraestructura y ya no forma parte del lenguaje de programacin.

  • Caractersticas de C#

    No existen funciones globales, variables o constantes. Todo deber serencapsulado dentro de la clase, como un miembro de la instancia (accesibleva una instancia de clase) o un miembro esttico (va el tipo).

    Los mtodos que se definen en las clases son por default no virtuales (nopueden ser sobreescritos al derivar clases)

    Soporta los modificadores de acceso private, protected, public y agrega uncuarto modificador internal.

    No es posible utilizar variables no inicializadas.

    No es posible hacer el cast de un entero a un tipo de referencia (objeto).

    El soporte de versiones lo provee el CLR.

    Permite acceder a diferentes APIs a travs de .NET Common LanguageSpecification, el cual define el estndar de interoperabilidad entre lenguajesque se adhieran a este estndar.

    La Plataforma .NET provee un acceso transparente a COM.

  • Orientacin a Objetos

    C# es un lenguaje completamente orientado a objetos,

    que implementa casi todo los conceptos y abstracciones

    presentes en C++ y Java.

    C# implementa conceptos como herencia,

    encapsulacin, polimorfismo y programacin basada en

    interfaces. Adems soporta las construcciones tpicas de

    C++ y Java, como clases, estructuras, interfaces y

    enumeraciones, as como algunas construcciones

    nuevas, como los delegados.

    C# no incluye una librera especfica, sino que utiliza la

    librera de clases de la plataforma .NET para todas sus

    necesidades,

  • Lo necesario para trabajar

    con C#

    Se necesita el entorno de trabajo conocido como .NET

    Framework, el cual incluye la plataforma de desarrollo

    y ejecucin de las aplicaciones .NET, actualmente la

    versin 4.5.

    Se sugiere nicamente un editor de texto sencillo, como

    el Bloc de notas, y que se realice la compilacin

    mediante la lnea de comandos.

    Un entorno de desarrollo integrado (IDE) como el

    Sharpdevelop, Visual Studio .NET

  • C# frente a Java

    C# y Java son lenguajes muy similares, de sintaxis

    basada en C/C++, orientados a objetos

    Una de las diferencias ms importantes es que C# es

    mucho ms cercano a C++ en cuanto a diseo se refiere.

    No hay enumeraciones en Java y sin embargo era un

    concepto muy usado en C/C++. En C# se han mantenido

    las enumeraciones, y se han adaptado al nuevo

    lenguaje.

    Toda la estructura de los espacios de nombres es mucho

    ms cercana a C++.

  • C# frente a C++

    Puesto que C# se ejecuta en una mquina virtual, sta

    se hace cargo de la gestin de memoria y por lo tanto el

    uso de punteros es mucho menos importante en C# que

    en C++.

    C# tambin es mucho ms orientado a objetos que C++,

    hasta el punto de que todos los tipos usados derivan en

    ltima instancia el tipo object.

    C# renuncia a la idea de herencia mltiple de clases

    presente en C++. Sin embargo, referido a clases, C#

    implemente propiedades del tipo de las que existen en

    Visual Basic, y los mtodos de las clases son accedidos

    mediante . en lugar de ::.

  • Estndares de codificacin en

    C#

    Usa notacin Pascal (el primer carcter de todas las

    palabras se escribe en Maysculas y los otros caracteres

    en minsculas) para el nombre de las clases y de los

    mtodos.

    public class HolaMundo

    {

    }

    void DiHola(string nombre)

    {

    }

  • Estndares de codificacin en

    C#

    Usa notacin de Camell (el primer carcter de todas las

    palabras, excepto de la primera palabra se escribe en

    Maysculas y los otros caracteres en minsculas. ) para

    variables y parmetros de los mtodos

    int cuentaTotal = 0;

    void DiHola(string nombre)

    {

    string mensajeCompleto = Hola + nombre;

    }

  • Estndares de codificacin en

    C#

    No uses nombres de variables de un solo carcter como

    i, n, s etc. Usa nombres como indice, temp. Una

    excepcin en este caso podra ser las variables usadas

    para iteraciones en los ciclos.

    for ( int i = 0; i < cuantos; i++)

    {

    }

  • Estndares de codificacin en

    C#

    No uses guiones bajos (_) para nombres de variables

    locales.

    Todas las variables globales deben usar el prefijo de

    guin bajo (_) de tal forma que puedan ser identificadas

    de otras variables locales.

    No uses palabras reservadas para nombres de variables.

    Usa el prefijo Is para variables de tipo boolean o

    prefijos similares.

    private bool IsValido

    private bool IsActivo

  • Estndares de codificacin en

    C#

    Usa el prefijo apropiado para cada elemento de la

    Interfaz Grfica de manera que puedas identificarlos

    para el resto de las variables.

    Control Prefijo

    TextBox txt

    DataGrid dtg

    Button btn

    ListBox lst

    CheckBox chk

    RadioButton rbt

    Label lbl

  • Estndares de codificacin en

    C#

    Usa TAB para la sangra. No uses ESPACIOS.

    Los comentarios deben estar al mismo nivel de sangra

    que el cdigo.

    Correcto:

    //Formatea un mensaje y lo despliega

    string mensajeCompleto = Hola + nombre;

    Incorrecto:

    //Formatea un mensaje y lo despliega

    string mensajeCompleto = Hola + nombre;

  • Estndares de codificacin en

    C#

    Usa #region para agrupar piezas de cdigo juntas.

  • Estndares de codificacin en

    C#

    Las rutinas que controlan los eventos (event handlers)

    no deben contener el cdigo que ejecuta la accin

    requerida. En vez de ello, llama a otro mtodo desde la

    rutina controladora.

    ButtonVentas_Click(Object sender, EventArgs e) Handles

    Button1.Click

    {

    GetVentasPorMes();

    }

    Nunca incrustes en el cdigo rutas o letras de

    dispositivos. Obtn la ruta de la aplicacin

    programticamente y usa rutas relativas a ella.

  • Estndares de codificacin en

    C#

    Los mensajes de error deben ayudar al usuario a

    resolver el problema. Nunca muestres mensajes de

    error como Error en la Aplicacin, Hay un error

    etc. En vez de ello da mensajes especficos como Fallo

    al actualizar la base de datos, sugiere lo que el usuario

    debe realizar: Fallo al actualizar la base de datos. Por

    favor asegrate de que la cuenta y la contrasea sean

    correctos.

    Evita mtodos y propiedades pblicas, a menos que

    ellas realmente necesiten ser accedidas desde afuera de

    la clase.

    Organiza lgicamente tus archivos dentro de carpetas

    apropiadas. Usa una jerarqua de carpetas de 2 niveles.

  • Estndares de codificacin en

    C#

    Cometarios buenos y entendibles hacen el cdigo ms

    mantenible.

    No escribas comentarios para cada lnea de cdigo o

    para cada variable declarada.

    Usa // o // para comentarios. Evita usar /* */

    No escribas rutinas try-catch en todos tus mtodos.

    salas solo si hay una posibilidad de que una excepcin

    especfica pueda ocurrir.

    Nunca hagas un atrapa un error y no hagas nada. Si

    escondes una excepcin, nunca sabrs si la excepcin

    sucedi o no, atrapar una excepcin y no hacer nada

    est permitido. En el peor de los casos debes registrar

    la excepcin y continuar.

  • MUCHAS GRACIAS

  • Introduccin a C# 1

    Prctica: Creacin de un programa C# sencillo

    Objetivos Al final de esta prctica, usted ser capaz de:

    Crear un programa C#.

    Compilar y ejecutar un programa C#.

    Usar el Visual Studio Debugger.

    Aadir tratamiento de excepciones a un programa C#. Los archivos solucin de esta prctica se pueden encontrar en la carpeta Solution del fichero lab02.zip

    Ejercicio 1 Creacin de un programa C# sencillo

    En este ejercicio utilizar Visual Studio para escribir un programa C#. El programa le preguntar cmo se llama y luego le saludar por su nombre.

    Cmo crear una nueva aplicacin C# de consola

    1. Inicie Microsoft Visual Studio .NET. 2. En el men File (Archivo), seale New (Nuevo) y pulse Project (Proyecto). 3. Pulse Visual C# Projects en el cuadro Project Types (Tipos de proyecto). 4. Pulse Console Application (Aplicacin de consola) en el cuadro Templates

    (Plantillas). 5. Escriba Saludos en el cuadro Name (Nombre). 6. Escriba la ubicacin deseada para el proyecto en el cuadro Location

    (Ubicacin) y pulse OK. 7. Escriba un comentario adecuado para el resumen. 8. Cambie el nombre de la clase a Saludar. 9. Guarde el proyecto seleccionando Save All (Guardar todo) en el men File.

    Cmo escribir instrucciones para preguntar y saludar al usuario

    1. Inserte la siguiente lnea en el mtodo Main despus de los comentarios TODO: string miNombre;

    2. Escriba una instruccin que pregunte el nombre a los usuarios. 3. Escriba otra instruccin que lea la respuesta del usuario desde el teclado y la

    asigne a la cadena miNombre. 4. Aada una instruccin ms que imprima Hola, miNombre en pantalla

    (donde miNombre es el nombre escrito por el usuario). 5. Una vez terminado, el mtodo Main debe contener lo siguiente:

  • Introduccin a C# 2

    static void Main(string[ ] args) { string miNombre; Console.WriteLine("Por favor, escriba su nombre"); miNombre = Console.ReadLine( ); Console.WriteLine("Hola {0}", miNombre); }

    6. Guarde el trabajo realizado.

    Cmo compilar y ejecutar el programa

    1. En el men Build, seleccione Build Solution (o pulse CTRL+SHIFT+B). 2. Corrija los posibles errores de compilacin y vuelva a compilar si es

    necesario. 3. En el men Debug, seleccione Start Without Debugging (o pulse

    CTRL+F5). 4. En la ventana de consola que se abrir, escriba su nombre cuando se lo pida

    el programa y pulse INTRO. 5. Despus de ver el saludo, pulse una tecla cuando aparezca el mensaje Pulse

    cualquier tecla para continuar.

  • Introduccin a C# 3

    Ejercicio 2 Compilacin y ejecucin del programa C# desde la lnea de comandos

    En este ejercicio compilar y ejecutar su programa desde la lnea de comandos.

    Cmo compilar y ejecutar la aplicacin desde la lnea de comandos

    1. Desde el botn de Inicio de Windows, entre en Todos los programas y luego pulse Visual Studio .NET, seguido de Visual Studio .NET Tools y finalmente Visual Studio .NET Command Prompt.

    2. Vaya a la carpeta Saludos, donde se encuentra el proyecto del apartado anterior.

    3. Compile el programa con el siguiente comando: 4. csc /out:Saludo.exe Class1.cs 5. Ejecute el programa escribiendo: Saludo 6. Cierre la ventana Command (Comandos).

  • Introduccin a C# 4

    Ejercicio 3 Uso del depurador

    En este ejercicio utilizar el Visual Studio Debugger para ejecutar su programa paso a paso y examinar el valor de una variable.

    Para configurar un punto de interrupcin e iniciar la depuracin con Visual Studio

    7. Inicie Visual Studio .NET si an no se est ejecutando. 8. En el men File, seale Open (Abrir) y pulse Project. 9. Abra el proyecto Saludos.sln en la carpeta Saludos del proyecto del apartado

    anterior. Tambin se puede encontrar dentro del fichero lab02.zip. 10. Pulse en el margen derecho sobre la lnea en que aparece por primera vez

    Console.WriteLine en la clase Saludar. En el margen aparecer un punto de interrupcin (u punto grande y rojo).

    11. En el men Debug, seleccione Start (o pulse F5). Al iniciarse la ejecucin del programa, se abrir una ventana de consola y luego el programa se detendr en el punto de interrupcin.

    Cmo inspeccionar el valor de una variable

    12. En el men Debug, pulse Windows, luego Watch y finalmente Watch 1. 13. En la ventana Watch, aada la variable miNombre a la lista de variables

    inspeccionadas. 14. La variable miNombre aparecer en la ventana Watch con un valor de null.

    Cmo ejecutar el cdigo paso a paso

    1. En el men Debug, seleccione Step Over (o pulse F10) para ejecutar la primera instruccin Console.WriteLine.

    2. Pulse F10 para saltar a la siguiente lnea que contiene la instruccin Console.ReadLine.

    3. Vuelva a la ventana de consola y escriba su nombre, y a continuacin pulse la tecla INTRO. Regrese a Visual Studio. Su nombre ser el valor de la variable miNombre en la ventana Watch.

    4. Pulse F10 para saltar a la siguiente lnea que contiene la instruccin Console.WriteLine.

    5. Ponga en primer plano la ventana de consola. Aparecer el saludo.

    6. Regrese a Visual Studio. En el men Debug, seleccione Continue (o pulse F5) para ejecutar el programa hasta el final.

  • Introduccin a C# 5

    Ejercicio 4 Adicin de tratamiento de excepciones a un programa C#

    En este ejercicio escribir un programa que utiliza tratamiento de excepciones para capturar errores inesperados en tiempo de ejecucin. El programa pide al usuario dos valores enteros, divide el primero por el segundo y muestra el resultado.

    Para crear un programa C# nuevo

    1. Inicie Visual Studio .NET si an no se est ejecutando. 2. En el men File, seale New y pulse Project. 3. Pulse Visual C# Projects en el cuadro Project Types. 4. Pulse Console Application en el cuadro Templates. 5. Escriba Divisor en el cuadro Name. 6. Escriba la ubicacin deseada para el proyecto en el cuadro Location

    (Ubicacin) y pulse OK. 7. Escriba un comentario adecuado para el resumen. 8. Cambie el nombre de la clase a Dividir. 9. Guarde el proyecto seleccionando Save All en el men File.

    Cmo escribir instrucciones para pedir dos enteros al usuario

    1. En el mtodo Main, escriba una instruccin que pida al usuario el primer entero.

    2. Escriba otra instruccin que lea la respuesta del usuario desde el teclado y la asigne a una variable llamada temp de tipo string.

    3. Aada la siguiente instruccin para convertir el valor de la cadena de temp en un entero y almacenar el resultado en i: int i = Int32.Parse(temp);

    4. Aada al cdigo instrucciones para: a. Pedir al usuario el segundo entero. b. Leer la respuesta del usuario desde el teclado y asignarla a temp. c. Convertir el valor de temp en un entero y almacenar el resultado en j. El cdigo debera ser parecido al siguiente: Console.WriteLine("Escriba el primer entero"); string temp = Console.ReadLine( ); int i = Int32.Parse(temp); Console.WriteLine("Escriba el segundo entero"); temp = Console.ReadLine( ); int j = Int32.Parse(temp);

    5. Guarde el trabajo realizado.

  • Introduccin a C# 6

    Cmo dividir el primer entero por el segundo y mostrar el resultado

    1. Cree una nueva variable entera k que reciba el valor resultante de dividir i entre j, e insrtelo al final del procedimiento anterior. El cdigo debera ser como esto: int k = i / j;

    2. Aada una instruccin para mostrar el valor de k. 3. Guarde el trabajo realizado.

    Cmo probar el programa

    1. En el men Debug, seleccione Start Without Debugging (o pulse CTRL+F5).

    2. Escriba 10 como valor del primer entero y pulse INTRO. 3. Escriba 5 como valor del segundo entero y pulse INTRO. 4. Compruebe que el valor de k que aparece es 2. 5. Pulse CTRL+F5 para volver a ejecutar el programa. 6. Escriba 10 como valor del primer entero y pulse INTRO. 7. Escriba 0 como valor del segundo entero y pulse INTRO. 8. El programa provoca el lanzamiento de una excepcin (divisin por cero). 9. Pulse No para que desaparezca el cuadro de dilogo de la depuracin Just-

    in-Time.

    Cmo aadir tratamiento de excepciones al programa

    1. Ponga el cdigo del mtodo Main dentro de un bloque try, como se indica a continuacin: try { Console.WriteLine (...); ... int k = i / j; Console.WriteLine(...); }

    2. Aada a Main una instruccin catch despus del bloque try. La instruccin catch tiene que imprimir un mensaje corto, como se ve en este cdigo: catch(Exception e) { Console.WriteLine("Excepcin lanzada: {0}" , e); } ...

    3. Guarde el trabajo realizado.

  • Introduccin a C# 7

    4. El mtodo Main completo ser similar al siguiente:

    public static void Main(string[ ] args) { try {

    Console.WriteLine ("Escriba el primer entero"); string temp = Console.ReadLine( ); int i = Int32.Parse(temp); Console.WriteLine ("Escriba el segundo entero"); temp = Console.ReadLine( ); int j = Int32.Parse(temp); int k = i / j; Console.WriteLine("El resultado de dividir {0} por {1} es {2}", i, j, k); } catch(Exception e) { Console.WriteLine("Excepcin lanzada: {0}", e); } }

    Cmo probar el cdigo para tratamiento de excepciones

    1. Pulse CTRL+F5 para volver a ejecutar el programa. 2. Escriba 10 como valor del primer entero y pulse INTRO. 3. Escriba 0 como valor del segundo entero y pulse INTRO.

    El programa sigue provocando el lanzamiento de una excepcin (divisin por cero), pero esta vez el error es capturado y aparece su mensaje.