Consulta sobre CN

Sres. voy a abusar de vuestra paciencia.
Lamentablemente, por cuestiones de tiempo y alcances del curso que realicé, no vimos ningún ejemplo ni se nos pudo explicar en detalle el uso de los cn(s).

Dado que he oido que son sumamente útiles, le agradecería a quien tenga tiempo y paciencia que me de una somera explicación para principiante sobre como y cuando se usan.

He leido la Wiki pero, para mi capacidad, no alcanza.

Desde ya muchas gracias.

Te cuento como lo veo yo, puede ser que haya sido utilizado en algún proyecto con otra filosofía. Toba requiere una división mínima de capas:

  • Elementos de interface (cuadros, formularios, etc.), son widgets parametrizables que por lo general no tienen codigo del proyecto, sólo definiciones
  • Controladores de interface (ci): dan y reciben datos a los cuadros/formularios, y reaccionan a los botones (eventos)

La lógica de cómo surgen los datos y que hacer con los mismos la podés resolver directamente en los CIs. Por ejemplo al evento ‘inscribir’, podes hacer las validaciones, armar el comando SQL mandar un mail todo dentro del ‘evt__inscribir’ del CI. Esto sería la arquitectura más basica de una aplicación Toba.

A medida que el proyecto crece, las necesidades de reuso y división de responsabilidades se van notando, y probablemente procesar las cosas dentro de los eventos y traer los datos dentro del conf__ ya empieze a generar ruido. Es allí donde suje la necesidad de armar una capa de negocio propia del proyecto, que puede ir desde un conjunto de funciones sueltas (ej. inscribir() enviar_mail() get_inscripciones()) a un modelo de objetos mas complejo donde por ejemplo existan clases como alumno, inscripcion, mail, etc. En los CIs harias llamadas directas a estas clases. Este sería el siguiente grado de arquitectura

Los CN’s son una ayuda a esta última arquitectura. Es practicamente un componente vacío (no tiene lógica) que podes acoplar al arbol de componentes de una operación. Es una forma de decir “esta clase que es 100% mía la quiero ver en el arbol de la operación”, la misma es accesible por todo el arbol de la operación. Entonces en los distintos CI’s de una operación podes hacer llamadas a este CN y dentro del mismo hacer las llamadas al negocio puro de tu proyecto. Desde ese punto de vista funciona como un hub de las clases de negocios. Desde ya esto podrías hacerlo con una clase totalmente propia, pero la idea que seduce es tenerlo catalogado dentro del editor Toba y algunas utilidades como almacenar variables en sesión automáticamente (siguiendo la convención ‘s__variable’)

En el SIU se han utilizado al menos en los proyectos Pilagá y Guaraní, mientras que proyectos como mapuche hacen llamadas directas a clases de negocio.

Marconi: Muchísimas gracias.

Con estos conceptos voy a tener un cristal a través del cual observar el uso de los CNs.
Voy a chismosear como los usa el Pilagá.

Un cordial saludo.