Download Multiples Capas Lógicas
Document related concepts
no text concepts found
Transcript
Oh, OO! Andrés Aguiar aaguiar@artech.com.uy 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