martes, octubre 14, 2008

Instalación de Moneiba Framework 1.0

Vamos a configurar paso por paso el Moneiba Framework para que podamos empezar a trabajar con él desde el primer momento.

Para empezar necesitaremos descargarnos las siguientes herramientas gratuitas:
  • TortoiseSVN un cliente (windows) para subversion. Con esta herramienta nos podremos descargar en local todo el código fuente de Moneiba Framework.
  • Turbo Delphi 2006 Explorer, es el entorno de desarrollo. Se puede descargar desde aqui.
  • MySQL, base de datos, en su versión 5 como mínimo. Se puede descargar desde aqui. Por comodidad, cuando configuremos la base de datos, usaremos el usuario "root" sin contraseña.
  • SQLyog Community Edition, un cliente de MySQL. Se puede descargar desde aqui.
Una vez instaladas, empezaremos por descargarnos el repositorio del framework:
  1. Creamos un directorio donde poner el repositorio, por ejemplo: "c:\datos\fuentes\sourceforge\moneiba"
  2. Con el explorador de Windows pulsamos encima del subdirectorio "moneiba" con el botón derecho y seleccionamos la opción "SVN Checkout...".
  3. A continuación aparece un dialogo donde ponemos la URL del repositorio, que es: "https://moneiba.svn.sourceforge.net/svnroot/moneiba", y en la opción revisión seleccionamos "Revision" y en el cuadro correspondiente ponemos el número 468. Pulsamos en el boton "OK", y esperamos a que se descargue todo el repositorio, esta operación puede tardar bastante.


Con esto, ya tendríamos el repositorio en nuestro disco duro. Ahora vamos a compilar el framework.
  1. Abrimos "Turbo Delphi" y a su vez abrimos el proyecto "c:\datos\fuentes\sourceforge\moneiba\framework\source\moneiba.bdsgroup", en el menú seleccionamos "Project->Build moneiba".
  2. Ahora abrimos "SQLyog" y nos conectamos a la base de datos de mysql que hemos instalado. Creamos una base de datos que se llame "dummy_contacts2".
  3. Por último seleccionaramos del menú "Run->Run" se estaría ejecutando un proyecto de ejemplo "contacts2".


Para los proyectos de Moneiba Framework disponemos de 2 directorios principales, para el caso de "contacts2", tenemos:
  • Todos los ficheros que debemos distribuir para que funcione el proyecto en otros ordenadores: "c:\datos\fuentes\sourceforge\moneiba\framework\release\projects\contacts2"
  • El código fuente del proyecto: "c:\datos\fuentes\sourceforge\moneiba\framework\source_projects\contacts2"
Con estos pasos ya tendríamos finalizada la instalación de Moneiba Framework 1.0. En la próxima entrada veremos como crear un proyecto desde cero.

Moneiba Framework

Cuando empecé a diseñar aplicaciones una de las primeras cosas que me di cuenta es que si había desarrollado un codigo para hacer algo después, ese mismo codigo me podía servir para desarrollar otro proyecto.

Esto se hace muy a menudo, siempre se aprovecha código de otros proyectos. El caso es que también se repite la misma historia en las librerias para acceder a la base de datos, interfaz gráfico para configurar la base de datos, pruebas a ver si todo funciona bien, etc. Pero lo que quería era hacerlo una sola vez en la vida y ya no más. Hacer esto además tiene una gran ventaja, puedes hacerlo una sola vez muy bien de tal forma que tienes la completa seguridad de que no vas a tener fallos y en resumen aumentarás la productividad.

Si además de gestionar la base de datos añadimos actualizaciones automáticas, informes, acceso al puerto serie, modbus, gestión de impresoras, etc, pues la cosa promete.

Simplificando bastante la arquitectura de la aplicación podemos decir que un proyecto esta formado por componentes a los que el framework les proporciona (a través de una api) todos los objetos que puedan necesitar (para acceder a la base de datos, por ejemplo).

A su vez los componentes pueden tener módulos (que sería la única parte que hay que programar) y que se apoya en el patrón MVC. También pueden tener búsquedas, por ejemplo, estamos creando un componente "artículos" que será quien gestione los productos de una tienda, en cualquier momento te puede interesar listar artículos que cumplan ciertas condiciones como "listar los artículos más recientes". Con los componentes las búsquedas se pueden definir en un XML sin tener que programar nada, el interfaz gráfico y el acceso a la base de datos ya se encargará el framework.



En resumen esto es lo que hace el proyecto Moneiba Framework, es LGPL, por lo que el código fuente esta disponible para que cualquier desarrollador lo pueda usar y modificar.

La próxima entrada será para enseñar paso por paso como crear un proyecto desde cero.

lunes, octubre 06, 2008

Historia IV, 4ª Generación

Después de la experiencia adquirida a través de los usuarios. Me di cuenta que los programas de facturación actuales no están adaptados a las necesitades concretas de las pymes.

Ya sean aplicaciones privativas como de software libre, hasta ahora, ninguna (incluida SpeedDocs) intentaba solucionar los problemas reales a los que se enfrentas las pequeñas y medianas empresas para ser una competencia ante los grandes empresas y entre ellas mismas.

El primer problema que vi es que un empresario siempre debe tener el control, ya esté en la calle o en la casa o donde sea debería poder acceder a los datos. Hay mecanismos para compartir un ordenador a través de internet y acceder a la información pero esto es muy lento y empeora para un pequeño comercio que no se puede permitir una conexión de ADSL cara.

Existen soluciones para tener toda la aplicación (y los datos) en internet pero la calidad de la aplicación que se tendría no llega (por el momento) con la tecnología actual al nivel de una aplicación de escritorio. También hay otro problema, los datos estan en internet y ¿si te va la red ya no tienes tus datos?, ese es otro gran problema. Finalmente, el gran inconveniente de tener toda la aplicación en internet es que realmente el empresario no tiene el control de los datos, quien tiene ese control es la empresa que gestiona los datos en internet.

Otro problema que hay es que normalmente las empresas no quieren ni necesitan miles de opciones en un programa de facturación, hay otras que sí. Pero el caso es que las soluciones actuales no se adaptan totalmente a las empresas para las que son diseñadas. Esto es más bien una incomodidad a la hora de trabajar y enfrentarse con una aplicación.

Ahora imagine, que se solucionan los problemas anteriores, es decir, el empresario puede acceder (de forma segura) a todos los datos a la máxima velocidad desde donde quiera que esté. Además la aplicación se adapta competamente a las necesidades de la empresa. Entonces ya tendríamos una aplicación que no esta limitando el trabajo de las pequeñas y medianas empresas y podrán competir mejor en el mercado.

Para eso cree Moneiba Commerce, que a su vez se basa en un framework (Moneiba Framework) con licencia libre LGPL. Moneiba Commerce en su versión Enterprise está preparada para resolver los nuevos problemas a los que se ven sometidas las pequeñas y medianas empresas. Es capaz de resolver los inconvenientes de las aplicaciones de facturación actuales y muchos más.



Puede descargarse una versión de pruebas desde http://www.moneiba.com, tenga en cuenta que para poder estar conectado al programa desde cualquier parte debe adquirir la versión Enterprise.

Historia III, 3ª Generación

Una vez que ya tenía la experiencia previa en este tipo de aplicaciones de facturación por fin vi que era lo que quería desarrollar: yo lo que necesitaba era una aplicación que se encargara de las cosas engorrosas, por ejemplo, trabajar con la base de datos (capa de persistencia), actualizaciones automáticas, búsquedas, interfaz gráfica. Y más adelante ya me encargaría de desarrollar módulos que aumentaran la funcionalidad de la aplicación.



Esto lo conseguí con Speed Docs (http://www.speeddocs.com), fue el primer programa para entornos de producción capaz de aislarme de trabajar con la base de datos, el interfaz gráfico, las actualizaciones automáticas, etc.

Por fín pude crear una aplicación de facturación para gente que no fuera contable, algo sencillo, rápido y estable. Usaba una base de datos Paradox y estaba programado en Delphi.

Sin embargo, para ser la primera aplicación que hacía todas estas operaciones no me satisfacía la arquitectura que tenía internamente y al final hacía que fuera tremendamente engorroso desarrollar los módulos. Pero estas dificultades ya estaban sentando las bases de lo que sería la siguiente generación...