3. AGENDA Sesión 1 (Junio 28 4:30 P.M. a 6:30 P.M.) Introducción a los conceptos básicos Orientación a Objetos .NET Framework TALLER: Aprendiendo a C#.NET y LINQ con Winforms
4. ¡ADVERTENCIA! Este taller es para personas con conocimientos básicos, y también para aquellos que necesitan refrescarse o renovarse un poco. Los temas serán abordados en sus formas más simples con el ánimo de dar las herramientas necesarias para abordar las dos sesiones del taller.
5. ¡ADVERTENCIA! Hacer una aplicación profesional no necesariamente significa hacer algo elaborado o técnicamente complejo, significa construir software pensando en su crecimiento, evolución y mantenimiento futuro.
9. Manejar correctamente los conceptos te ayudará a defenderte en cualquier herramientaTu preocúpate por aprender a razonar y pensar, para aprender a usar las herramientas, están los tutoriales
13. Si bien esta definición es correcta, el problema está, en que tanto lo comprendemos…
14. Intentemos algo simple… La orientación a objetos es una forma de ver las situaciones y de analizar el entorno…
15. …es una forma de entender un problema identificando las entidades principales que se encuentran en el
16. Identificar los conceptos relevantes o las entidades involucradas en un problema significa… El propósito de la programación orientada a objetosconsiste en proporcionar una solución informática identificando los conceptos relevantespresentes en el problema conceptos relevantes = entidades abstraer los detalles y particularidades y emitir un concepto genérico
17. Esto se logra identificando las características comunesde un grupo de objetos y las accionesque realizan o bien que producen algún efecto sobre ellos
18. La programación orientada a objetos (POO) es por tanto una forma de desarrollar software, pensando en las entidades principales del problema que dicho sistema pretende resolver y por tanto los datos que se manipularán de esas entidades y las acciones de las que estas son responsables dentro del sistema.
19. El lenguaje de programación es la herramienta para resolver elproblema
20. El propósitode la POO no tiene que ver con el lenguaje de programación Sobre el lenguaje de programación lo que podemos decir es que este soporta unas y otras características de la Orientación a Objetos También podemos decir que cada quien elige la herramienta que satisface las necesidades de su proyecto, tanto a nivel de implementación como de conocimiento disponible en su recurso humano
21. Y aunque es claro que existe más de una herramienta para resolver unproblema
22. Es seguro que también hay formas más fáciles de hacerlo…
27. Cualquier Cosa …de la que puedas emitir un concepto. Es decir… Cualquier Cosa, todo es un objeto.
28. Veamos, Este es un objeto Es un automóvil de plástico, rojo con 4 llantas y 2 puertas
29. Si realizáramos el proceso mental lentamente, nos daríamos cuenta de que al ver el objeto emitimos un concepto preconcebido es decirautomóvil
30. En la imagen cada uno de los elementos que vemos es considerado un objeto Sin embargo de todos ellos podemos emitir un concepto conocido y para ello usamos la palabra globo
31. A ese concepto conocidoque representa una agrupación de objetos …lo llamamosClase
32. Unaclase es como un molde de galletas… … este determina la forma y característicasque la galleta (el objeto) va a tener, sin ser el objeto real
33. La clasees una… …los objetosson todos los que podamos crear mentalmente a partir de dicha claseo concepto
34. ¿Recuerdan eso de la abstracción? Pues bien… Una claseesta compuesta por características(atributos o propiedades) y por comportamientos(acciones o métodos) …esos que elegimos como generalidades del conjunto de objetos comunes de nuestro problema a resolver
36. Las característicasy comportamientosde una clase son determinadas por el contexto del problema o escenario Esto en programación quiere decir, que dentro de un sistema, solo implementamos los atributosy métodosrelacionados con el ámbito del problema que estamos solucionando.
37. Veamos algunos conceptos adicionales… A los valores que tienen los atributos de un objetose les conoce como el estado del objeto, y a los atributos y métodos que ofrece se les conoce como la interfazal código usado para construir las clases se le conoce como la implementaciónde la clase.
38. Los objetosse comunican se comunican con otros a través de mensajes Un mensaje es una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó. Wikipedia
39. Con respecto a la comunicación entre objetos tenemos más principiosalta cohesión y el bajo acoplamiento
40. Cuando decimos que un objeto tiene una alta cohesiónhablamos de que sus características y comportamientos están estrechamente relacionados La relación que tienen esta determinada por el contexto del problema a resolver
41. Cuando decimos que un objeto tiene una bajo acoplamiento hablamos del nivel de independencia que tiene un objeto con respecto a otros El hacer un objeto independiente de los demás ayudará a que ese objeto pueda ser usado en otros contexto
42. Los principios que dirigen la orientación a objetos son… … la modularidad y la reusabilidad Qué son?
43. En términos simples la modularidadsignifica trabajar por partes…Esas partes deberían ser lo más independientes posibles, como piezas de Lego, de esa forma podrías usar diferentes piezas en la construcción de otro sistema
44. y la reusabilidadsignifica¡No se invente la rueda! Lo que ya esta hecho es para usarse y algunas de las cosas que no están hechas, deben construirse pensando en que alguien necesitará usarlo alguna vez. Por otro lado recuerde, reusar no es simplemente copiar y pegar código.
45. ¡UN CONSEJO! No inventarse la rueda no significa, que no mejores la rueda.
46. Por último, veamos algunas características de la Programación Orientada a Objetos
55. Ahora imagine que a usted le tocara construircada una de las partes…
56. ¿Cuánto tiempo cree que tardaría en terminar? Lo mismo sucede con el software, si cada vez tuviéramos que construir todos los componentes que lo conforman, tardaríamos mucho más tiempo…
57. ¿Qué es un framework? Un frameworkes, básicamente, un conjunto de clases que interactúan en forma cooperativapara dar solución a una determinada necesidad.
58. Ahora un poco menos conceptual... En términos simples un frameworkes un conjunto de clases base agrupadas en componentes, que pueden ser reutilizadas para la construcción de nuevo software
60. Microsoft .NET .NET es el conjunto de tecnologías en las que Microsoft ha trabajado con el objetivo de obtener una plataforma sencilla y potente para distribuir el software en forma de servicios que puedan ser suministrados remotamente y que puedan comunicarse y combinarse unos con otros de manera totalmente independiente de la plataforma, lenguaje de programación y modelo de componentes con los que hayan sido desarrollados.
61. ¿Qué es Visual Studio .NET? Es entorno de desarrollo (IDE), la herramienta sobre la cual los programadores desarrollan el software
62. Beta Línea de Tiempo .NET Framework 4 2010 2008 2010 2008 .NET Framework 3.5 .NET Framework 3.0 2007 2005 .NET Framework 2.0
68. ¿Qué NO es? NO es un sistema operativo NO es un lenguaje de programación NO es un entorno de desarrollo NO es un servidor de aplicaciones
69. ¿Qué es el .NET Framework? Un conjunto de tecnologías que me permiten: Unir las aplicaciones Web actuales que están aisladas, de manera muy fácil Acceder a información en cualquier momento, en cualquier lugar Simplificar el desarrollo y la implementación Desarrollar aplicaciones para cualquier dispositivo, sin necesidad de mucho esfuerzo. Reutilizar mucho código Hacer más, con menos
70. Algunas Características Completamente Orientado a Objetos Multilenguaje Modelo de programación único para todo tipo de aplicaciones y dispositivos de hardware Se integra fácilmente con aplicaciones existentes desarrolladas en plataformas Microsoft o en otras plataformas.
71. Línea de Tiempo .NET Framework Visual Studio 6.0 Visual Basic VBA Visual FoxPro VBScript C++ J++ JScript ASP Visual Studio .NET 2003 .NET Framework 1.1 .NET Compact Framework J# Visual Studio 2008 .NET Framework 3.0 – 3.5 .NET Compact Framework 2000 2001 2002 2003 2004 2005 2006 2008 2010 Visual Studio 2005 .NET Framework 2.0 .NET Compact Framework 2.0 Visual Studio .NET 2002 .NET Framework 1.0 Visual Basic .NET C# Visual Studio 2010 .NET Framework 4.0 F#
72. VB C++ C# Visual Studio .NET J# … Common Language Specification ASP.NET: Servicios Web y Web Forms WindowsForms ADO.NET: Datos y XML Biblioteca de Clases Base Common Language Runtime Microsoft .NET Framework 2.0
73. ¿Qué son los demás? 2.0 .NET Framework 2.0 VB C# J# IronPhyton Ruby … 3.0 .NET Framework 3.0 CLS y CTS ASP.NET WPF WCS WF & WCF Enhancements Dynamic Data ADO.NET LINQ Additional Enhancements Entity Framework WCF WF Add-in Framework WindowsForms MVC Data Services Biblioteca de Clases CommonLanguage Runtime (CLR) Windows 7, Windows Vista,Windows XP,Windows Server 2008
74. Microsoft .NET Framework Presentación Acceso a Datos Servicios Windows Presentation Foundation ASP.NET (WebForms, MVC, Dynamic Data) Entity Framework ADO.NET Data Services Windows Communication Foundation WinForms LINQ to SQL Windows Workflow Foundation “Velocity” Core Base Class Library Dynamic Language Runtime Languages Managed Extensibility Framework LINQ Parallel Extensions Common Language Runtime
75. Common Language Runtime (CLR) Es el motor de ejecución de .NET Caracteristicas: Compilacion Just In Time (JIT) Gestion de Memoria (Garbage Collector) Gestion de Errores (excepciones) Ejecucion basada en componentes (assemblies) Gestion de seguridad Multithreading
77. Código MSIL Código Fuente Compilador Lenguaje Metadata Ejecución JIT Compiler CódigoNativo Tiempos: Compilación y Ejecución Compilación Antes de la instalación o cuando se ejecutaporprimeravez
78. Modelo de Ejecución del CLR Código Fuente VB.NET C++.NET C# Componente No Manejado Compilador VB.NET Compilador C# Compilador C++ .NET Código Manejado Assembly Código MSIL Assembly Código MSIL Assembly Código MSIL Common Language Runtime Compilador JIT Código Nativo Sistema Operativo (Windows)
79. Estructura de un proyecto .NET Solución Proyectos (Assemblies) Namespaces Clases Archivos de configuración Recursos adicionales
80. Descripción de Tipos Clases Clases Base Interfaces Implementadas Atributos de las Clases Métodos de las Clases MiBiblioteca.DLL Metadata Manifiesto del Assembly Código CompiladoMSIL Nombre Versión Cultura Recursos Otros Assemblies Permisos de Seguridad Tipos Externos Estructura de un Assembly
81. TAREA Para desarrollar la siguiente sesión del taller se espera que se traiga una idea de proyecto para implementar Si no quieres crear una nueva idea igual puedes bajar el material y el avance del que estamos trabajando en www.avanet.org