sesion 3 programacion orientada a objetos

44
Programación Programación Orientada a Objetos Orientada a Objetos OOP OOP Desarrollo de Desarrollo de Aplicaciones en Capas Aplicaciones en Capas

Upload: api-3748772

Post on 07-Jun-2015

1.165 views

Category:

Documents


0 download

DESCRIPTION

Presentaciones enviadas por ITESA.NET

TRANSCRIPT

Page 1: Sesion 3 Programacion Orientada a Objetos

Programación Programación Orientada a ObjetosOrientada a Objetos – –

OOPOOP

Desarrollo de Desarrollo de Aplicaciones en CapasAplicaciones en Capas

Page 2: Sesion 3 Programacion Orientada a Objetos

ObjetivoObjetivo

Mostrar los conceptos de Mostrar los conceptos de programación orientada a objetos programación orientada a objetos

(OOP) y el desarrollo de (OOP) y el desarrollo de aplicaciones en capas (n-tier), sus aplicaciones en capas (n-tier), sus

ventajas, estructuras y ventajas, estructuras y comunicacióncomunicación

Page 3: Sesion 3 Programacion Orientada a Objetos

Definición - OOPDefinición - OOPDefinición - OOPDefinición - OOP

Técnica de programación de forma Técnica de programación de forma estructurada con la finalidad de estructurada con la finalidad de

reaprovechar el código existente e reaprovechar el código existente e implementar nuevas clases cuando implementar nuevas clases cuando

es necesarioes necesario

Page 4: Sesion 3 Programacion Orientada a Objetos

Pilares de OOPPilares de OOPPilares de OOPPilares de OOP

PolimorfismoPolimorfismo

HerenciaHerencia

AbstracciónAbstracción

EncapsulamientoEncapsulamiento

Page 5: Sesion 3 Programacion Orientada a Objetos

AbstracciónAbstracciónAbstracciónAbstracción

Es la capacidad de generalizar un Es la capacidad de generalizar un objeto como un tipo de dato que posea objeto como un tipo de dato que posea

un conjunto específico de un conjunto específico de características (propiedades) y pueda características (propiedades) y pueda

ejecutar un grupo de acciones ejecutar un grupo de acciones (métodos)(métodos)

Page 6: Sesion 3 Programacion Orientada a Objetos

Abstracción de un Abstracción de un automóvilautomóvilEjemplo en VB.NETEjemplo en VB.NET

Abstracción de un Abstracción de un automóvilautomóvilEjemplo en VB.NETEjemplo en VB.NET

Public Class Carro Public VelocidaMaxima As Integer Public NombreDelModelo As String Public Sub Acelerar()

‘codigo para acelerar End Sub Public Sub Parar() ‘codigo para parar End SubEnd Class

Page 7: Sesion 3 Programacion Orientada a Objetos

EncapsulamientoEncapsulamientoEncapsulamientoEncapsulamientoEs la exposición de las propiedades y Es la exposición de las propiedades y

métodos de un objeto mientras la métodos de un objeto mientras la implementación real permanece oculta implementación real permanece oculta

del mundo exterior. El objeto es del mundo exterior. El objeto es tratado como una caja negra.tratado como una caja negra.

Esto permite que los desarrolladores Esto permite que los desarrolladores creen objetos que puedan ser creen objetos que puedan ser

alterados sin afectar el código fuente alterados sin afectar el código fuente que los utilizaque los utiliza

Page 8: Sesion 3 Programacion Orientada a Objetos

PolimorfismoPolimorfismoPolimorfismoPolimorfismoEs el concepto según el cual objetos Es el concepto según el cual objetos diferentes poseen implementaciones diferentes poseen implementaciones diferentes de una misma propiedad o diferentes de una misma propiedad o método. Por ejemplo, un helicóptero y método. Por ejemplo, un helicóptero y un avión a chorro poseen el método un avión a chorro poseen el método

LevantaVuelo y la propiedad AltitudMax, LevantaVuelo y la propiedad AltitudMax, sin embargo sus implementaciones son sin embargo sus implementaciones son

diferentesdiferentes

Page 9: Sesion 3 Programacion Orientada a Objetos

Polimorfismo – VB.NETPolimorfismo – VB.NETPolimorfismo – VB.NETPolimorfismo – VB.NET

Page 10: Sesion 3 Programacion Orientada a Objetos

Polimorfismo / Polimorfismo / EncapsulamientoEncapsulamiento

Polimorfismo / Polimorfismo / EncapsulamientoEncapsulamiento

No confunda los dos, ya que se uno se No confunda los dos, ya que se uno se refiere al hecho de que existen refiere al hecho de que existen

funciones que pueden ser atribuidas a funciones que pueden ser atribuidas a una clase sin que su implementación una clase sin que su implementación sea conocida, y el otro define que dos sea conocida, y el otro define que dos o más clases posean la misma interfazo más clases posean la misma interfaz

Page 11: Sesion 3 Programacion Orientada a Objetos

Polimorfismo / Polimorfismo / EncapsulamientoEncapsulamiento

Polimorfismo / Polimorfismo / EncapsulamientoEncapsulamiento

Page 12: Sesion 3 Programacion Orientada a Objetos

HerenciaHerenciaHerenciaHerencia

Es el concepto por el que una clase Es el concepto por el que una clase puede estar basada en otra puede estar basada en otra

denominada clase base. La herencia denominada clase base. La herencia suministra un mecanismo para crear suministra un mecanismo para crear

jerarquías de objetosjerarquías de objetos

Page 13: Sesion 3 Programacion Orientada a Objetos

HerenciHerenciaa

HerenciHerenciaa

Page 14: Sesion 3 Programacion Orientada a Objetos

HerenciaHerenciaHerenciaHerencia

Page 15: Sesion 3 Programacion Orientada a Objetos

HerenciaHerenciaHerenciaHerencia

InheritsInherits Indica la clase que se heredaráIndica la clase que se heredará

NoInheritableNoInheritable Indica que la clase que utiliza este elemento no puede ser Indica que la clase que utiliza este elemento no puede ser heredada en ninguna otra claseheredada en ninguna otra clase

MustInheritMustInherit Indica que la clase que utiliza este elemento solamente puede Indica que la clase que utiliza este elemento solamente puede ser utilizada por medio de su herencia en otra claseser utilizada por medio de su herencia en otra clase

Alcance de la ClaseAlcance de la Clase

OverridableOverridable Indica que el método que utiliza este elemento puede ser Indica que el método que utiliza este elemento puede ser sobreescritosobreescrito

NotOverridabNotOverridablele

Indica que el método que utiliza este elemento no puede ser Indica que el método que utiliza este elemento no puede ser sobreescritosobreescrito

MustOverrideMustOverride Indica que el método que utiliza este elemento solamente puede Indica que el método que utiliza este elemento solamente puede ser implementado por medio de la sobreescritura del mismoser implementado por medio de la sobreescritura del mismo

OverridesOverrides Indica que el método está sobreescribiendo el método de la Indica que el método está sobreescribiendo el método de la clase baseclase base

Alcance de MétodosAlcance de Métodos

Page 16: Sesion 3 Programacion Orientada a Objetos

Overload (Sobrecarga)Overload (Sobrecarga)Overload (Sobrecarga)Overload (Sobrecarga)

Es posible emplear un único método Es posible emplear un único método (Function o Sub) para diversas (Function o Sub) para diversas

formas de implementación. Se puede formas de implementación. Se puede definir un método con el mismo definir un método con el mismo

nombre para varios tipos de nombre para varios tipos de parámetros de entrada y salida, y le parámetros de entrada y salida, y le

corresponde al Framework corresponde al Framework interpretarlos uno por uno y elegir el interpretarlos uno por uno y elegir el

correctocorrecto

Page 17: Sesion 3 Programacion Orientada a Objetos

Overload (Sobrecarga)Overload (Sobrecarga)Overload (Sobrecarga)Overload (Sobrecarga)

Page 18: Sesion 3 Programacion Orientada a Objetos

Overload (Sobrecarga)Overload (Sobrecarga)Overload (Sobrecarga)Overload (Sobrecarga)

Page 19: Sesion 3 Programacion Orientada a Objetos

DelegateDelegateDelegateDelegate

Es una funcionalidad poderosa en OOP. Es una funcionalidad poderosa en OOP. Considerando que los objetos pueden Considerando que los objetos pueden

poseer eventos, el lenguaje debe poseer eventos, el lenguaje debe proveer una forma elegante para que proveer una forma elegante para que

un objeto haga uso de métodos de un objeto haga uso de métodos de otros objetosotros objetos

Page 20: Sesion 3 Programacion Orientada a Objetos

DelegateDelegateDelegateDelegate

Page 21: Sesion 3 Programacion Orientada a Objetos

DelegateDelegateDelegateDelegate

Page 22: Sesion 3 Programacion Orientada a Objetos

N-tierN-tier

Page 23: Sesion 3 Programacion Orientada a Objetos

N-tierN-tierN-tierN-tier

¿En qué consiste esta arquitectura?¿En qué consiste esta arquitectura?¿Cuáles son las ventajas?¿Cuáles son las ventajas?¿En qué situaciones se aplica?¿En qué situaciones se aplica?

Page 24: Sesion 3 Programacion Orientada a Objetos

Internet abierta Internet abierta protocolos de comunicaciónprotocolos de comunicación(HTTP, SMTP, XML, SOAP)(HTTP, SMTP, XML, SOAP)

Experiencia del usuario Experiencia del usuario más rica y productivamás rica y productiva

Aplicaciones disponibles Aplicaciones disponibles globalmente a través de globalmente a través de Web Web

ServicesServices

Las aplicaciones se vuelven Las aplicaciones se vuelven Servicios Web programablesServicios Web programables

XMLXML

XMLXML

XMLXML

XMLXML

XMLXML

XMLXML

HTMLHTML

SmartSmartClientsClients

Standard Standard BrowsersBrowsers

Smart Smart DevicesDevices

Servicios Servicios Web Web

PúblicosPúblicos

Servicios de Servicios de BaseBase

Servicios Servicios InternosInternos

Servidores, Servidores, Datos, HostsDatos, Hosts

Servicios del Servicios del Sistema Sistema

OperativoOperativo

Logica de Logica de Negocios & Negocios &

Servicios WebServicios Web

N-tierN-tier

Page 25: Sesion 3 Programacion Orientada a Objetos

N-tierN-tier

1-capa 2-capas 3-capas

interop

erabilidad

Fuente de DatosFuente de DatosNegociosNegociosInterfaz de Interfaz de AplicacionAplicacion

Fuente de DatosFuente de Datos

Interfaz de Interfaz de AplicacionAplicacion

Interfaz de Interfaz de AplicacionAplicacion

Interfaz de Interfaz de AplicacionAplicacion

Fuente de DatosFuente de Datos

NegociosNegocios

Bases de Bases de datos, datos,

Servicios Web, Servicios Web, XMLXML

Page 26: Sesion 3 Programacion Orientada a Objetos

N-tier (1 / 2)N-tier (1 / 2)N-tier (1 / 2)N-tier (1 / 2)

ClienteCliente

Base de Datos

1 capa

Page 27: Sesion 3 Programacion Orientada a Objetos

N-tierN-tierClass Library - DLL

Presentation

Page 28: Sesion 3 Programacion Orientada a Objetos

VB.NET + VB.NET + C#C#

Class Library - DLL

Presentacion

Page 29: Sesion 3 Programacion Orientada a Objetos

N-tierN-tierN-tierN-tier

1 capa 2 capas

Base de Datos

3 capas

ClienteCliente

NegociosNegocios

Page 30: Sesion 3 Programacion Orientada a Objetos

N-tierN-tierN-tierN-tier

Database

Page 31: Sesion 3 Programacion Orientada a Objetos

Stored ProceduresStored Procedures

¿Qué son?¿Qué son?

¿Cuáles son sus ventajas?¿Cuáles son sus ventajas?

Page 32: Sesion 3 Programacion Orientada a Objetos

Stored ProceduresStored Procedures

Page 33: Sesion 3 Programacion Orientada a Objetos

Stored ProceduresStored Procedures

Page 34: Sesion 3 Programacion Orientada a Objetos

Stored ProceduresStored Procedures

Page 35: Sesion 3 Programacion Orientada a Objetos

Servicio único que pone a disposición Servicio único que pone a disposición una forma estandarizada de acceso a una forma estandarizada de acceso a las funcionalidades del sistemalas funcionalidades del sistema

Ambiente administrado y escalable Ambiente administrado y escalable para garantizar la atención a los para garantizar la atención a los usuarios usuarios

Rutinas complejas de negocio con una Rutinas complejas de negocio con una única versión siendo ejecutada, única versión siendo ejecutada, independiente de los sistemas que la independiente de los sistemas que la estuvieran utilizandoestuvieran utilizando

Server ApplicationServer ApplicationServer ApplicationServer Application

Page 36: Sesion 3 Programacion Orientada a Objetos

Ambiente centralizado para la Ambiente centralizado para la aplicación de cambios en la lógica de aplicación de cambios en la lógica de negocios, que permite un control más negocios, que permite un control más efectivo en relación con la versión y la efectivo en relación con la versión y la seguridad de la informaciónseguridad de la información

Facilidad en brindar información a los Facilidad en brindar información a los servidores web, sacandoles a ellos el servidores web, sacandoles a ellos el trabajo pesado, y siendo responsable trabajo pesado, y siendo responsable por la implementación de la lógica de por la implementación de la lógica de negociosnegocios

Server ApplicationServer ApplicationServer ApplicationServer Application

Page 37: Sesion 3 Programacion Orientada a Objetos

Server ApplicationServer ApplicationServer ApplicationServer Application

1 capa 2 capas

Base de Datos

3 capas

ClienteCliente

Server App.Server App.

Page 38: Sesion 3 Programacion Orientada a Objetos

¿Qué es un Web ¿Qué es un Web Service?Service?

¿Qué es un Web ¿Qué es un Web Service?Service?Es una clase desarrollada en .NET para Es una clase desarrollada en .NET para

atender la demanda de aplicaciones / atender la demanda de aplicaciones / sitios internos o externossitios internos o externos

<WebMethod()> Public Function …<WebMethod()> Public Function …… … instrucciones …instrucciones …End FunctionEnd Function

Page 39: Sesion 3 Programacion Orientada a Objetos

¿Dónde y por qué ¿Dónde y por qué emplear Web Services?emplear Web Services?

¿Dónde y por qué ¿Dónde y por qué emplear Web Services?emplear Web Services?

Cualquier aplicación puede consumir Cualquier aplicación puede consumir un WS disponible en la WEB (agendas, un WS disponible en la WEB (agendas, catálogos, datos bancarios, médicos, catálogos, datos bancarios, médicos, validación de tarjetas, noticias, etc.)validación de tarjetas, noticias, etc.)

El objetivo es integrar aplicaciones El objetivo es integrar aplicaciones escribiendo cada vez menos código escribiendo cada vez menos código (reutilización)(reutilización)

Page 40: Sesion 3 Programacion Orientada a Objetos

Ventajas de losVentajas de los Web Web ServicesServices

Desarrollo Desarrollo ConectadoConectado

Interoperabilidad con Interoperabilidad con sistemas construidos sistemas construidos

en cualquier en cualquier plataforma o plataforma o

lenguajelenguajeSistemas ConectadosSistemas Conectados

Integración con sistemas legados, Integración con sistemas legados,

dentro y fuera de la empresadentro y fuera de la empresa

Negocios ConectadosNegocios ConectadosAgilidad en la conexión a clientes, Agilidad en la conexión a clientes, socios y funcionarios, a través de socios y funcionarios, a través de

soluciones construidas rápidamente soluciones construidas rápidamente y a bajos costosy a bajos costos ExperienciasExperiencias

ConectadasConectadasInformación en Información en

cualquier momento, en cualquier momento, en cualquier lugar, en cualquier lugar, en

cualquier dispositivocualquier dispositivo

Page 41: Sesion 3 Programacion Orientada a Objetos

OrquestraciónOrquestración

Garantia de EntregaGarantia de Entrega

SeguridadSeguridad

Recursos de los Web Recursos de los Web ServicesServices

SistemasSistemasLegadosLegados

SistemasSistemasExternosExternos

Verticales e Verticales e InfraestructuraInfraestructura

EventosEventos

DatosDatosCorporativosCorporativos

TransaccionesTransacciones

Page 42: Sesion 3 Programacion Orientada a Objetos

Modelo de Web ServicesModelo de Web ServicesWeb Site: HTML Cliente:Web Site: HTML Cliente:

Web Service: XML Cliente:Web Service: XML Cliente:

El navegadorEl navegador

Legacy

WebWebServiceService

SistemasSistemas

Exhibe la Exhibe la información a un información a un usuario que usuario que reacciona o no reacciona o no frente a la mismafrente a la misma

El sistema que recibe El sistema que recibe la información (Excel, la información (Excel, ERP) procesa la ERP) procesa la información apenas la información apenas la reciberecibe

Page 43: Sesion 3 Programacion Orientada a Objetos

Uso de los Web Uso de los Web ServicesServices

Uso de los Web Uso de los Web ServicesServices

Page 44: Sesion 3 Programacion Orientada a Objetos

XM

L

Web Services

XML

App Externas

WIN, WEB, MOBILE

App Internas

WEB, MOBILE

WIN

Database

Server AppServer App

ClientClientWeb Server