Barcelona Activa - Desarrollo en .NET
Transcripción
Barcelona Activa - Desarrollo en .NET
Barcelona Activa - Desarrollo en .NET P. 1 Cibernàrium P. 2 Cibernàrium P. 3 Cibernàrium P. 4 Cibernàrium P. 5 Introducción al desarrollo en .NET © Juan Carlos Ruiz López, May 2015, Mar 2016, May 2016 www.juancarlosruiz.com P. 6 .NET– Objetivos del curso Estos son los principales objetivos para este curso. El instructor los comentará. No dude en hacer cualquier pregunta sobre ellos. © Juan Carlos Ruiz López, www.juancarlosruiz.com P. 7 Lección 1 : ¿ Qué es .NET ? P. 8 ¿ Qué es .NET ? .NET Framework es una enorme colección de librerías de código, conocidas como “assemblies”, organizadas como objetos y clases y ordenadas en espacios de nombres (“namespaces”). Los “assemblies” se empaquetan en ficheros DLL que pueden ser usados por cualquier lenguaje de la familia .NET (incluyendo PowerShell), para acceder a toda la funcionalidad incluida. Se puede escribir código .NET en lenguajes diferentes, combinarlos, y usar el resultado final sin problemas. Todos los tipos tienen la misma implementación en todos los lenguajes; todas las funciones y objetos pueden encontrarse y llamarse desde cualquier otro módulo. No hacen falta conversiones. Las librerías contienen código pero también datos. Un ejemplo : los nombres de los meses en cada cultura… por rara que esta pueda parecer. P. 9 Un entorno de desarrollo... .NET Framework es una enorme colección de librerías de código, conocidas como “assemblies”, organizadas como objetos y clases y ordenadas en espacios de nombres (“namespaces”). Los “assemblies” se empaquetan en ficheros DLL que pueden ser usados por cualquier lenguaje de la familia .NET (incluyendo PowerShell), para acceder a toda la funcionalidad incluida. Se puede escribir código .NET en lenguajes diferentes, combinarlos, y usar el resultado final sin problemas. Todos los tipos tienen la misma implementación en todos los lenguajes; todas las funciones y objetos pueden encontrarse y llamarse desde cualquier otro módulo. No hacen falta conversiones. Las librerías contienen código pero también datos. Un ejemplo : los nombres de los meses en cada cultura… por rara que esta pueda parecer. P. 10 Un entorno de ejecución .NET Framework es una enorme colección de librerías de código, conocidas como “assemblies”, organizadas como objetos y clases y ordenadas en espacios de nombres (“namespaces”). Los “assemblies” se empaquetan en ficheros DLL que pueden ser usados por cualquier lenguaje de la familia .NET (incluyendo PowerShell), para acceder a toda la funcionalidad incluida. Se puede escribir código .NET en lenguajes diferentes, combinarlos, y usar el resultado final sin problemas. Todos los tipos tienen la misma implementación en todos los lenguajes; todas las funciones y objetos pueden encontrarse y llamarse desde cualquier otro módulo. No hacen falta conversiones. Las librerías contienen código pero también datos. Un ejemplo : los nombres de los meses en cada cultura… por rara que esta pueda parecer. P. 11 Lenguajes en .NET Salford FTN95 (Fortran) para Microsoft .NET. SmallTalk para Microsoft .NET. ML estándar para Microsoft .NET. Dyalog APL para Microsoft .NET. Prolog : https://prolog.codeplex.com/ P. 12 Ref : Versiones .NET Desde su inicio, se han publicado varias versiones de .NET. He aquí un breve mapa. Al compilar un programa en .NET se elige para qué versión. Novedad : 4.6 aparece en Julio de 2015, a la vez que Windows 10. P. 13 Ref : Componentes P. 14 Un pseudo-ejemplo P. 15 Managed Code P. 16 Ref : CLR El CLR aporta el entorno de ejecución. Este comprende la gestión de memoria, threads, seguridad, Garbage Collector… independientemente del sistema operativo. Y, por supuesto, la compilación JIT del código intermedio. P. 17 Interpretado o Compilado ? P. 18 .NET se compila… dos veces. A diferencia de Java, .Net no es un entorno virtual ni interpretado ! CIL = Common Intermediate Language (el antes llamado MSIL o IL) JIT = Just-In-Time Compiler. Es un componente del CLR que se encarga de la segunda fase. Dado un ejecutable ya en formato intermedio (CIL), lo compila a la arquitectura específica de la máquina (32 o 64 bits), antes de su ejecución. La segunda vez que se lanza el mismo ejecutable, ya está compilado. Se puede también compilar el ejecutable con NGEN, evitando la compilación JIT. En este caso el ejecutable va a C:\Windows\Assembly\NativeImages1_v1.0.3705. El código generado es menos eficiente (no conoce la arquitectura de la máquina en tiempo de ejecución), y se recomienda sólo para aplicaciones de cliente. P. 19 Ref : Modelo de Ejecución El CLR aporta el entorno de ejecución. Este comprende la gestión de memoria, threads, seguridad, Garbage Collector… independientemente del sistema operativo. Y, por supuesto, la compilación JIT del código intermedio. P. 20 Resumen El CLR aporta el entorno de ejecución. Este comprende la gestión de memoria, threads, seguridad, Garbage Collector… independientemente del sistema operativo. Y, por supuesto, la compilación JIT del código intermedio. P. 21 .NET vs Java P. 22 Lección 2 : Herramientas Esta lección describe las herramientas necesarias. P. 23 Ref : Posibles herramientas P. 24 Visual Studio Community 2015 https://www.visualstudio.com/features/office-tools-vs P. 25 LAB : Descargar / Buscar Visual Studio P. 26 Ref : Algunos Ejemplos y Tutoriales P. 27 Lección 3 : Primer Programa P. 28 Objetivo P. 29 Creando el primer proyecto P. 30 Ventanas importantes Las ventanas pueden estar ANCLADAS (pinned) o AUTOHIDE. Cambiarlo haciendo click en el pin. P. 31 Nomenclatura Solutions contain items that you need in order to create your application. A solution includes one or more projects, plus files and metadata that help define the solution as a whole. Visual Studio automatically generates a solution when you create a new project. Visual Studio stores the definition for a solution in two files: .sln and .suo. The solution definition file (.sln) stores the metadata that defines your solution. Projects are used in a solution to logically manage, build, and debug the items that make up your application. The output of a project is usually an executable program (.exe), a dynamic-link library (.dll) file or a module, among others. P. 32 Solución : AppDePrueba P. 33 El código inicial Abrir con Solution Explorer, doble-click en APPDEPRUEBA.CS P. 34 Nomenclatura Abrir con Solution Explorer, doble-click en APPDEPRUEBA.CS (Era PROGRAM.CS pero podemos renombrarlo) P. 35 Completando el código P. 36 Ejecución P. 37 Primera mejora P. 38 Segunda posible mejora P. 39 Ref : Sintaxis básica C# P. 40 Buscar los ficheros en el disco P. 41 Personalización de VS - algunas ideas P. 42 Eligiendo una versión de CLR P. 43 Dos posibles Builds por proyecto P. 44 Retos (para hacer fuera del curso) P. 45 Lección 4 : Objetos y Tipos P. 46 ¿ Qué es un Objeto ? P. 47 Objetos en .NET P. 48 Objetos simples vs complejos Un Namespace es una forma de agrupar clases, funciones, tipos de datos, etc. que están relacionadas entre sí P. 49 Espacios de Nombres Un Namespace es una forma de agrupar clases, funciones, tipos de datos, etc. que están relacionadas entre sí P. 50 Assembly P. 51 Demo : Objetos disponibles (PowerShell) P. 52 Tipos simples predefinidos P. 53 Tipos predefinidos P. 54 Ref : Algunos tipos en .NET P. 55 ¿ Qué es un tipo ? Consider an object called “Car”. There can be many types, but all of them will share some characteristics (have a motor, wheels, doors, brake, color). Each “Car” will have these common properties… but will have different values for them. (For example, all cars have a color…. But the colors are different). All “Cars” share also some Methods : Start, Stop, Park, FillTheTank… And also properties : Number of wheels, Maximum Speed… P. 56 ¿ Variables o Tipos ? In the car example, Properties (Color, Model…) and Methods. Some can be inherited from the Type (NumberOfMotors = 1…), or can be only for that specific instance (Color…) P. 57 Creación de variables Lo importante aquí es conocer los nombres de los objetos que nos interesen… P. 58 Ref : Algunos tipos en .NET P. 59 Objetos : Un ejemplo P. 60 LAB : Objetos – Propiedades de un fichero P. 61 LAB : Propiedades de un fichero P. 62 Solución - Propiedades de un fichero P. 63 Reto : Múltiples Ficheros P. 64 LAB : Propiedades de varios ficheros P. 65 1. El directorio de Windows P. 66 2. Leyendo el contenido del directorio P. 67 3. Enumerando el contenido P. 68 4. Formateando (dando anchura fija) P. 69 Solución : El código final P. 70 Lección 5 : Creando una Librería P. 71 Qué es una DLL ? P. 72 Creando una DLL P. 73 Función a añadir (I) P. 74 Función a añadir (II) P. 75 Código de la DLL P. 76 Compilar la DLL P. 77 Usando la DLL P. 78 Añadir el proyecto de la DLL P. 79 Añadir una referencia a la DLL P. 80 Usar la DLL desde nuestro código P. 81 Ejecutar P. 82 Función a añadir (III) P. 83 Ejecutar P. 84 Lección 6 : App gráfica P. 85 Aplicación gráfica - Opciones P. 86 Windows Forms P. 87 Demo : Diseñando el aspecto gráfico P. 88 Primera aplicación Windows Forms P. 89 Agregar un único formulario P. 90 Añadiendo las teclas P. 91 Trucos de diseño P. 92 Dar nombre a todas las teclas P. 93 Eliminar el texto visible P. 94 La función Beep P. 95 Ref : Beep No es necesario… lo hicimos ya en nuestra DLL. Simplemente basta con añadir la referencia ! Rellenar la función Beep. Se emplea un objeto ya existente dentro de System.Console, llamado Beep Dos parámetros. Observar INTELLISENSE P. 96 Añadir sonido a la primera tecla P. 97 Añadir sonido a cada tecla P. 98 Probarlo exhaustivamente P. 99 Lab Extra P. 100 Gestión de un fichero P. 101 StreamReader P. 102 Using P. 103 Reto : Gestión de un fichero musical P. 104 Solución (Parte1) P. 105 Solución (Parte 2) P. 106 Apéndice : Referencia y Siguientes Pasos. P. 107 Ref : (Alguna) bibliografía Una selección de los libros disponibles sobre el tema. P. 108 Más formación disponible http://www.juancarlosruiz.com http://cursospowershell.com © Juan Carlos Ruiz, Enero 2015 P. 109 Plan de Formación Contacto : www.juancarlosruiz.com © Juan Carlos Ruiz, Enero 2015 P. 110 ___ P. 111 P. 112