Características Principales de xpotronix

xpotronix es una herramienta para la generación de aplicaciones web basada en transformaciones XML.

Para ello, se utiliza un controlador basado en PHP que permite serializar los datos y luego una trasformación basada en XSL

Características principales

  • Generador del modelo de datos y espacio de nombres
  • Transformación de las aplicaciones
  • Motor de Templates
  • Sistema de ACL integrado
  • Arquitectura de plugins

Sistema de auditoría integrado a todas las aplicaciones (como plugin)

Diseño

  • Entorno para el desarrollo de aplicaciones integral, basado en XML
  • Fácil desarrollo de nuevas aplicaciones
  • Curva de aprendizaje reducida y menor esfuerzo: los desarrollos actuales son compatibles con xpotronix2
  • Generador de código vía templates (PHP, Javascript, etc): facilita el desarrollo de aplicaciones a través de transformaciones XSL. Miles de líneas de código generadas sin intervención del programador, en forma segura y sin errores
  • Implementación 100% XML, desde la configuración, modelización, generación de templates y serialización
  • Compatible con xpotronix1 (deben realizarse algunos cambios en las funciones de los procesos y del espacio de nombres, sólo a nivel sintáctico)

Proyectos

  • Extensible vía plugins (se pueden hacer merge de proyectos entre sí con <include/>

Relación Objetos / Base de datos

  • ORM: mapeo objeto <-> base de datos full, con sintaxis tipo $objeto->atributo, propio de los ORM más avanzados (doctrine, hibernate) aunque mucho más sencillo
  • Registro modificaciones en los atributos del objeto

MVC

  • Implementación estricta del paradigma MVC (Model/View/Controller)
  • Controlador: único punto de acceso
  • Separa completamente la inteligencia de back-end del front-end (ni un solo tag HTML en el controlador: todo en templates)

Base de datos

  • Integración a todas las bases de datos donde PHP tiene drivers
  • Iterador propio, paginado con funciones random  para sorteos, etc
  • Full serialización XML/JSON (vía templates XSL)

Performance

  • Rápido y eficiente, a pesar de proveer un detallado nivel de log para debugging función por función
  • Reducido uso de memoria: compilado serializar una tabla consultando el ACL no lleva más de 1 MB de RAM por proceso

Procesos

  • Integrado al ACL
  • Definición de procesos anidados tipo SAX, posibilidad de configurar el recorrido en el parseo del XML como “top-down” (de abuelos a nietos) y “bottom-up” (de nietos a abuelos)

Templates

  • Posibilidades ilimitadas de templates vía XSL (ExtJs3, CSS, Android, HTML5, todos subsets XML)
  • Práctico sistema de desarrollo de la UI en XML generando la UI en Javascript

Caching

  • Cacheo de datos, perfiles de usuarios y permisos (ACL) y aplicación

Interoperabilidad

  • Implementación de servicios transversales vía plugins
  • Fácil de implementar procesos de interoperabilidad (es 100% interoperable entre instancias de xpotronix2)

Modelo Relacional

  • Claves primarias tipo HASH automáticas e incrementales
  • Claves foráneas, wired, parent para consistencia de datos, sin necesidad de definirlas en la db
  • Vistas y objetos virtuales (sin representación sobre la base de datos)
  • Paginación full, también para mapeos en XML

Validación

  • Implementada en el back-end, con validaciones, filtros por tipo de dato
  • Registro de modificaciones, a nivel de objeto y a nivel de atributo
  • Mensajes al usuario sobre cada uno de los errores en la validación
  • Sistema de mensaje de logs avanzados, filtrado por nombre de clase o nombre de función y niveles de alertas (debug, info, user, warn, error, fatal)
  • Implementación protocolo de comunicación con UI en JS (vía serialización, serialización de procesos)


Integración Java

  • Integración Java via php-java-bridge
  • Rápido y eficiente en el uso de memoria
  • Escalable (ej. motor de templates compartido sobre máquina virtual)
  • Implementación de un lenguaje declarativo para la definición del modelo y la UI


Tempates

  • Potente motor de templates (XSL), implementa SAXON
  • Default template para Sencha ExtJs 3.4, con lenguaje XML para la definición de formularios y paneles complejos (mas sencillo que escribirlos completamente a mano), definición de eventos para los paneles definidos
  • Extensión del Store para adaptarse al modelo de xpotronix2
  • Protocolo de díalogo con controller para actualizar novedades en el usuario

Auditoría

  • Identificación de cada uno de eventos del usuario (ingresar, guardar, acceder, editar)
  • Posibilidad de volver a ejecutar transacciones del usuario tal como él las hubiera realizado (repost)