Download Multiples Capas Lógicas

Document related concepts
no text concepts found
Transcript
Oh, OO!
Andrés Aguiar
[email protected]
GOTOs
No GOTOs
OO
Orientación a Objetos
Evolución de la programación estructurada
1972, Smalltak
1986, C++
1995, VB4 – VB5 – VB6
1996, Java
2001, .NET
Monitores transaccionales
‘Procedurales’
CICS
Tuxedo
Orientados a componentes
Microsoft Transaction Server / COM+
Enterprise Java Beans
Estado del arte
Programación orientada a objetos.
Diseño de aplicaciones en múltiples capas
lógicas / físicas.
Como ostomos hoy?
GeneXus
No tiene soporte para Orientación a Objetos.
Permite ejecución en múltiples capas físicas.
Permite pero no agrega valor al diseño en
múltiples capas lógicas.
Oportunidad de GX Rocha
OO y múltiples capas crecieron a la vez.
Existen un conjunto de ‘Best Practices’ para
programar OO en múltiples capas lógicas.
En GX podemos tener un ambiente OO
diseñado para aplicaciones en múltiples capas
lógicas.
Multiples Capas Lógicas
Interfaz de Usuario
Lógica de Negocio
Clases auxiliares
Transacciones
Transacción sin interfaz de usuario
Reglas
Estructura
Transacción con interfaz de usuario
Asociada a una de las anteriores
Puede tener reglas propias
Interfaz
Workpanels, Webpanels.
Transacciones UI
Clases UI
No pueden tener acceso a datos (For Eachs)
Lógica de Negocios
Clases de lógica de negocios
Procedimientos
Reportes
Transacciones
Stateless
Síncronos o asíncronos
Clases auxiliares
Clases que se pueden usar desde cualquier
capa.
No tienen acceso a datos.
Restricciones
La capa de Interfaz puede usar componentes
de la capa de lógica de negocios y de la
auxiliar.
La capa de Lógica de Negocios puede usar
componentes de la capa auxiliar.
La capa auxiliar no puede usar componentes
en otras capas.
Ojo con los procs o wkps
Compatibilidad
Evento Load en workpanels
Otros eventos en workpanels
Procedimientos
Compatibilidad
Pueden coexistir objetos viejos y nuevos.
Si tiene objetos que no cumplen las
restricciones de las capas, no se generan
aplicaciones para algunos ambientes.
Soporto todos los protocolos
Subproductos
La capa de lógica de negocios es Business
Framework de la aplicación.
Se puede exponer como componentes .NET,
Enterprise Java Beans, Web Services ….
¿Usar GX sólo para la capa de lógica de
negocios?
Br_og_n Gond_ :
Socorro!! OO No!
Lenguaje similar a VB.NET:
Interfaces
Herencia simple
Excepciones
Sin herencia visual en formularios.
Public Class BalanceCliente Extends Balance
Public Method GetBalance(ClienteCodigo) As Importe
Declare &Balance as Importe = 0
For Each
&Balance += FacturaTotal
End For
For Each
&Balance -= PagoImporte
End For
Return &Balance
End Method
End Class
Declare &Invoice as New Invoice()
Declare &InvoiceLine as New InvoiceLine()
&Invoice.InvoiceId = 1
&Invoice.InvoiceDate = today()
&InvoiceLine.ItemId = 1
&InvoiceLine.InvoiceLineQty = 1
&Invoice.&InvoiceLine.add(&InvoiceLine)
Try
&Invoice.Insert()
Catch (Exception e)
msg(“Error al insertar factura: “ + e.GetMessage())
End Catch
Resumen
Implementación de un lenguaje orientado a
objetos pensado para construir aplicaciones
comerciales en múltiples capas