SlideShare una empresa de Scribd logo
1 de 54
Clase I
    •[nombre instructor]
                •[fecha]
Agenda
   Presentación del curso
   Programación Orientada a Objetos
       Conceptos Fundamentales
       Herencia, Encapsulamiento, Polimorfismo
   .NET Framework 2.0
       ¿Qué es el Framework?
       Common Language Runtime
       MSIL
Agenda
   Presentación del curso
   Programación Orientada a Objetos
       Conceptos Fundamentales
       Herencia, Encapsulamiento, Polimorfismo
   .NET Framework 2.0
       ¿Qué es el Framework?
       Common Language Runtime
       MSIL
Presentación

                  Programa de Pasantias
                  Programa Desarrollador 5 Estrellas
                   2005
                  Como usar el contenido del curso
                  Programa de Empleos
Presentación
Programa de Pasantias
                  Formación de Desarrolladores en .NET
                      +Valor
                      +Posibilidades
                      +Empleo
                  Contenido, Programa Desarrollador 5 Estrellas 2005
                      (hasta la 2da estrella)
                  Exámenes
                      Programa DCE2005 , 2da Estrella Aprobada
                      Asistencia al entrenamiento presencial (80%) de las 16
                       clases
Presentación
Programa de Pasantias
Presentación
Programa Desarrollador 5 Estrellas 2005

                  Es un conjunto de herramientas que te permiten
                   aprender y desarrollar tus habilidades en la
                   tecnología .NET
                  En que Consiste:
                      Cursos Gratuitos en Internet
                      Exámenes de evaluación
                      Comunidad de Profesionales en desarrollo
                      Alto reconocimiento del mercado
Presentación
Programa Desarrollador 5 Estrellas 2005
Presentación
Como usar el contenido del curso

                  Registrese en DCE2005 www.dce2005.com
                  Leer el contenido y realizar las prácticas
                  Materiales:
                      .NET Esencial
                          Fundamentos de la Programación
                          Programación Orientados a Objetos
                      Primera Estrella
                          .NET Framework 2.0
                          Introducción a C# 2005
                          Introducción a VB.NET 2005
                      Segunda Estrella
Presentación




                          Programación Web con C# 2005
                          Programación Web con VB.NET 2005
Como usar el contenido del curso

                  Registrarse con datos reales
                      Cuenta asociada con .net passport
                      Esos datos serán luego usados en el programa de empleo
                      Registrarse con el código de institución
                      No rendir los exámenes hasta que esten preparados
                      Usar Foros, chats, y los recursos que encuentren en el sitio
                       dce2005
Presentación
Programa de Empleos
                  Oportunidades de Empleos
                      Sitio de empleos .net
                  Para quienes completen y aprueben el curso
                  Trabajo en Socios de Negocios
Presentación
Temas a desarrollarse en el Curso
                  Introducción al Programa
                  Programación Orientado a Objetos y Servicios
                  Microsoft .Net Framework v2.0
                  IDE VisualStudio.Net 2005
                  Sintaxis del Lenguaje (C# y VB.NET)
                  SQL Server 2005
                  Sentencias SQL
                  ADO.NET 2.0
                  BCL (Base Class Library)
                  ASP.NET 2.0
Presentación




                  ASP.NET WebService
                  Seguridad
Agenda
   Presentación del curso
   Programación Orientada a Objetos
     Conceptos Fundamentales
     Herencia, Encapsulamiento,
      Polimorfismo
   .NET Framework 2.0
       ¿Qué es el Framework?
       Common Language Runtime
       MSIL
¿Qué es la Programación Orientada a
      Objetos?
         Es una manera de construir Software
          basada en un nuevo paradigma.
         Propone resolver problemas de la
          realidad a través de identificar objetos y
          relaciones de colaboración entre ellos.
         El Objeto y el mensaje son sus
          elementos fundamentales.
POO
¿Qué es lo que ves?
POO
¿Qué es lo que ves?
POO
¿Qué es lo que ves?
POO
¿Qué es lo que tienen en común?
POO
¿Qué es lo que tienen en común?
POO
¿Qué es una clase?

         Clase  Clasificación
         Clasificación en base a
          comportamiento y atributos comunes
         Crea un vocabulario
             La forma en que nos comunicamos
             La forma en que pensamos
POO
¿Qué es una clase?

         Construcción Estática
         Describe:
             Comportamiento común
             Atributos [estado]
         Estructura de datos
         Incluye:
             Datos
             Funciones o métodos
POO
Constructor y Destructor

         Dos métodos de las clases
         Existen por defecto
         Constructor, inicializa valores
         Destructor, libera recursos al finalizar
          la vida de una instancia de una clase
          creada en memoria
         Existen constructores y destructores
          por defecto
POO
¿Qué es un objeto?
POO
¿Qué es un objeto?
         Instancia de una clase
         Un objeto posee:
             Identidad: Relación única entre el objeto
              del modelo y el ente de la realidad que
              representa. Se implementa a través de un
              id único en el modelo.
             Comportamiento: Resuelve un conjunto
              particular de problemas a través de su
              protocolo.
             Estado: Almacena información
                 Fija
                 Variable
POO
Demo
      •Modelizando el mundo real
POO
Pilares de POO




        Herencia   Polimorfismo      Encapsulamiento




                       Abstracción
POO
Abstracción
         Ignorancia selectiva
         Decide que es importante y que no lo es
         Se enfoca [depende] en lo que es importante
         Ignora [no depende] de lo que no es
          importante
         Utiliza la encapsulación para reforzar la
          abstracción
POO
Encapsulamiento


                Acelera()     125
                                  km
                                    /h
                            300 km/h
                velocidad

                 Frena()      40 km
                                       /h
POO
¿Por qué utilizar encapsulamiento?
         Dos grandes razones
             Control
             Cambio
POO
Encapsulamiento

                                    Los métodos
                 Acelera()           son públicos:
                                     son accesibles
                                     desde fuera
                 velocidad          Los datos son
                                     privados:
                  Frena()            accesibles
                                     desde dentro

             Controlador del Motor
POO
Datos del Objeto
         Describe los objetos de forma individual
                               Color: Azul
                               Color 2: Gris
                               Instrumental Digital
                               Ventanas eléctricas
                               4 asientos

                               Color: Verde
                               Color 2: Negro
                               Instrumental digital
                               2 asientos
POO
Datos Estáticos

         Describen información para todos los objetos
                           Número de llantas: 4
                           Capacidad del tanque: 40
                            litros
                           Tipo de Transmisión:
                            Automática
POO
Métodos Estáticos

         Solo pueden acceder a datos
          compartidos por todas las instancias
          de la clase.
         Encapsula los datos estáticos
         Son invocados en la clase, no en el
          objeto
             No es necesaria la creación de una
              instancia para invocarlos
POO
Métodos Estáticos


                       llantas
                        tanque
                     transmision

                   NumeroLlantas()
                  CapacidadTanque()
                  TipoTransmision()

                      Automóvil
POO
Herencia

         Es “un tipo de” relación
             Relación “es un”
         Entre Clases                   Transporte


         Va de la generalización a la     Acelera


          especialización                  Frena



         Clase base                     Automóvil

         Clase derivada
         Hereda la implementación
POO
Jerarquías de Clase
                                                       Transporte




      Marítimo                     Aire                             Nieve               Tierra




                 DentroAtmosfera          FueraAtmosfera                    1-Persona            N-Personas
POO
Jerarquías de Clase – Otro ejemplo

                                  Cuentas




               Cuenta Corriente             Caja Ahorro




                                  Común                   Sueldo
POO
Herencia Múltiple

         Singular: La clase hija deriva de una única clase
          padre
         Múltiple: La clase hija deriva de varias clases padre
             No es soportada por todos los lenguajes
             Puede ser confusa
              Nieve                                     1-Persona   Terrestre
POO
Laboratorio
              •Creando clases
POO
Polimorfismo y sobrecarga
         Polimorfismo: desconocimiento del cliente sobre la
          clase concreta del objeto que brinda el servicio.
          Esto me da libertad de intercambiar libremente el
          objeto servidor.
         Sobrecarga: Definir más de un método por cada
          mensaje, los tipos de los argumentos ayudan a
          decidir a qué mensaje se invoca.
         Tareas similares son realizadas por métodos con
          mismo nombre
             Suma
                 Enteros
                 Decimales
                 Fracciones
         Simplifican la tarea del desarrollador, al no tener
          que recordar distintos nombres para
POO




          comportamientos iguales.
Polimorfismo

              La definición del método reside en la clase base
              La implementación del método reside en la clase derivada
              La invocación es resuelta al momento de ejecución
                  Early binding
                  Late binding
                                                              Auto
                                                             Acelera
                                                              Frena



                                              Cohete
                                              Acelera
                                               Frena
          Transporte

            Acelera
            Frena


                                                              Caballo
                                                              Acelera
POO




                                                               Frena
Clases Base Abstractas

         Existen solamente para que se
          deriven de ellas
             No tiene sentido crear una instancia de
              este tipo de clases
         Métodos abstractos
         Clases abstractas – Concrete classes
               Automóvil
                 Color
                Asientos
                                     Transporte
                                       Acelera
                                        frena     ?
POO
Resumen
         ¿Qué es la Programación Orientada
          a Objetos?
         Clases y Objetos
         Métodos y Atributos
         Encapsulamiento
         Herencia
         Polimorfismo
POO
Agenda
   Presentación del curso
   Programación Orientada a Objetos
       Conceptos Fundamentales
       Herencia, Encapsulamiento, Polimorfismo
   .NET Framework 2.0
     ¿Qué es el Framework?
     Common Language Runtime
     MSIL
¿Qué es un Framework?
                    Marco de trabajo
                    Puede estar compuesto por
                      Librerías de clases
                      Documentación
                      Ayuda
                      Ejemplos
                      Tutoriales
.NET Framework




                      Etc.
¿Qué es Framework 2.0?


                                Herramientas            Clientes
                                de Desarrollo




                                                Aplicaciones
                     Bases de Datos             Web ASP.NET
.NET Framework




                                 Servicios          Aplicaciones
                    .NET         Web XML             de Usuario
                    Framework
VB      C++       C#       J#        …

                      Common Language Specification




                                                           Visual Studio .NET
                        ASP .NET                 Windows
                 Web Forms Web Services
                 ASP.NET Mobile Controls
                                                  Forms

                            ADO .NET and XML

                            Base Class Library

                        Common Language Runtime
.NET Framework




                            Operating System
¿Qué problemas resuelve .NET?

                    Desde Internet, muchas aplicaciones y
                     dispositivos están fuertemente
                     comunicados entre sí
                    Los programadores escribían
                     arquitectura en lugar de aplicaciones
                    Los programadores tenían
                     conocimientos limitados o debían
.NET Framework




                     aprender nuevos lenguajes
.NET Framework
                    El .NET Framework constituye las bases
                     sobre las que, tanto aplicaciones como
                     servicios, son ejecutadas y construidas.
                    La naturaleza unificada del .NET Framework
                     permite que cualquier tipo de aplicación sea
                     desarrollada mediante herramientas
                     comunes haciendo la integración mucho
                     mas simple.
                    El .NET Framework esta compuesto de:
.NET Framework




                      El CLR (Common Language Runtime)
                      La BCL (Base Class Library)
CLR – Common Language Runtime
                    El CLR es el motor de ejecución (runtime)
                     del .NET Framework.
                    Ofrece servicios automáticos tales como:
                      Administración de la memoria
                      Seguridad del código, asegurando:
                         Conversión de tipos
                         Inicialización de variables
                         Indexación de arreglos fuera de sus
.NET Framework




                           límites
                      Versionamiento
Componentes de CLR

                            .NET Framework Class Library Support

                         Thread Support                   COM Marshaler


                          Type Checker                 Exception Manager


                         Security Engine                  Debug Engine


                     MSIL to Native           Code              Garbage
                      Compilers              Manager            Collector
.NET Framework




                                           Class Loader
CTS (Common Type System)
                    Define un conjunto común de “tipos”
                     orientado a objetos
                    Todo lenguaje de programación debe
                     implementar los tipos definidos por el CTS

                  Todo    tipo hereda
                     directa o
                     indirectamente del
                     tipo OBJECT
.NET Framework




                  Tipos  de VALOR y
                     de REFERENCIA
Microsoft Intermediate Language (MSIL)

                    El compilador convierte al código soportado por
                     .NET en lenguaje intermedio.
                    Es un conjunto de instrucciones independientes de
                     la CPU, que se convierten en código nativo al
                     ejecutarse.
                    Para convertir MSIL a código nativo, se utilizan
                     compiladores llamados “Just In Time” JIT
                    Los archivos ejecutables estan conformados por
                      MSIL
.NET Framework




                      Datos Adicionales (Metadata)
                    El MSIL es independiente del lenguaje en el que se
                     desarrolla
Resumen
                    ¿Qué es el .NET Framework?
                    Common Language Runtime
                    Common Type System
                    Microsoft Intermediate Language
.NET Framework

Más contenido relacionado

La actualidad más candente

Principios orientacion-objetos
Principios orientacion-objetosPrincipios orientacion-objetos
Principios orientacion-objetoskarlalopezbello
 
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 1)
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 1)Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 1)
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 1)Avanet
 
Lpiii tema1- fundamentos de java
Lpiii tema1- fundamentos de javaLpiii tema1- fundamentos de java
Lpiii tema1- fundamentos de javakjrojas
 
Orientacion A Objetos Para Dummies
Orientacion A Objetos Para DummiesOrientacion A Objetos Para Dummies
Orientacion A Objetos Para DummiesSorey García
 
10. programacion orientada a objetos en visual basic .net
10.  programacion orientada a objetos en visual basic .net10.  programacion orientada a objetos en visual basic .net
10. programacion orientada a objetos en visual basic .netjohnny herrera
 
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a ObjetosClase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetosdesimartinez
 
Test Programación Orientada a Objetos
Test Programación Orientada a  ObjetosTest Programación Orientada a  Objetos
Test Programación Orientada a ObjetosLuis Arturo Vargas
 
CUESTIONARIO JAVA
CUESTIONARIO JAVACUESTIONARIO JAVA
CUESTIONARIO JAVAjesanchez5
 
Tecnología Orientada A Objetos
Tecnología Orientada A ObjetosTecnología Orientada A Objetos
Tecnología Orientada A ObjetosAndrés
 
Taller campus party
Taller campus partyTaller campus party
Taller campus partycampus party
 
programacion orientada a objetos en visual basic net
programacion orientada a objetos en visual basic netprogramacion orientada a objetos en visual basic net
programacion orientada a objetos en visual basic netpp mm
 
Clase No.1 Introducción a la Programación en JAVA
Clase No.1 Introducción a la Programación en JAVAClase No.1 Introducción a la Programación en JAVA
Clase No.1 Introducción a la Programación en JAVAVictor Hugo Chavez Salazar
 

La actualidad más candente (16)

Poo ok
Poo okPoo ok
Poo ok
 
Principios orientacion-objetos
Principios orientacion-objetosPrincipios orientacion-objetos
Principios orientacion-objetos
 
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 1)
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 1)Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 1)
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 1)
 
Lpiii tema1- fundamentos de java
Lpiii tema1- fundamentos de javaLpiii tema1- fundamentos de java
Lpiii tema1- fundamentos de java
 
Javadoc
JavadocJavadoc
Javadoc
 
Orientacion A Objetos Para Dummies
Orientacion A Objetos Para DummiesOrientacion A Objetos Para Dummies
Orientacion A Objetos Para Dummies
 
10. programacion orientada a objetos en visual basic .net
10.  programacion orientada a objetos en visual basic .net10.  programacion orientada a objetos en visual basic .net
10. programacion orientada a objetos en visual basic .net
 
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a ObjetosClase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
 
Test Programación Orientada a Objetos
Test Programación Orientada a  ObjetosTest Programación Orientada a  Objetos
Test Programación Orientada a Objetos
 
CUESTIONARIO JAVA
CUESTIONARIO JAVACUESTIONARIO JAVA
CUESTIONARIO JAVA
 
Tecnología Orientada A Objetos
Tecnología Orientada A ObjetosTecnología Orientada A Objetos
Tecnología Orientada A Objetos
 
Taller campus party
Taller campus partyTaller campus party
Taller campus party
 
Unidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a ObjetosUnidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a Objetos
 
programacion orientada a objetos en visual basic net
programacion orientada a objetos en visual basic netprogramacion orientada a objetos en visual basic net
programacion orientada a objetos en visual basic net
 
Clase No.1 Introducción a la Programación en JAVA
Clase No.1 Introducción a la Programación en JAVAClase No.1 Introducción a la Programación en JAVA
Clase No.1 Introducción a la Programación en JAVA
 
Met2 07 01-introduccion_poo
Met2 07 01-introduccion_pooMet2 07 01-introduccion_poo
Met2 07 01-introduccion_poo
 

Destacado

Clase 2 teoría del diseño gráfico. elementos de la imagen
Clase 2   teoría del diseño gráfico. elementos de la imagenClase 2   teoría del diseño gráfico. elementos de la imagen
Clase 2 teoría del diseño gráfico. elementos de la imagenOlmedo Morales
 
Introducción a la programación orientada objetos
Introducción a la programación orientada objetosIntroducción a la programación orientada objetos
Introducción a la programación orientada objetosRenny Batista
 
Sistema de numeración
Sistema de numeraciónSistema de numeración
Sistema de numeraciónlaura1352
 
Ud 2 Elementos básicos del lenguaje visual
Ud 2 Elementos básicos del lenguaje visualUd 2 Elementos básicos del lenguaje visual
Ud 2 Elementos básicos del lenguaje visualkipirinai
 
Sistemas numerico, binario,decimal,octal, hexadecimal
Sistemas numerico, binario,decimal,octal, hexadecimalSistemas numerico, binario,decimal,octal, hexadecimal
Sistemas numerico, binario,decimal,octal, hexadecimalLuisICM
 
Desarrollo del concepto arquitectónico
Desarrollo del concepto arquitectónicoDesarrollo del concepto arquitectónico
Desarrollo del concepto arquitectónicoOmar Sabillon
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y ObjetosKudos S.A.S
 
Sistemas de numeración (Binario, Octal, Hexadecimal, Decimal)
Sistemas de numeración (Binario, Octal, Hexadecimal, Decimal)Sistemas de numeración (Binario, Octal, Hexadecimal, Decimal)
Sistemas de numeración (Binario, Octal, Hexadecimal, Decimal)Instituto Técnico Superior
 

Destacado (10)

Introducción a la Programación Orientada a Objetos
Introducción a la Programación Orientada a ObjetosIntroducción a la Programación Orientada a Objetos
Introducción a la Programación Orientada a Objetos
 
Clase 2 teoría del diseño gráfico. elementos de la imagen
Clase 2   teoría del diseño gráfico. elementos de la imagenClase 2   teoría del diseño gráfico. elementos de la imagen
Clase 2 teoría del diseño gráfico. elementos de la imagen
 
Introducción a la programación orientada objetos
Introducción a la programación orientada objetosIntroducción a la programación orientada objetos
Introducción a la programación orientada objetos
 
Sistema de numeración
Sistema de numeraciónSistema de numeración
Sistema de numeración
 
Ud 2 Elementos básicos del lenguaje visual
Ud 2 Elementos básicos del lenguaje visualUd 2 Elementos básicos del lenguaje visual
Ud 2 Elementos básicos del lenguaje visual
 
ELEMENTOS DEL LENGUAJE VISUAL
ELEMENTOS DEL LENGUAJE VISUALELEMENTOS DEL LENGUAJE VISUAL
ELEMENTOS DEL LENGUAJE VISUAL
 
Sistemas numerico, binario,decimal,octal, hexadecimal
Sistemas numerico, binario,decimal,octal, hexadecimalSistemas numerico, binario,decimal,octal, hexadecimal
Sistemas numerico, binario,decimal,octal, hexadecimal
 
Desarrollo del concepto arquitectónico
Desarrollo del concepto arquitectónicoDesarrollo del concepto arquitectónico
Desarrollo del concepto arquitectónico
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
 
Sistemas de numeración (Binario, Octal, Hexadecimal, Decimal)
Sistemas de numeración (Binario, Octal, Hexadecimal, Decimal)Sistemas de numeración (Binario, Octal, Hexadecimal, Decimal)
Sistemas de numeración (Binario, Octal, Hexadecimal, Decimal)
 

Similar a Clase i (20)

[Run Reloaded] Entity Framework 4.0 (Daniel Laco)
[Run Reloaded] Entity Framework 4.0 (Daniel Laco)[Run Reloaded] Entity Framework 4.0 (Daniel Laco)
[Run Reloaded] Entity Framework 4.0 (Daniel Laco)
 
Net capitulo I - fundamentos
Net   capitulo I - fundamentosNet   capitulo I - fundamentos
Net capitulo I - fundamentos
 
Sistemas IV (I Bimestre)
Sistemas IV (I Bimestre)Sistemas IV (I Bimestre)
Sistemas IV (I Bimestre)
 
Python y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-CorrientesPython y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-Corrientes
 
Fondo1 (2)
Fondo1 (2)Fondo1 (2)
Fondo1 (2)
 
Germán Peraferrer: Cormo Framework
Germán Peraferrer: Cormo FrameworkGermán Peraferrer: Cormo Framework
Germán Peraferrer: Cormo Framework
 
Cormo Framework
Cormo FrameworkCormo Framework
Cormo Framework
 
Formativo ntics 2_basica_jorge_2012(2)
Formativo ntics 2_basica_jorge_2012(2)Formativo ntics 2_basica_jorge_2012(2)
Formativo ntics 2_basica_jorge_2012(2)
 
Formativontics2 basicajorge2012
Formativontics2 basicajorge2012Formativontics2 basicajorge2012
Formativontics2 basicajorge2012
 
Clase No.01.pptx
Clase No.01.pptxClase No.01.pptx
Clase No.01.pptx
 
SpringFramework Overview
SpringFramework OverviewSpringFramework Overview
SpringFramework Overview
 
Programacion i guia- cap i
Programacion i   guia- cap iProgramacion i   guia- cap i
Programacion i guia- cap i
 
Entendiendo el .NET Framework
Entendiendo el .NET FrameworkEntendiendo el .NET Framework
Entendiendo el .NET Framework
 
S1 - Componentes.net
S1 - Componentes.netS1 - Componentes.net
S1 - Componentes.net
 
S1-PD1.pptx
S1-PD1.pptxS1-PD1.pptx
S1-PD1.pptx
 
Introduccion al lenguage java
Introduccion al lenguage javaIntroduccion al lenguage java
Introduccion al lenguage java
 
Computacion Paralela Vs2010
Computacion Paralela Vs2010Computacion Paralela Vs2010
Computacion Paralela Vs2010
 
poopython.pdf
poopython.pdfpoopython.pdf
poopython.pdf
 
Sesión #1 Introduccion al curso.pptx
Sesión #1 Introduccion al curso.pptxSesión #1 Introduccion al curso.pptx
Sesión #1 Introduccion al curso.pptx
 
Zend Framework - MVC - 2008
Zend Framework - MVC - 2008Zend Framework - MVC - 2008
Zend Framework - MVC - 2008
 

Más de Roberto Moreno Doñoro (20)

21 bibsw tablasyotros
21 bibsw tablasyotros21 bibsw tablasyotros
21 bibsw tablasyotros
 
20 curvaselipticas
20 curvaselipticas20 curvaselipticas
20 curvaselipticas
 
19 protocoloscripto
19 protocoloscripto19 protocoloscripto
19 protocoloscripto
 
18 correoseguro
18 correoseguro18 correoseguro
18 correoseguro
 
17 certdigitalespkcs
17 certdigitalespkcs17 certdigitalespkcs
17 certdigitalespkcs
 
16 autenticafirma
16 autenticafirma16 autenticafirma
16 autenticafirma
 
15 funcioneshash
15 funcioneshash15 funcioneshash
15 funcioneshash
 
14 cifraasimetrica
14 cifraasimetrica14 cifraasimetrica
14 cifraasimetrica
 
13 ciframochilas
13 ciframochilas13 ciframochilas
13 ciframochilas
 
12 cifrasimetrica
12 cifrasimetrica12 cifrasimetrica
12 cifrasimetrica
 
11 cifraflujo
11 cifraflujo11 cifraflujo
11 cifraflujo
 
10 ciframoderna
10 ciframoderna10 ciframoderna
10 ciframoderna
 
09 cifraclasica
09 cifraclasica09 cifraclasica
09 cifraclasica
 
08 compalgoritmos
08 compalgoritmos08 compalgoritmos
08 compalgoritmos
 
07 teorianumeros
07 teorianumeros07 teorianumeros
07 teorianumeros
 
06 teoriainfo
06 teoriainfo06 teoriainfo
06 teoriainfo
 
05 gestionseg
05 gestionseg05 gestionseg
05 gestionseg
 
04 calidadinfo
04 calidadinfo04 calidadinfo
04 calidadinfo
 
02 breveintrocripto
02 breveintrocripto02 breveintrocripto
02 breveintrocripto
 
01 presentalibro
01 presentalibro01 presentalibro
01 presentalibro
 

Clase i

  • 1. Clase I •[nombre instructor] •[fecha]
  • 2. Agenda  Presentación del curso  Programación Orientada a Objetos  Conceptos Fundamentales  Herencia, Encapsulamiento, Polimorfismo  .NET Framework 2.0  ¿Qué es el Framework?  Common Language Runtime  MSIL
  • 3. Agenda  Presentación del curso  Programación Orientada a Objetos  Conceptos Fundamentales  Herencia, Encapsulamiento, Polimorfismo  .NET Framework 2.0  ¿Qué es el Framework?  Common Language Runtime  MSIL
  • 4. Presentación  Programa de Pasantias  Programa Desarrollador 5 Estrellas 2005  Como usar el contenido del curso  Programa de Empleos Presentación
  • 5. Programa de Pasantias  Formación de Desarrolladores en .NET  +Valor  +Posibilidades  +Empleo  Contenido, Programa Desarrollador 5 Estrellas 2005  (hasta la 2da estrella)  Exámenes  Programa DCE2005 , 2da Estrella Aprobada  Asistencia al entrenamiento presencial (80%) de las 16 clases Presentación
  • 7. Programa Desarrollador 5 Estrellas 2005  Es un conjunto de herramientas que te permiten aprender y desarrollar tus habilidades en la tecnología .NET  En que Consiste:  Cursos Gratuitos en Internet  Exámenes de evaluación  Comunidad de Profesionales en desarrollo  Alto reconocimiento del mercado Presentación
  • 8. Programa Desarrollador 5 Estrellas 2005 Presentación
  • 9. Como usar el contenido del curso  Registrese en DCE2005 www.dce2005.com  Leer el contenido y realizar las prácticas  Materiales:  .NET Esencial  Fundamentos de la Programación  Programación Orientados a Objetos  Primera Estrella  .NET Framework 2.0  Introducción a C# 2005  Introducción a VB.NET 2005  Segunda Estrella Presentación  Programación Web con C# 2005  Programación Web con VB.NET 2005
  • 10. Como usar el contenido del curso  Registrarse con datos reales  Cuenta asociada con .net passport  Esos datos serán luego usados en el programa de empleo  Registrarse con el código de institución  No rendir los exámenes hasta que esten preparados  Usar Foros, chats, y los recursos que encuentren en el sitio dce2005 Presentación
  • 11. Programa de Empleos  Oportunidades de Empleos  Sitio de empleos .net  Para quienes completen y aprueben el curso  Trabajo en Socios de Negocios Presentación
  • 12. Temas a desarrollarse en el Curso  Introducción al Programa  Programación Orientado a Objetos y Servicios  Microsoft .Net Framework v2.0  IDE VisualStudio.Net 2005  Sintaxis del Lenguaje (C# y VB.NET)  SQL Server 2005  Sentencias SQL  ADO.NET 2.0  BCL (Base Class Library)  ASP.NET 2.0 Presentación  ASP.NET WebService  Seguridad
  • 13. Agenda  Presentación del curso  Programación Orientada a Objetos  Conceptos Fundamentales  Herencia, Encapsulamiento, Polimorfismo  .NET Framework 2.0  ¿Qué es el Framework?  Common Language Runtime  MSIL
  • 14. ¿Qué es la Programación Orientada a Objetos?  Es una manera de construir Software basada en un nuevo paradigma.  Propone resolver problemas de la realidad a través de identificar objetos y relaciones de colaboración entre ellos.  El Objeto y el mensaje son sus elementos fundamentales. POO
  • 15. ¿Qué es lo que ves? POO
  • 16. ¿Qué es lo que ves? POO
  • 17. ¿Qué es lo que ves? POO
  • 18. ¿Qué es lo que tienen en común? POO
  • 19. ¿Qué es lo que tienen en común? POO
  • 20. ¿Qué es una clase?  Clase  Clasificación  Clasificación en base a comportamiento y atributos comunes  Crea un vocabulario  La forma en que nos comunicamos  La forma en que pensamos POO
  • 21. ¿Qué es una clase?  Construcción Estática  Describe:  Comportamiento común  Atributos [estado]  Estructura de datos  Incluye:  Datos  Funciones o métodos POO
  • 22. Constructor y Destructor  Dos métodos de las clases  Existen por defecto  Constructor, inicializa valores  Destructor, libera recursos al finalizar la vida de una instancia de una clase creada en memoria  Existen constructores y destructores por defecto POO
  • 23. ¿Qué es un objeto? POO
  • 24. ¿Qué es un objeto?  Instancia de una clase  Un objeto posee:  Identidad: Relación única entre el objeto del modelo y el ente de la realidad que representa. Se implementa a través de un id único en el modelo.  Comportamiento: Resuelve un conjunto particular de problemas a través de su protocolo.  Estado: Almacena información  Fija  Variable POO
  • 25. Demo •Modelizando el mundo real POO
  • 26. Pilares de POO Herencia Polimorfismo Encapsulamiento Abstracción POO
  • 27. Abstracción  Ignorancia selectiva  Decide que es importante y que no lo es  Se enfoca [depende] en lo que es importante  Ignora [no depende] de lo que no es importante  Utiliza la encapsulación para reforzar la abstracción POO
  • 28. Encapsulamiento Acelera() 125 km /h 300 km/h velocidad Frena() 40 km /h POO
  • 29. ¿Por qué utilizar encapsulamiento?  Dos grandes razones  Control  Cambio POO
  • 30. Encapsulamiento  Los métodos Acelera() son públicos: son accesibles desde fuera velocidad  Los datos son privados: Frena() accesibles desde dentro Controlador del Motor POO
  • 31. Datos del Objeto  Describe los objetos de forma individual  Color: Azul  Color 2: Gris  Instrumental Digital  Ventanas eléctricas  4 asientos  Color: Verde  Color 2: Negro  Instrumental digital  2 asientos POO
  • 32. Datos Estáticos  Describen información para todos los objetos  Número de llantas: 4  Capacidad del tanque: 40 litros  Tipo de Transmisión: Automática POO
  • 33. Métodos Estáticos  Solo pueden acceder a datos compartidos por todas las instancias de la clase.  Encapsula los datos estáticos  Son invocados en la clase, no en el objeto  No es necesaria la creación de una instancia para invocarlos POO
  • 34. Métodos Estáticos llantas tanque transmision NumeroLlantas() CapacidadTanque() TipoTransmision() Automóvil POO
  • 35. Herencia  Es “un tipo de” relación  Relación “es un”  Entre Clases Transporte  Va de la generalización a la Acelera especialización Frena  Clase base Automóvil  Clase derivada  Hereda la implementación POO
  • 36. Jerarquías de Clase Transporte Marítimo Aire Nieve Tierra DentroAtmosfera FueraAtmosfera 1-Persona N-Personas POO
  • 37. Jerarquías de Clase – Otro ejemplo Cuentas Cuenta Corriente Caja Ahorro Común Sueldo POO
  • 38. Herencia Múltiple  Singular: La clase hija deriva de una única clase padre  Múltiple: La clase hija deriva de varias clases padre  No es soportada por todos los lenguajes  Puede ser confusa Nieve 1-Persona Terrestre POO
  • 39. Laboratorio •Creando clases POO
  • 40. Polimorfismo y sobrecarga  Polimorfismo: desconocimiento del cliente sobre la clase concreta del objeto que brinda el servicio. Esto me da libertad de intercambiar libremente el objeto servidor.  Sobrecarga: Definir más de un método por cada mensaje, los tipos de los argumentos ayudan a decidir a qué mensaje se invoca.  Tareas similares son realizadas por métodos con mismo nombre  Suma  Enteros  Decimales  Fracciones  Simplifican la tarea del desarrollador, al no tener que recordar distintos nombres para POO comportamientos iguales.
  • 41. Polimorfismo  La definición del método reside en la clase base  La implementación del método reside en la clase derivada  La invocación es resuelta al momento de ejecución  Early binding  Late binding Auto Acelera Frena Cohete Acelera Frena Transporte Acelera Frena Caballo Acelera POO Frena
  • 42. Clases Base Abstractas  Existen solamente para que se deriven de ellas  No tiene sentido crear una instancia de este tipo de clases  Métodos abstractos  Clases abstractas – Concrete classes Automóvil Color Asientos Transporte Acelera frena ? POO
  • 43. Resumen  ¿Qué es la Programación Orientada a Objetos?  Clases y Objetos  Métodos y Atributos  Encapsulamiento  Herencia  Polimorfismo POO
  • 44. Agenda  Presentación del curso  Programación Orientada a Objetos  Conceptos Fundamentales  Herencia, Encapsulamiento, Polimorfismo  .NET Framework 2.0  ¿Qué es el Framework?  Common Language Runtime  MSIL
  • 45. ¿Qué es un Framework?  Marco de trabajo  Puede estar compuesto por  Librerías de clases  Documentación  Ayuda  Ejemplos  Tutoriales .NET Framework  Etc.
  • 46. ¿Qué es Framework 2.0? Herramientas Clientes de Desarrollo Aplicaciones Bases de Datos Web ASP.NET .NET Framework Servicios Aplicaciones .NET Web XML de Usuario Framework
  • 47. VB C++ C# J# … Common Language Specification Visual Studio .NET ASP .NET Windows Web Forms Web Services ASP.NET Mobile Controls Forms ADO .NET and XML Base Class Library Common Language Runtime .NET Framework Operating System
  • 48. ¿Qué problemas resuelve .NET?  Desde Internet, muchas aplicaciones y dispositivos están fuertemente comunicados entre sí  Los programadores escribían arquitectura en lugar de aplicaciones  Los programadores tenían conocimientos limitados o debían .NET Framework aprender nuevos lenguajes
  • 49. .NET Framework  El .NET Framework constituye las bases sobre las que, tanto aplicaciones como servicios, son ejecutadas y construidas.  La naturaleza unificada del .NET Framework permite que cualquier tipo de aplicación sea desarrollada mediante herramientas comunes haciendo la integración mucho mas simple.  El .NET Framework esta compuesto de: .NET Framework  El CLR (Common Language Runtime)  La BCL (Base Class Library)
  • 50. CLR – Common Language Runtime  El CLR es el motor de ejecución (runtime) del .NET Framework.  Ofrece servicios automáticos tales como:  Administración de la memoria  Seguridad del código, asegurando:  Conversión de tipos  Inicialización de variables  Indexación de arreglos fuera de sus .NET Framework límites  Versionamiento
  • 51. Componentes de CLR .NET Framework Class Library Support Thread Support COM Marshaler Type Checker Exception Manager Security Engine Debug Engine MSIL to Native Code Garbage Compilers Manager Collector .NET Framework Class Loader
  • 52. CTS (Common Type System)  Define un conjunto común de “tipos” orientado a objetos  Todo lenguaje de programación debe implementar los tipos definidos por el CTS  Todo tipo hereda directa o indirectamente del tipo OBJECT .NET Framework  Tipos de VALOR y de REFERENCIA
  • 53. Microsoft Intermediate Language (MSIL)  El compilador convierte al código soportado por .NET en lenguaje intermedio.  Es un conjunto de instrucciones independientes de la CPU, que se convierten en código nativo al ejecutarse.  Para convertir MSIL a código nativo, se utilizan compiladores llamados “Just In Time” JIT  Los archivos ejecutables estan conformados por  MSIL .NET Framework  Datos Adicionales (Metadata)  El MSIL es independiente del lenguaje en el que se desarrolla
  • 54. Resumen  ¿Qué es el .NET Framework?  Common Language Runtime  Common Type System  Microsoft Intermediate Language .NET Framework

Notas del editor

  1. Microsoft y las Universidades partícipes del programa pretenden a través del otorgamiento de becas de estudio ayudar a impulsar la carrera de los desarrolladores. El conocimiento de la tecnología .net abre nuevas oportunidades laborales, debido a la gran demanda existente en el mercado. Se otorgarán un total de 1000 becas de estudio entre las Universidades partícipes. Todos aquellos que se inscriban y cumplan los requisitos previos de selección indicados en los Términos y Condiciones podrán acceder sin costo a las mismas. El inicio de cada curso estará sujeto a la cobertura del cupo mínimo de inicio. Para la aprobación del curso, se establece un requisito de asistencia obligatoria al 80% de las actividades presenciales, así como la aprobación de un examen intermedio y uno final correspondientes a la primera y segunda estrella del programa Desarrollador Cinco Estrellas http://www.microsoft.com/spanish/msdn/comunidad/dce/default.asp, y la presentación y aprobación de un trabajo práctico. El examen de la primera estrella se rendirá on line en el site de Desarrollador Cinco Estrellas y el examen final se rendirá presencialmente por los alumnos y será el correspondiente al nivel Segunda Estrella, ambos del Programa Desarrollador 5 Estrellas de Microsoft. Mediante estos exámenes los alumnos obtienen su certificado de aprobación del curso para cada instancia, que certifica su nivel de conocimiento. Para solicitar un cupo de acceso a la beca de estudio, en esta primera etapa hay que inscribirse on line, haciendo click acá  y completar todos los datos requeridos. En el mes de Noviembre se les enviará al mail consignado en la registración, las indicaciones para completar el test y algunos datos adicionales.
  2. Empleos  Esta última instancia habilita a los participantes a acceder a una web donde pondrán a disposición sus datos para ser contactados por los Socios de Negocios que requieran cubrir alguna posición en sus empresas. Participarán así de un proceso de selección y aquellos cuyo perfil se adapte mas a las necesidades de la posición, recibirán una propuesta para incorporarse a la empresa. Asimismo dichos Socios de Negocios publicarán sus búsquedas y podrán recibir los CVs de los desarrolladores interesados.
  3. La programación orientada a objetos entiende a la actividad de desarrollar software basados en el paradigma de orientación a objetos. Dentro de este paradigma, la programación es adquisición de conocimiento de la realidad que queremos modelar, en pos de construir un modelo computacional de la misma. Asociamos entonces a entes de la realidad, objetos del mundo computacional con el objetivo de construir un modelo de simulación de la misma. La programación orientada a objetos implica entre otros beneficios, gran capacidad de reuso. Dado que en la realidad resolvemos problemas a través de que los diferentes entes de la misma colaboren, una vez que hemos encontrado un mecanismo para resolver un problema, utilizamos éste para alcanzar el mismo resultado existoso una y otra vez. Dado que nuestro modelo computacional es una simulación de esta realidad, el reuso se presenta en ambos sentidos. El concepto de programación orientada a objetos (OOP) no es nuevo, lenguajes clásicos como SmallTalk se basan en ella. Dado que la OOP. se basa en la idea natural de la existencia de un mundo lleno de objetos y que la resolución del problema se realiza en términos de objetos, un lenguaje se dice que es orientado a objetos, si los elementos esenciales de construcción del software son objetos y mensajes. Podemos definir un objeto como un conjunto complejo de datos y programas que poseen estructura y forman parte de una organización. Esta definición especifica varias propiedades importantes de los objetos. En primer lugar, un objeto no es un dato simple, sino que contiene en su interior cierto número de componentes bién estructurados. En segundo lugar, cada objeto no es un ente aislado, sino que forma parte de una organización jerárquica o de otro tipo.
  4. Pensar en términos de objetos es muy parecido a cómo se hace en la vida real. Por ejemplo, pensar en un coche para tratar de construir un modelo orientado a objetos. Se diría que el coche es el elemento principal que tiene una serie de características, como podrían ser el color, el modelo o la marca. Además tiene una serie de funcionalidades asociadas, como pueden ser ponerse en marcha, parar o estacionar. En un esquema POO el coche sería el objeto, las propiedades serían las características como el color o el modelo y los métodos serían las funcionalidades asociadas como ponerse en marcha o parar. Los programas Orientados a objetos utilizan muchos objetos para realizar las acciones que se desean realizar y ellos mismos también son objetos. Es decir, el taller de coches será un objeto que utilizará objetos coche, herramienta, mecánico, recambios, etc.
  5. Las clases son declaraciones de objetos, también se podrían definir como abstracciones de objetos. Esto quiere decir que la definición de un objeto es la clase. Cuando programamos un objeto y definimos sus características y funcionalidades en realidad lo que estamos haciendo es programar una clase. La clasificación se basa en un comportamiento y atributos comunes. Permite crear un vocabulario estandarizado para comunicarse y pensar dentro del equipo de trabajo.
  6. Una clase es una construcción estática que describe un comportamiento común y atributos (que toman distintos estados). Su formalización es a través de una estructura de datos que incluye datos y funciones, llamadas métodos. Los métodos son los que definen el comportamiento.
  7. Toda clase tiene, de manera implícita o explicita, dos métodos. El constructor y el destructor. El constructor es llamado cuado la clase comienza a ocupar un lugar en memoria, es decir, cuando comienza a ser utilizada, al ser instanciada. Se encarga de inicializar valores, e incluso muchas veces de llamar a otros constructores de otras clases. El destructor es un método que se llama al finalizar la vida de la instancia de la clase, para liberar recursos. Cualquiera de los dos métodos tienen que formar parte de las clases, existen constructores y destructores por defecto, para las clases mas simples. En clases mas complejas, el desarrollador deberá implementar estos métodos. Muchas veces, los constructores reciben parámetros con los valores con los que la clase debe inicializarse. Las llamadas a constructores y destructores pueden ser implícitas o explicitas, dependiendo de la clase, la aplicación, etc.
  8. Los objetos son instancias de una clase. Cuando creamos una instancia tenemos que especificar la clase a partir de la cual se creará. Esta acción de crear un objeto a partir de una clase se llama instanciar Por ejemplo, un objeto de la clase fracción es por ejemplo 3/5. El concepto o definición de fracción sería la clase, pero cuando ya estamos hablando de una fracción en concreto 4/7, 8/1000 o cualquier otra, la llamamos objeto. Identidad: El principio de identidad se refiere a la relación única entre cada objeto del modelo computacional y el dominio de problema de la realidad que representa. En el modelo computacional esto se representa a través de un identificador único en el modelo. Comportamiento que le permite realizar tareas específicas, como a todos los objetos de su misma clase. Estado que se determina a través de cierta información almacenada, que puede ser fija o variable.
  9. Proponer a los asistentes del curso la creación descripción, en atributos y métodos, de distintos objetos del mundo real. Por ejemplo: Auto, Casa, Multa por infracción de transito, Tarjeta de débito. ¿Qué otras cosas se pueden modelizar mediante POO?
  10. La abstracción de datos permite no preocuparse de los detalles no esenciales. Existe en casi todos los lenguajes de programación. Las estructuras de datos y los tipos de datos son un ejemplo de abstracción. Los procedimientos y funciones son otro ejemplo. Es la capacidad de un objeto de cumplir sus funciones independientemente del contexto en el que se lo utilice; o sea, un objeto “cliente” siempre expondrá sus mismas propiedades y dará los mismos resultados a través de sus eventos, sin importar el ámbito en el cual se lo haya creado. Es poder generalizar un objeto como tipo de dato, con sus características y comportamientos comunes.
  11. Esta característica es la que denota la capacidad del objeto de responder a peticiones a través de sus métodos sin la necesidad de exponer los medios utilizados para llegar a brindar estos resultados. O sea, el método Acelerar() del objeto “auto”, siempre aumentará la velocidad, sin necesidad de tener conocimiento de cuáles son los recursos que ejecuta para llegar a brindar este resultado.
  12. Los objetos deben comunicarse solo a través de su protocolo de modo que la responsabilidad en administrar tanto el comportamiento como el respetar los invariantes de clase sea solo del objeto que implementa dicho comportamiento. Esto además es una condición necesaria para permitir el polimorfismo. La utilidad del encapsulamiento va por la facilidad para manejar la complejidad, ya que las Clases se ven como cajas negras donde sólo se conoce el comportamiento pero no los detalles internos, y esto es conveniente porque solo interesará conocer qué hace la Clase pero no será necesario saber cómo lo hace.
  13. El encapsulamiento también es llamado “ocultamiento de la información”, esto asegura que los objetos no pueden cambiar el estado interno de otros objetos de maneras inesperadas; solamente los propios métodos internos del objeto pueden acceder a su estado. Cada tipo de objeto expone una interfaz a otros objetos que especifica cómo otros objetos pueden interactuar con él. Algunos lenguajes permiten un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstracción.
  14. La clase auto define una serie de atributos: Color, Color2, Instrumental, Asientos, etc. Cada una de las instancias de esa clase, toma valores diferentes.
  15. Hay ciertos atributos que pueden ser comunes a todas las instancias de una clase, son definidos como estáticos.
  16. Los métodos estáticos definidos en una clase, pueden ser invocados sin necesidad de instanciar la clase. Solo accederán a datos estáticos. El llamar a métodos estáticos generalmente resulta cómodo, sobre todo en tareas de inicialización de las clases, por ejemplo.
  17. La herencia es uno de los conceptos más cruciales en la POO. La herencia básicamente consiste en que una clase puede heredar sus variables y métodos a varias subclases (la clase que hereda es llamada superclase o clase padre). Esto significa que una subclase, aparte de los atributos y métodos propios, tiene incorporados los atributos y métodos heredados de la superclase. De esta manera se crea una jerarquía de herencia. Relación “es un” significa que la clase hija (o heredera), es, además, lo mismo que su padre. Es decir, un auto “es un” transporte, un caballo “es un” animal, etc. Estos pueden compartir (y extender) su comportamiento sin tener que reimplementar su comportamiento. Esto suele hacerse habitualmente agrupando los objetos en clases y las clases en árboles o enrejados que reflejan un comportamiento común.
  18. Vimos que cada vez que un objeto debe resolver un problema lo hace a través de colaborar con objetos que cumplen el rol de servidores. Estos servicios son brindados a través del protocolo que el objeto exporta. El protocolo está definido en términos de mensajes compuestos de la “signatura” y el conjunto de objetos argumento que el mismo recibe. El objeto que recibe un mensaje resuelve el problema a partir de ejecutar un método . Cuando los lenguajes orientados a objetos son fuertemente tipados, esto es que se especifica el tipo de argumento de entrada y salida de los objetos en forma implicita o explicita, podemos decidir para cada conjunto de tipos de argumento (o cantidad de argumentos) de entrada un método diferente que resuelve dicho mensaje, el compilador decide cual mpetodo aplica en funcion de esta información de tipos sobre los argumentos. A esto se lo conoce como sobrecarga. Cuando el objeto cliente desconoce la clase concreta asociada al objeto servidor, permitiendonos intercambiar diferentes servidores que aplican diferentes métodos para resolver un problema, estamos en presencia de polimorfismo. Como ejemplos de sobrecarga estamos habituados a que el operador <<suma>> esté presente en todos los lenguajes de programación. Sin embargo, los operadores <<suma de fracciones>> y <<suma de números complejos>> no existen en casi ningún lenguaje de programación. Los lenguajes OOP permiten definir un operador <<suma>> tal que reconozca que tipo de objeto se le está aplicando, a través de operaciones de objetos. Previamente deberá definir la fracción y el número complejo como una clase y la operación suma como una operación de una clase. Definiendo adecuadamente las operaciones suma de fracciones y suma de números imaginarios , el operador suma devolverá, en el caso que los operandos sean fracciones, una fracción y , en el caso de los números imaginarios, otros número imaginario.
  19. El término de polimorfismo también define la capacidad de que más de un objeto puedan crearse usando la misma clase de base para lograr dos conceptos de objetos diferentes, en este caso podemos citar el típico ejemplo de los teléfonos, los cuales se basan en un teléfono base, con la capacidad de hacer ring y tener un auricular, para luego obtener un teléfono digital, inalámbrico, con botonera de marcado y también, tomando la misma base, construir un teléfono analógico y con disco de marcado. Si en el momento de la compilación de un programa se conoce la clase concreta del objeto que se usará, las llamadas a sus métodos quedarán fijadas mediante lo que se conoce como "enlace estático o temprano" ( early binding ), si no, habrá de determinarse la llamada adecuada en tiempo de ejecución, efectuándose entonces un "enlace dinámico o tardío" ( late binding ).
  20. Los métodos abstractos son declarados pero no implementados. Si existe un método abstracto entonces debemos declarar la clase como abstracta, y al declararla como tal no se pueden crear instancias de ella. Sirven para definir conceptos incompletos, que deben ser completados en las subclases de la clase abstracta. En el ejemplo, la clase transporte no puede ser instanciada, salvo desde alguna clase heredera, que implemente los métodos acelerar y frenar.
  21. Un framework, según su traducción literal es un marco de trabajo. Este marco de trabajo, ofrece a quien lo utiliza, una serie de herramientas para facilitarle la realización de determinada tarea. Un framework puede estar compuesto por librerías de clases, documentación y ayuda, ejemplos, tutoriales e incluso foros de discusión. Es posible que se utilicen varios frameworks a la vez, o incluso que algunos sean soporte de otros.
  22. .NET Framework es un componente Windows que soporta el desarrollo y ejecucion de aplicaciones Windows y Web Services. El propósito de este componente es proveer al usuario con un entorno de programación orientada a objetos consistente, donde el código pueda estar almacenado localmente o de manera remota. Intenta minimizar los conflictos con el deploy y versionado de software y promueve la ejecución de código segura. El esfuerzo es hacer que la experiencia del desarrollador sea consistente entre una gran variedad de aplicaciones y plataformas y crear una comunicación estándar que ayude a las aplicaciones .NET Framework a integrarse con otras aplicaciones web-based. El .NET Framework tiene dos componentes principales. La Common Runtime (CLR) y la Class Library E The CLR is the foundation upon which the .NET Framework has been built. The runtime manages code at execution time and provides all the core services such as memory management, thread management and remoting. It also enforces strict type safety and ensures code accuracy in order to provide security and robustness to the applications. This capability to manage code at runtime is the distinguishing feature of the CLR. All code that is managed by the CLR is known as managed code while other codes are known as unmanaged code.
  23. El .NET Framework 2.0 El .NET Framework provee las herramientas necesarias en run-time y compile-time para construir y ejecutar aplicaciones basadas en .NET Plataforma .NET Framework debe ejecutarse sobre un Sistema Operativo. Application Services El .NET Framework expone servicios de aplicaciones a través de clases de la .NET Framework Classs Library. Common Language Runtime 2.0 La Common Language Runtime simplifica el desarrollo de aplicaciones, provee un entorno de ejecución robusto y seguro, soporta varios lenguajes y simplifica el despliegue y la administración. La CLR es un entorno administrado (managed), en el cual los servicios comunes, como garbage collection y seguridad, son provistos automáticamente. .NET Framework Class Library 2.0 La librería de clases de .NET Framework expone características en tiempo de ejecución y provee otros servicios útiles para todos los desarrolladores. Las clases simplifican el desarrollo basado en .NET. Los desarrolladores pueden extenderlas creando sus propias librerías de clases. Las librerías de clases base implementan el .NET Framework. Todas las aplicaciones (web, windows, web services) acceden a las mismas clases base. Estas están almacenadas en namespaces. Los diferentes lenguajes acceden a las mismas librerías. ADO.NET 2.0 ADO.NET provee soporte para modelos de programación desconectada. Además proveen soporte para XML enriquecido. ASP.NET 2.0 Microsoft ASP.NET es un framework de programación que está montado sobre la CLR. ASP.NET puede ser utilizado sobre un servidor para construir poderosas aplicaciones web. ASP.NET Web Forms provee un poderoso y sencillo método para construir Interfaces de usuario (UI) dinámicas. XML Web Services Componentes Web programables que pueden ser compartidos entre aplicaciones, sobre Internet o una intranet. El .NET Framework provee herramientas y clases para desarrollo, testeo y distribución de XML Web Services. User Interfaces El .NET Framework soporta tres tipos de Interfaces de usuario: Web Forms, Windows Forms, Aplicaciones de Consola. Lenguajes Cualquier lenguaje que sea acorde a la Common Language Specification (CLS) puede ejecutarse sobre la CLR. En .NET Framework, Microsoft provee Visual Basic, Visual C++, Visual C#, Visual J#. Terceros pueden proveer nuevos lenguajes.
  24. El .NET Framework resuelve la comunicación entre distintas aplicaciones, permite la reusabilidad de módulos, brinda la posibilidad a los desarrolladores de utilizar el lenguaje en el que mas cómodos se sienten.
  25. La Common Language Runtime es el corazón del .NET Framework. Los compiladores y herramientas exponen funcionalidad en tiempo de ejecución y permiten escribir código con el beneficio de un entorno de ejecución administrado. El código que se desarrolla con un compilador de lenguaje que trabaja con el runtime se llama código administrado (managed code). Esto permite beneficios como integración y manejo de excepciones entre distintos lenguajes, seguridad mejorada, versionamiento y soporte para despliegue. Además de un modelo simplificado para interacción de componentes y servicios de debugging y profiling. Para permitir al runtime proveer servicios al código administrado, los compiladores deben emitir metadata (información adicional) que describe tipos, miembros y referencias en el código. La metadata se almacena con el código. Cada archivo que la CLR puede cargar contiene metadata. El runtime la utiliza para localizar y cargar las clases, mantener las instancias en memoria, resolver el llamado de métodos, generar código nativo, mejorar la seguridad y definir las fronteras del contexto de ejecución. CLR administra la memoria utilizada por las aplicaciones, evitando perdidas de memoria que podrían estar originadas por errores en el código escrito. El entorno de ejecución brinda además un entorno de ejecución que permitirá y administrará la conversión de tipos de los valores con los que operan las aplicaciones, la inicialización de las variables, el control de overflows, etc. Permite además que convivan diferentes versiones de una misma dll, sin que se generen conflictos.
  26. La common language runtime simplifica el desarrollo de aplicaciones, brindando un entorno de ejecución seguro y robusto, con soporte para múltiples lenguajes, tal como se detalló en diapositivas anteriores. Este entorno se conoce generalmente como entorno administrado o managed environment, en el cual son provistos automáticamente los servicios comunes, como garbage collection y securuty. A continuación se realiza una breve reseña de cada uno de los componentes que serán analizados mas en detalle a continuación. Class loader Administra metadata (información provista con los archivos, analizada mas adelante), carga y disponibilidad de las clases. Microsoft intermediate language (MSIL) to native compiler Convierte MSIL a código nativo (JIT) Code manager Administra la ejecución de código. Garbage collector (GC) Provee la administración automática del ciclo de vida de todos los objetos. Security engine Provee la seguridad basada en el origen de código y en el usuario que lo ejecuta. Debug engine Permite realizar el debug de la aplicación a partir de un trazado del código que esta siendo ejecutado. Type checker Evita que se realicen casteos inseguros o se utilicen variables no inicializadas. Exception manager Provee una estructura de manejo de excepciones, la cual se integra con Windows Structured Exception Handling. Thread support Provee clases e interfaces para trabajar con programación multihilos. COM marshaler Provee interoperabilidad entre .NET y COM Base Class Library (BCL) support Integra el código con el runtime que soporta BCL
  27. CTS define como la forma en la que los tipos deben ser declarados, utilizados y administrados en el runtime. Además es una parte del runtime para el soporte en la integración de varios lenguajes. El sistema de tipos comunes realiza las siguientes funciones: -Establecer un framework para soporte de integración de múltiples lenguajes, seguridad de tipos y alta performance en la ejecución de código. -Provee un modelo orientado a objetos que soporta la implementación de varios lenguajes de programación. -Define las reglas que debe seguir un lenguaje, lo que asegura que distintos lenguajes puedan interactuar sin problemas. Clasificación de tipos CTS soporta dos categorías generales de tipos, cada una de las cuales se divide en subcategorías: Value types: Directamente contienen sus datos. Las instancias de los value types son alocadas en la stack o de manera inline en una estructura. Pueden ser incorporados (implementados por el runtime), definidos por el usuario o enumeraciones. Reference types: almacenan una referencia a una dirección de memoria con un valor, y son alocados en la heap. Los Reference types pueden tipos auto-descriptivos, punteros, o interfaces. Todos los tipos derivan de System.Object, que es el tipo base.
  28. Cuando se compila código soportado en .NET Framework, el compilador convierte el código fuente en Lengua intermedio de Microsoft (MSIL), que es un conjunto de instrucciones independiente de la CPU que se pueden convertir de forma eficaz en código nativo. MSIL incluye instrucciones para cargar, almacenar, inicializar y llamar a métodos en los objetos, así como instrucciones para operaciones lógicas y aritméticas, flujo de control, acceso directo a la memoria, control de excepciones y otras operaciones. Antes de poder ejecutar código, se debe convertir MSIL al código específico de la CPU, normalmente mediante un compilador JIT. Common Language Runtime proporciona uno o varios compiladores JIT para cada arquitectura de equipo compatible, por lo que se puede compilar y ejecutar el mismo conjunto de MSIL en cualquier arquitectura compatible. Cuando el compilador produce MSIL, también genera información adicional sobre el código. Esta información describe los tipos que aparecen en el código, incluidas las definiciones de los tipos, las firmas de los miembros de tipos, los miembros a los que se hace referencia en el código y otros datos que el motor de tiempo de ejecución utiliza en tiempo de ejecución. El lenguaje intermedio de Microsoft (MSIL) y los datos adicionales, conocidos como MetaData, se incluyen en un archivo ejecutable portable (PE), que se basa y extiende el PE de Microsoft publicado y el formato Common Object File Format (COFF) utilizado tradicionalmente para contenido ejecutable. Este formato de archivo, que contiene código MSIL o código nativo así como metadata, permite al sistema operativo reconocer imágenes de Common Language Runtime. La presencia de metadatos junto con el Lenguaje intermedio de Microsoft (MSIL) permite crear códigos autodescriptivos, con lo cual las bibliotecas de tipos y el Lenguaje de definición de interfaces (IDL) son innecesarios. El motor de tiempo de ejecución localiza y extrae los metadatos del archivo cuando son necesarios durante la ejecución.