miércoles, 8 de agosto de 2007

Comunicación transparente entre la capa de presentación y negocios

La capa de negocios tienen que estar completamente aislada de la capa de presentación, tiene que ser stateless y tienen que estar preparada para ser expuesta via remoting.
¿Que ocurre si necesitamos saber que usuario está logueado o en que entorno estamos en la regla de negocios?
Todas estas necesidades hacen que no quede otra recibir como argumento los datos de la sesion en cada método de la lógica de negocios que lo necesite, generando varios problemas a nivel de código, como por ejemplo el tener que pasar esa data a todos los objetos involucrados que lo requieran.

Acabo de implementar una solución que permite que la lógica de negocios conozca cual es el usuario logueado y en que entorno se encuentra en forma totalmente transparente, gracias a Exoditus, CallContext y el desarrollo de la capa de negocios con una arquitectura robusta, como también se dice "de libro".

Por cada clase de negocios, marcada con el atributo Delegable (atributo codificado por mi, que simplemente es una marca), Exoditus al momento de compilar me genera una clase ServerDelegate (que es la que se registra para Remoting) y BSDelegate (clase con métodos estáticos). Esto me asegura tener control sobre el "vía de comunicación" entre la presentación y la lógica de negocios. Para asegurarme esto, las clases de negocios son internas y solo pueden ser vistas por el ServerDelegate.

Por otro lado lo que hace Exoditus es, en las clases BSDelegate, antes de llamar al ServerDelegate, invoca al método SetData del CallContext, guardando ahi los datos de la sesion.

Los datos referentes a la sesion son accedidos mediante una clase que implementa el patron Abstract Factory, con la capacidad de saber si está en la capa de presentación y la capa de negocios.

Cada día me doy cuenta que hacer cosas de "libro" en un esquema orientado a objetos te da una capacidad de expansión y una flexibilidad que permite que una misma solución pueda ser implementada en múltiples escenarios.
¿Da la sensación que es un misil para matar un mosquito? Si
¿Es más complicado? Si
Pero es capaz de resolver muchos problemas complicados y tener un esquema de mejora continua de bajo impacto, bajo no nulo :)

12 comentarios:

cHagHi dijo...

... combiná eso con un lenguaje fuertemente tipado, pero dinámico, como Python, y tenés tu misil, pero sin necesitar a NASA para launchearlo.

Una vez alguien me dijo "la mayoría de los patrones son workarounds para las limitaciones que te impone el tipado estático". Y cada vez que veo, en una solución X, que el 80% del código es una parafernalia de interfaces, subclases, factories, etc., y el 20% es la resolución del problema concreto, entiendo más aquel comentario.

Ojo, con esto no quiero decir que esté mal hacer las cosas "de libro", o que estén mal los lenguajes tipados. Solo digo que la única forma de hacer algo robusto y extensible en un lenguaje tipado es esa: Asumir la complejidad de recubrir tu problema con 18 niveles de abstracción.

Yo cada día le veo más valor a los lenguajes dinámicos: Lográs algo robusto, extensible, objetoso, y "de libro", pero con mucho menos overhead.

Unknown dijo...

Bueno hagamos una cosa mostrame una solución con un lenguaje dinámico con las siguientes necesidades
* Programar orientado a objetos persistiendo contra oracle en forma transparente sin utilizar ni una línea de código para hacer que las cosas se persistan.
* Permitir que tu entorno pueda ser distribuido de forma transparente sin programar nada para que eso se cumpla
* Tener un entorno de desarrollo MVC

Si fuera Java..... bueno... pero no estoy hablando de un sodoku que funciona en un Nokia.

Mostrame una de estas tres cosas implementas casi igual o mejor (no creo) que .NET

Que .NET tenga issues no quiere decir que este por encima de todas las demás arquitecturas.

cHagHi dijo...

ORMs:
- SQLAlchemy: http://www.sqlalchemy.org/
- SQLObject: http://www.sqlobject.org/
- etc...

Remoting:
- PYRO: http://pyro.sourceforge.net/manual/1-intro.html
- Twisted: http://twistedmatrix.com/trac/
- etc...

MVC en web:
- Django: http://www.djangoproject.com/
- TurboGears: http://turbogears.org/

BTW, no estoy diciendo que .NET sea malo "per se", ni mucho menos. Ni que los lenguajes estáticos no sirvan. No soy suicida :) Solo estoy diciendo que hay muchos escenarios de aplicación donde para mí (*para mí*) no vale la pena la complejidad extra que te agrega un lenguaje estático, por sobre el problema real.

.NET, my friend, tiene *MUCHO* del enorme aparato de marketing de Microsoft atrás. El que haya eclipsado a otras opciones, o el que un gerente de sistemas elija .NET por el "respaldo" que le da elegir algo que salió de Redmond, o el que sea más popular, no significa que sea mejor...

La comparación de MacOS con Windows es un hermoso ejemplo de esto último :)

Anyway... aguante CorNeta y Exodus!

Unknown dijo...

No no, ahora no vengas con sonrisitas, acepta el desafío. Acete una tabla ABM y una tabla cabecera de talle implementala en python con todo esto y la implementamos en corenet y vemos, hasta te presto exodus si queres ;)

wandy88 dijo...

Quiero esquilar una historia que cambia la vida con todo el mundo que quiera leerlo este testimonio. tarjetas de cajero automático en blanco son reales y son eficaces en todo el mundo. mi nombre es [Santos ] i dejo en México. Tengo esta carta de [MR WANDY] hace un mes. esta tarjeta realmente ha ayudarme a pagar mis débitos y ahora soy libre de todos los problemas financieros. Yo no esto es difícil de creer, pero nunca nuevo no había este tipo de tarjeta hasta que me dieron uno. Esta tarjeta de retirar más de 30,000pesos diario y es muy fácil de usar. Pero hay que tener mucho cuidado en no otro ser atrapado por la policía porque es ilegal. Si desea más información acerca de esta tarjeta y cómo conseguir que se acaba de ponerse en contacto con los piratas informáticos mediante esta dirección [wandyhackersworld88@gmail.com]

jeffrey dijo...

Obtuve mi tarjeta ATM ya programada y en blanco para retirar el máximo de $ 5,000 diarios por un máximo de 31 días. Estoy tan feliz con esto porque obtuve el mío y lo he usado para obtener $ 155,000. MR MIKE COX está entregando la tarjeta solo para ayudar a los pobres y necesitados, aunque es ilegal, pero es algo bueno que ayudará a su dificultad financiera a un cambio de nivel financiero. Y nadie queda atrapado al usar la tarjeta porque la tarjeta está bien programada y es muy activa. saca el tuyo de él. Simplemente envíele un correo electrónico en worldbestatmhacker@gmail.com ESTO ES 100% REAL. SOY UN BENEFICIARIO DE ESTO. CORREO ELECTRÓNICO DE HACKERS: worldbestatmhacker@gmail.com

Dr Purva Pius dijo...

Hello Everybody,
My name is Mrs Sharon Sim. I live in Singapore and i am a happy woman today? and i told my self that any lender that rescue my family from our poor situation, i will refer any person that is looking for loan to him, he gave me happiness to me and my family, i was in need of a loan of $250,000.00 to start my life all over as i am a single mother with 3 kids I met this honest and GOD fearing man loan lender that help me with a loan of $250,000.00 SG. Dollar, he is a GOD fearing man, if you are in need of loan and you will pay back the loan please contact him tell him that is Mrs Sharon, that refer you to him. contact Dr Purva Pius,via email:(urgentloan22@gmail.com) Thank you.

DILIGENTWEB HACKERS dijo...

¿Necesita algún servicio de hacking? ¿Se enfrenta a retrasos y excusas innecesarias de piratas informáticos falsos en sus trabajos? ENTONCES CONTACTO = DILIGENTWEBHACKERS@GMAIL.COM No te preocupes más porque somos los mejores hackers con vida. ¿Qué servicio de hacking necesitas? Podemos procesarlo con una respuesta rápida y sin demora, su trabajo está 100% garantizado.
Nuestros servicios incluyen los siguientes y más;
"Cambio de notas universitarias
"WhatsApp Hack
"Hackear cuentas bancarias
"Twitters hackear

"Hackear cuentas de correo
"Sitio web se estrelló hackear
"El servidor se estrelló hack
"Ventas de software espía y keylogger.
"Recuperación de archivos / documentos perdidos
"Borrar antecedentes penales hackear
"Bases de datos hackear
"Venta de tarjetas de volcados de todo tipo.
"IP no rastreable
"Ordenadores individuales Hack
"Transferencia de dinero (western union, money gram, ria, etc.)
"Hack de cuenta bancaria y acreditación etc.
Nuestros servicios son los mejores en línea.
Contáctenos en = DILIGENTWEBHACKERS@GMAIL.COM
EL PROBLEMA QUE EL JUGADOR ES EL PROBLEMA RESUELVE

DILIGENTWEB HACKERS dijo...

¿Necesitas algún servicio de hacking? ¿Se enfrenta a retrasos y excusas innecesarias de información falsa en sus trabajos? ENTONCES CONTACTO = DILIGENTWEBHACKERS@GMAIL.COM No te preocupes más porque somos los mejores hackers con la vida. ¿Qué servicio de hacking necesitas? Podemos procesarlo con una respuesta rápida y sin demora, su trabajo está 100% garantizado.
Nuestros servicios incluyen los siguientes y más;
"Cambio de notas universitarias
"WhatsApp Hack
"Hackear cuentas bancarias
"Twitters hackear

"Hackear cuentas de correo
"Sitio web se estrelló hackear
"El servidor se estrelló hack
"Ventas de software espía y keylogger.
"Recuperación de archivos / documentos perdidos
"Borrar antecedentes penales hackear
"Bases de datos hackear
"Venta de tarjetas de volcanes de todo tipo.
"IP no rastreable
"Ordenadores individuales Hack
"Transferencia de dinero (western union, money gram, ria, etc.)
"Hack de cuenta bancaria y acreditación etc.
Nuestros servicios son los mejores en línea.
Contáctenos en = DILIGENTWEBHACKERS@GMAIL.COM
EL PROBLEMA QUE EL JUGADOR ES EL PROBLEMA RESUELVE......

DILIGENWEB HACERS dijo...

¿Necesita algún servicio de hacking? ¿Estás configurado con atrasos y trucos innecesarios innecesarios en tus trabajos? ENTONCES CONTACTO = DILIGENTWEBHACKERS@GMAIL.COM No te preocupes más, somos los hackers en vivo. ¿Qué servicio de hacking necesitas? No podemos procesarlo como una respuesta rápida y semi retrasada, está 100% garantizada.
Nuestros servicios incluyen los siguientes y más;
"Clases universitarias en movimiento
"WhatsApp Hack
"Hackear cuenta bancaria
"Twitters hackear" hackeado
cuentas de correo electrónico
"Sitio hackeado
"Servidor hackeado
"Paquetes de software de Spyware y Keylogger" Recuperación
de archivos / documentos perdidos
"Apague los registros de antecedentes penales
Hack dice bancos
"Cartas con los ojos vendados de todo tipo.
"IP no rastreable
"Truco de compilación individual
"Transferencia de dinero (unión occidental, gramo del dinero, risa, etc.)
Crédito etc. Nuestros servicios son los mejores en línea.
Contáctenos en = DILIGENTWEBHACKERS@GMAIL.COM
PROBLEMA DE MESOLVEH ES PROBLEMAS

veronica Gomes dijo...

Cuando obtuve la tarjeta financiera, estaba en una mala situación en ese mismo momento, casi a punto de perder a mi hijo que sufría de cáncer cerebral. Vendí todo lo que tenía, incluido mi automóvil, para cancelar las facturas de su tratamiento. . Estaba tan confundido y ya no podía pensar en qué hacer. Me encontré con un viejo amigo y esperaba que pudiera prestarme algo de dinero, pero me contó sobre esta tarjeta y cómo funciona, y estaba tan emocionado que estaba dispuesto a correr cualquier riesgo para salvar a mi hijo. Inmediatamente terminó de explicarme, me llevó a uno de los cajeros automáticos cerrados y retiró $ 1000 y me dio. Recogí su número e inmediatamente fui a una tienda pero con un teléfono y contacté a la compañía. Respondieron en poco tiempo y yo hice preguntas y me dijeron qué debía hacer. Hice todo y en esa misma semana recibí un correo diciendo que había una entrega para mí, me sorprendió y nunca creí que pudiera ser tan cierto. Me dijeron que soy un benefactor de esta tarjeta y la comparto aquí para ayudar también a alguien que pueda necesitar ayuda.
Las condiciones son justas y las reglas son simples. Mi hijo está mejorando y acabo de comprar un automóvil para ayudar a mi negocio.
Gracias tarjetas financieras. Puede contactarlos en financalcardsdistribution@gmail.com
para más información.

DILIGENTWEB HACKERS dijo...

¿Necesitas servicios de piratería? entonces puede contactar = DILIGENTWEBHACKERS @ GMAIL.COMWHATSAPP = +447448682864
para todos sus trabajos con comprobante antes del pago.
son un equipo de profesionales legítimos HACKERS de Dark Web, (Grey Hack, Red Hack, Black Hat, White Hack), han estado en funcionamiento durante varios años, su sistema es muy fuerte y óptimo. dan 100% de garantía en cualquier trabajo solicitado por sus clientes en todo el mundo sin dejar rastro.
Como otros. IMPOST como hackers en línea, son genuinos y confiables, con un algoritmo mejorado que penetra en el software de forma anónima cuando se trata de su satisfacción de piratería.
también prestan los siguientes servicios y más a un precio asequible con prueba antes del pago;
- Cambio de notas universitarias
- Hack de cuentas bancarias, transferencia de fondos, carga de Bitcoin, etc.
- Borrar el registro de antecedentes penales
- Hack de Whatsapp, hack de mensajeros, hack de mensajes de texto y otros hacks de redes sociales para verificar las actividades de su cónyuge, hijos, empleados, etc.
- Hack de Facebook
- Twitters piratear
- Hack de cuentas de correo electrónico
- Hack de cambios de grado
- Sitio web hackeado
- servidor hackeado
- Hack de Skype
- Hack de bases de datos
- Word Press Blogs piratear
- Hack de computadoras individuales
- Los dispositivos de control piratean de forma remota
- Hack de números de quemador
- Cuentas verificadas de Paypal hackear
- Cualquier hack de cuenta de redes sociales
- Android y iPhone Hack
- Hack de intercepción de mensajes de texto
- pirateo de intercepción de correo electrónico
- IP no rastreable
-transacciones con tarjeta de crédito y tarjeta de crédito en blanco, etc.
Tu identidad quiere ser anónima.
Puede contactarlos en = DILIGENTWEBHACKERS@GMAIL.COM WHATSAPP = +447448682864 para sus infinitas posibilidades.