Download - 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
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
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
Pilares de OOPPilares de OOPPilares de OOPPilares de OOP
PolimorfismoPolimorfismo
HerenciaHerencia
AbstracciónAbstracción
EncapsulamientoEncapsulamiento
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)
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
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
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
Polimorfismo – VB.NETPolimorfismo – VB.NETPolimorfismo – VB.NETPolimorfismo – VB.NET
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
Polimorfismo / Polimorfismo / EncapsulamientoEncapsulamiento
Polimorfismo / Polimorfismo / EncapsulamientoEncapsulamiento
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
HerenciHerenciaa
HerenciHerenciaa
HerenciaHerenciaHerenciaHerencia
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
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
Overload (Sobrecarga)Overload (Sobrecarga)Overload (Sobrecarga)Overload (Sobrecarga)
Overload (Sobrecarga)Overload (Sobrecarga)Overload (Sobrecarga)Overload (Sobrecarga)
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
DelegateDelegateDelegateDelegate
DelegateDelegateDelegateDelegate
N-tierN-tier
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?
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
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
N-tier (1 / 2)N-tier (1 / 2)N-tier (1 / 2)N-tier (1 / 2)
ClienteCliente
Base de Datos
1 capa
N-tierN-tierClass Library - DLL
Presentation
VB.NET + VB.NET + C#C#
Class Library - DLL
Presentacion
N-tierN-tierN-tierN-tier
1 capa 2 capas
Base de Datos
3 capas
ClienteCliente
NegociosNegocios
N-tierN-tierN-tierN-tier
Database
Stored ProceduresStored Procedures
¿Qué son?¿Qué son?
¿Cuáles son sus ventajas?¿Cuáles son sus ventajas?
Stored ProceduresStored Procedures
Stored ProceduresStored Procedures
Stored ProceduresStored Procedures
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
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
Server ApplicationServer ApplicationServer ApplicationServer Application
1 capa 2 capas
Base de Datos
3 capas
ClienteCliente
Server App.Server App.
¿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
¿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)
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
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
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
Uso de los Web Uso de los Web ServicesServices
Uso de los Web Uso de los Web ServicesServices
XM
L
Web Services
XML
App Externas
WIN, WEB, MOBILE
App Internas
WEB, MOBILE
WIN
Database
Server AppServer App
ClientClientWeb Server