1 / 37

Programando Orientado a Objetos desde Cero con C# y .NET

Programando Orientado a Objetos desde Cero con C# y .NET. MSc. Roger P é rez Chávez Jefe Departamento de Informática roger.perez@umcc.cu rogerperezcu@hotmail.com Dr. C. Julio A. Telot González Decano Facultad de Informática juliotelot@yahoo.com Universidad de Matanzas, Cuba.

unity-ball
Télécharger la présentation

Programando Orientado a Objetos desde Cero con C# y .NET

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programando Orientado a Objetos desde Cero con C# y .NET MSc.Roger Pérez Chávez Jefe Departamento de Informática roger.perez@umcc.cu rogerperezcu@hotmail.com Dr. C. Julio A. Telot González Decano Facultad de Informática juliotelot@yahoo.com Universidad de Matanzas, Cuba

  2. Paradigmas para un primer curso de programación (! = uso) Imperativo procedural !!!!!!!!!!!!!!!!!..! Funcional !! Orientado a Objetos (OO) !!!!!!!

  3. Fundamentación OO primero (1) Experiencia personal... el cliente siempre tiene la razón. Resultados aplicación encuesta. “Why Procedural is the Wrong First Paradigm if OOP is the Goal”. J. Bergin.Pace University. Referencia a Stroustrup. “Introducción a la POO”. T. Budd. Referencias de Budd.

  4. Fundamentación OO primero (2) “A Fondo C#”. T. Archer.advierte que si un estudiante ha tenido alguna experiencia previa de programación pero no con el paradigma OO, debe estar prevenido:“¡la experiencia anterior con otros lenguajes no OO no le servirá de mucho!”

  5. Fundamentación OO primero (3) Seventh Workshop on Pedagogies and Tools for Learning Object-Oriented Concepts • Proyectos de curso • Ejemplos de clase • Objetos primero • Herramientas y entornos • OOPSLA'97 • ECOOP'98 • OOPSLA'99 • ECOOP'00 • OOPSLA • ECOOP '02

  6. ¿Por qué no se ha generalizado? (1) !¡¡¡¡¡¡¡¡¡ El qué está claro !!!!!!!!!! Las justificaciones son convincentes. ¿¿¿¿¿¿¿¿¿ El cómo???????? Las propuestas no convencen.

  7. ¿Por qué no se ha generalizado? (2) Que te hice …---dirían--- para que me hicieras beber esto? Algún tiempo después, sin embargo, se cultiva un gusto por la cerveza en quienes continúan bebiéndola. La POO como la cerveza, es un gusto que se adquiere con el tiempo. “Aprendiendo Java 2.0 en 21 Días” R. Cadenhead et al. “… la POO se parece mucho a la cerveza…. A la mayoría de la gente que la prueba por primera vez no le gusta, y podría cuestionar la salud mental de quienes cuentan sus alabanzas. Otro parecido de la POO con la cerveza: puede provocar desorientación, causar náuseas y una visión alterada del mundo”

  8. ¿Por qué no se ha generalizado? (3) “La primera vez que escuché hablar de objetos fue en el primer año de la carrera en una conferencia fuera de curriculum a un profesor que se veía que sabe muchísimo, pues hablaba del modelo de objetos ...... pero yo NO ENTENDI NADA” Palabras de un colega sobre su primer encuentro con la POO...

  9. Nuestra propuesta Programación Orientada a Objetos con C# Parte I Introducción a la Programación MSc. Roger Pérez Chávez (UMCC) MSc. Antonio Fernández Orquín (UMCC) Lic. Airel Pérez Suárez (UCI) Lic. Raudel Hernández León(UCI)

  10. Antecedentes Evento COMAT 1995. Dr. Miguel Katrib Mora (UH). Experiencia de los autores. Curso “.NET y Web Services”, UH, Enero, 2003. Experiencia en la UMCC el semestre anterior con C#.

  11. Fundamentos de la propuesta (1) Libro de texto estructurado en temas Tema I: Secuenciación. Aplicaciones simples en modo consola. Tema II: Análisis de casos. Encapsulamiento. Tema III: Iteración. Arreglos. Tema IV: Recursividad. Búsqueda y Ordenamiento. Tema V: Apéndices.

  12. Fundamentos de la propuesta (2) Temas desarrollados en capítulos Tema I: Secuenciación. Aplicaciones simples en modo consola. Capítulo I.1: Introducción al modelo Orientado a Objetos. Capítulo I.2: Implementación de clases en C#. Secuenciación. Capítulo I.3: Aplicaciones simples en modo consola. Secuenciación.

  13. Fundamentos de la propuesta (3) • Desarrollo teórico a través de situaciones de análisis, preguntas y ejemplos. Preparación de las conferencias. • Casos de estudio. Autopreparación de los estudiantes. • Ejercicios. Desarrollo de las clases prácticas. • Bibliografía complementaria. Profundización. Capítulos desarrollados de forma homogénea. Uso de elementos de la enseñanza problémica.

  14. Fundamentos de la propuesta (4) Situación de análisis Un pequeño niño de dos años de edad puede decirle a su papá: estos son mis juguetes y señalar hacia un velocípedo, dos camiones y tres soldaditos, este es mi cepillo, etc. Incluso, en el carro de su papá (VW Golf año 85), es capaz de decirle que arranque, pite o ponga la música. De igual forma, al interrogársele, el niño dice su nombre (Alejandro) y el de sus padres (Gloria y Alexis). Por lo general, llegada la hora de dormir, Alejandro le dice a su mamá: tengo sueño; entonces el receptor de este mensaje (mamá) se ocupa de dormir al niño y para ello debe llevar a cabouna serie de acciones ... Desarrollo teórico Capítulo I.1.

  15. Fundamentos de la propuesta (5) Pregunta: ¿Por qué un niño es capaz de decir o hacer las cosas que se relacionan en la situación de análisis? ... porque desde edades muy tempranas los seres humanos son capaces de identificar y clasificar elementos o entidades (objetos) del mundo que le rodea. Incluso, de determinar las características y las funcionalidades (responsabilidades) de determinados elementos; así como relacionarse con el entorno y particularmente comunicarse con sus semejantes. Desarrollo teórico Capítulo I.1.

  16. Fundamentos de la propuesta (6) Ejemplo: Determinar algunos de los objetos que aparecen en la situación de análisis presentada con anterioridad y las responsabilidades que aparezcan de forma explícita. Establezca además algún tipo de clasificación para los objetos hallados. Desarrollo teórico Capítulo I.1.

  17. Fundamentos de la propuesta (7) Desarrollo del ejemplo: Desarrollo teórico Capítulo I.1.

  18. Fundamentos de la propuesta (8) Conceptos que se formalizan a través de otras preguntas y ejemplos a partir de la situación de análisis: • Clase y Objeto. • Diseño dirigido por responsabilidades. • Relaciones entre clases. Diagramas de clases. • Clasificación de los atributos. • Encapsulamiento. • Mensajes y métodos. Definición de Algoritmo. Desarrollo teórico Capítulo I.1.

  19. Fundamentos de la propuesta (9) Situación de análisis Imagínese una sesión de entrenamiento de la preselección nacional de atletismo donde se desea realizar pruebas de control a los atletas en las respectivas especialidades ... De los atletas se registrará el nombre, apellidos, carné de identidad, especialidad y tiempo marcado en el control. El tiempo se mide con un equipo electrónico que funciona de manera similar a un cronómetro. Un entrenador puede entrenar a más de un atleta, de los entrenadores se conoce el nombre y además son responsables de analizar la inclusión o no de los atletas en el equipo nacional de acuerdo al tiempo que hagan Caso de estudio Capítulo I.1.

  20. Fundamentos de la propuesta (10) Situación de análisis Imagine una tienda que se dedica a vender artículos de vestir, específicamente camisas, zapatos y pantalones. Para la situación de análisis que se presenta a continuación, realice un desarrollo similar a los que se hacen para las situaciones de análisis que se presentan a través del presente capítulo De la venta de los artículos se encarga el dependiente, persona que trabaja para la tienda y se ocupa de atender a los clientes. Particularmente se desea tratar de simular las acciones que realiza el dependiente de la tienda cuando se le solicita información de los artículos en venta. Ejercicios Capítulo I.1. En este caso el dependiente tiene que ser capaz de informar acerca del precio, talla, color y otras características (para las camisas mangas cortas o largas por ejemplo, para los zapatos si tienen cordones, etc.) de un determinado artículo que le soliciten los clientes.

  21. Fundamentos de la propuesta (11) Capítulos 1 y 2 de Introducción a la Programación Orientada a Objetos, T. Budd, Addison-Wesley Iberoamericana, 1994. Bibliografía complementaria Capítulo I.1.

  22. Utilizar el texto y el enfoque subyacente en el presente semestre en dos grupos de la UMCC y cuatro de la UCI. • Tema II, profundizar en la parametrización de los métodos, tipos de parámetros, primeras nociones del análisis descendente y las enumeraciones. • Tema III, profundizar sobre el análisis descendente, la implementación de las relaciones de asociación y agregación y la determinación de secuencias intermedias. • Tema V, incorporar elementos complementarios sobre como documentar los códigos y por ende presentar elementos de XML y atributos. Estado actual de la propuesta

  23. Complementar en texto Programación Orientada a Objetos con C# Parte I Introducción a la Programación Trabajo futuro • Parte IIProfundizando en el modelo de objetos. • Parte IIIEstructuras de Datos. Parte I + Parte II + Parte III = Tesis Doctorado “Enseñanza de la Programación con un enfoque de Sistema y Orientado a Objetos”

  24. .NET .NET: The Programmer's Perspective A Workshop of ECOOP 2003, July 22, 2003 Goals of the workshop .NET technology presently attracts much attention in the OO community. We want to offer a forum for discussion of pros and cons.

  25. Evolución hacia .NET (1) Evolución de los modelos de programación: • Mainframe\minicomputadoras • Desktops PCs. • Redes y paradigma de programación distribuida: dos niveles (Cliente-Servidor) tres niveles, introduciéndose un nivel intermedio CORBA, DCOM, RMI

  26. Evolución de Internet: Evolución hacia .NET (2) • Primera generación: páginas estáticas con contenido pasivo, aparecen entonces los primeros estándares (HTML) y navegadores (Netscape). • Segunda generación: boom de Java, lenguajes de script y conexión a Bases de Datos. Páginas dinámicas y aparecen tecnologías como Microsoft ASP y Java JSP, primeras herramientas para desarrollar páginas Web. • Tercera generación: Mayor interconexión y movilidad, diferentes dispositivos entre los usuarios. No solo datos, aparecen los servicios Web (Web Services). Internet es el contexto de programación.

  27. ¿Qué ofrece .NET? • Integración uniforme y sin parches. Consistencia. • Bastaría un lenguaje .NET (por ejemplo, C#), y aprender ASP .NET y XML. • Simplifica el desarrollo de aplicaciones. • Seguridad. • Componentes reusables y autodocumentados. • Diversos lenguajes generando un mismo lenguaje intermedio. • Herramienta de desarrollo integrada a la Web.Visual Studio .NET.

  28. Asp .NET Web Forms Windows Forms ADO .NET y XML Lenguajes de Programación (C#, C++, VB, ...) Commom Language Specification Cuatro componentes principales que constituyen el .NET Framework o Framework de .NET Fundamentos de .NET Base Class Library Commom Language Runtime

  29. Entorno coherente de POO, los objetos se pueden almacenar y ejecutar de forma local, ejecutar de forma local pero distribuida en Internet o ejecutar de forma remota. • Simplificar el desarrollo. Infraestructura de componentes (assemblies). • Unificar los modelos de programación. • Integración de los lenguajes. Objetivos del Framework (1)

  30. Entorno coherente de POO, los objetos se pueden almacenar y ejecutar de forma local, ejecutar de forma local pero distribuida en Internet o ejecutar de forma remota. • Reducir la implementación de software y los conflictos de versiones (infierno de las DLLs). • Garantizar la ejecución segura del código. • Coherencia entre tipos de aplicaciones muy diferentes, como las basadas en Windows o en el Web Objetivos del Framework (2)

  31. Proporciona al código ejecutable un conjunto de servicios del sistema operativo. Es el núcleo de la plataforma .NET Common Language Runtime (CLR) • Modelo de programación consistente. • Modelo de programación sencillo. • Desaparece el “infierno de las DLLs”. • Ejecución multiplataforma. • Interoperabilidad. • Gestión de memoria. • Control de tipos. • Tratamiento de excepciones.

  32. Componentes del CLR • Microsoft Intermediate Language (MSIL, IL o CIL).Fundamento de la interoperabilidad en los lenguajes .NET • JIT Compiler. • Metadatos. • Ensamblados. • Common Type System (CTS)

  33. Está formada por cientos de tipos de datos (alrededor de 4000 clases). • Permite acceder a los servicios ofrecidos por el CLR y a muchas funcionalidades necesarias a la hora de escribir aplicaciones. • Es posible crear nuevas clases que extiendan o usen su funcionalidad y se integren a la perfección con el resto de las clases de la BCL. • Está escrita en código IL, puede usarse desde cualquier lenguaje compatible con .NET. • Organización de las clases en espacios de nombres. Base Class Library (BCL)

  34. Otras tecnologías • Windows Forms. • Asp .NET Web Forms. • ADO .NET y XML.

  35. Reglas que han de seguir las definiciones de tipos que se hagan usando un determinado lenguaje .NET si se desea que sean accesibles desde cualquier otro lenguaje .NET (complemento de la interoperabilidad). • Los tipos de datos básicos admitidos son bool,char,byte,short,int,long,float,double,string y object. • Las tablas han de tener una o más dimensiones, y el número de dimensiones de cada tabla ha de ser fijo. Además, han de indexarse empezando a contar desde 0 Common Language Specification (CLS)

  36. Microsoft diseñó C# para aprovechar el nuevo entorno o plataforma .NET. Su lenguaje de lujo. • Lenguaje sencillo de aprender para los programadores inexpertos. • Permite desarrollar aplicaciones de forma rápida pero a la vez con gran control. • Integración con el desarrollo de aplicaciones Web, XML y muchas de las tecnologías emergentes • Combinación de las mejores ideas de lenguajes como C/C++, Delphi (Object Pascal) y Java con las mejoras de productividad de .NET. • Lenguaje OO puro. • Recolección automática de basura. C#

  37. Muchas Gracias, a su disposición Roger Pérez Chávez roger.perez@umcc.cu rogerperezcu@hotmail.com Julio A. Telot González juliotelot@yahoo.com

More Related