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

Documentos relacionados