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

Slides:



Advertisements
Presentaciones similares
APLICACIONES DISTRIBUIDAS
Advertisements

SERVICIOS WEB EN.NET INTEGRANTES: ADRIANA BLANCO PEÑA MIRIAM SORIANO HERNANDEZ ALVARO PETROVICH CID CONTRERAS LUIS RAMIREZ PALESTINO.
Framework de.Net Infraestructura sobre la que se reúne todo un conjunto de lenguajes y servicios que simplifican el desarrollo de aplicaciones Entorno.
Introducción a la plataforma .NET.
Rossy Garita Componentes fundamentales de CLR y
Introducción a Microsoft .NET
Agenda Conceptos Claves.
Modelando aplicaciones
MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN
Servicios Web.
Programación Visual de Sistemas
Tipos de Servicios Web.
Programación Orientada a Objetos
Introducción a la plataforma .NET.
Java 2 Platform Enterprise Edition
Programación 1 Introducción
Aplicación del paradigma orientado a objetos
Plataforma Microsoft.NET
Sistema La Plata Módulo I INTRODUCCION A APLICACIONES WEB.
U NIDAD III P ROGRAMACIÓN O RIENTADA A O BJETOS (POO) Facilitadora: Ing. Patricia Gómez.
Interacción Persona Ordenador
Base de Datos ProQuest.
UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,
Tema 6: Clases Antonio J. Sierra.
Desarrollo de aplicaciones web en entorno servidor
ALGORITMOS, LENGUAJES Y TECNICAS DE PROGRAMACION
SEMANA Introducción.
El Proceso Software Ingeniería en Informática
TALLER DE PROGRAMACIÓN III
Introducción a la Programación. Lenguaje de Máquina.
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.
Sintaxis de C# (Declaraciones y Tipos)
Programación e Ingeniería de Software III
ASP.NET es una nueva y potente tecnología para escribir páginas web dinámica. Es una importante evolución respecto a las antiguas páginas ASP de Microsoft.
DISEÑO DE SOFTWARE 1ª. Parte
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
5.3 APROXIMACIONES AL DISEÑO
Acercamiento al Proyecto Mono Cristhián Gómez
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors Sun Open Network Enviroment (Sun ONE) vs.
Ing. Elkin José Carrillo Arias
Leonard Camacho. DCom  Tecnología propietaria de Microsoft.  Extiende el modelo COM de Microsoft.  La “D” es debido al uso de su versión DCE/RCP, conocida.
Introducción a la Programación desde un enfoque Orientado a Objetos MSc. Roger Pérez Chávez MSc. Antonio Fernández Orquín
Haga clic para modificar el estilo de subtítulo del patrón 28/04/09 Por ARLEDY SARRIA MOLINA NAZLY DIAZ ARIZA JHOANNA MARQUELLA DESARROLLO DE SOFTWARE.
APLICACIÓN EN VISUAL BASIC
Proyecto Fin de Carrera - ITIS
Programación Java y Desarrollo de Aplicaciones
COMPUTO III Ing. Jimmy Ojeda Arnica.
Equipo 7. Hipertexto  En informática, es el nombre que recibe el texto que en la pantalla de un dispositivo electrónico, permite conducir a otros textos.
TEMA 9: DIAGRAMA DE CLASE EN UML
Programación Orientada a Objeto
Facilitador: Christian Alexander Martinez
Clase 5 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.
María José Freire Mayra Coello Juan Francisco Pérez
Clase I Curso Microsoft .NET I.S.F.T. N° 182.
INFORMATICA Web 2.0 y educación Tipos de herramientas web 2.0
Introducción a .NET Nombre : Ethel García-Simón Matachana
Jairo Pinto Ing. sistemas
DISEÑO CURRICULAR Presentado por: Cesar Augusto Sáenz María Alejandra Hernández 1.contenidos curriculares de competencia.
UNITEC NEGOCIOS ELECTRÓNICOS ”DESARROLLO DE SOFTWARE ”
Tecnologías Cliente / Servidor Capitulo II Richard Jiménez V. clienteserver.wordpress.com.
INTRODUCCION La webquest constituye un material didáctico para organizar tipos de actividades relacionados con la informáticas. En este documento se.
Integrante: Mariana Alcalá Hdz María del Carmen Andrade G. Alondra E. García Mtz Joselyn Gpe García V. Antonio de Jesús Hdz R. Cristian Jesús Ruvalcaba.
La Programación Orientado a Objetos
 Palabra inglesa que define un conjunto de conceptos, prácticas y criterios.  En el desarrollo de Sw es una estructura conceptual y tecnológica que proporciona.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) V. GESTIÓN DE TIPOS Y GENERACIÓN DE CÓDIGOS.
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
Fundamentos de Programación Unidad I Conceptos Básicos.
Modelado UML Diagramas de Casos de Uso
ALUMNO ALUMNO: DIEGO URES LEGAJO LEGAJO: La prueba unitaria es la herramienta para la Calidad Presentación Trabajo Final de Grado.
PROGRAMACION ORIENTADA A OBJETOS
Transcripción de la presentación:

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

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

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.

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!”

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

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

¿Por qué no se ha generalizado? (2) “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. 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. Otro parecido de la POO con la cerveza: puede provocar desorientación, causar náuseas y una visión alterada del mundo”

¿Por qué no se ha generalizado? (3) Palabras de un colega sobre su primer encuentro con la POO... “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”

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)

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#.

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.

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.

Fundamentos de la propuesta (3) Capítulos desarrollados de forma homogénea. Uso de elementos de la enseñanza problémica. 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.

Fundamentos de la propuesta (4) Desarrollo teórico Capítulo I.1. 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 cabo una serie de acciones ...

Fundamentos de la propuesta (5) Desarrollo teórico Capítulo I.1. 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.

Fundamentos de la propuesta (6) Desarrollo teórico Capítulo I.1. 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.

Fundamentos de la propuesta (7) Desarrollo teórico Capítulo I.1. Desarrollo del ejemplo: Clasificación Objetos Responsabilidades Niño alejandro Nombre Edad Juguetes ... Mamá gloria Dormir al niño

Fundamentos de la propuesta (8) Desarrollo teórico Capítulo I.1. 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.

Fundamentos de la propuesta (9) Caso de estudio Capítulo I.1. 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

Fundamentos de la propuesta (10) Ejercicios Capítulo I.1. 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. 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.

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

Estado actual de la propuesta 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.

Parte I + Parte II + Parte III = Tesis Doctorado Trabajo futuro Complementar en texto Programación Orientada a Objetos con C# Parte I Introducción a la Programación Parte II Profundizando en el modelo de objetos. Parte III Estructuras 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”

.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.

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

Evolución hacia .NET (2) Evolución de Internet: 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.

¿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.

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

Objetivos del Framework (1) 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 (2) 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

Common Language Runtime (CLR) Proporciona al código ejecutable un conjunto de servicios del sistema operativo. Es el núcleo de la plataforma .NET 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.

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)

Base Class Library (BCL) 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.

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

Common Language Specification (CLS) 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

C# 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.

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