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...

viernes, septiembre 29, 2006

Historia II, 2ª Generación

El siguiente paso en este tipo de aplicaciones fue pasarme a un entorno gráfico, en este caso, a Windows 95. Para ello realicé un "sencillo" programa para la facturación de una pequeña empresa de ropa.



Lo programé en Delphi 3, al principio para diseñar los formularios (gráficamente) parecía que era fácil. Sin embargo poco a poco me fui dando cuenta que el código se iba complicando cada día más. Sin una arquitectura bien definida el mantenimiento se volvía cada vez mas difícil.

Pero la decisión de abandonar completamente esta manera de hacer las cosas no fue la arquitectura, fue la terrible necesidad de velocidad en el acceso a los datos.



En aquellos tiempos seguía sin conocer ninguna base de datos y los datos se guardaban en ficheros (ni arboles B, ni nada) simple acceso directo. A medida que el usuario del programa lo encontraba más útil e insertaba más y más registros el proceso de acceder a los datos se fue haciendo más y más pesado.

Esta versión fue comercial pero durante un breve periodo de tiempo lógicamente, pero el sustituto ya hacía tiempo que estaba gestándose... ;)

miércoles, junio 21, 2006

Historia I, 1ª Generación

Hace unos años y ayudado por un amigo me embarque en este tipo de aplicaciones. Sería por el año 1999 que hice una aplicación de control de stocks, estaba hecho en Turbo Pascal, la verdad es que ocupaba muy poco espacio y iba relativamente rápido.



Por desgracia y debido a mis escasos conocimientos de programación en aquel entonces, la arquitectura interna resulto desastrosa lo que desembocó a que para cada error que intentara corregir tenía que realizar excesivos cambios en todo el programa.



Además, me empeñe en hacer mi propia gestión de la base de datos (o mejor dicho, no conocía ninguna base de datos) y ocurría que al principio el programa funcionaba muy rápido pero según iba pasando el tiempo todo era más lento cada vez.



Ni que decir tiene que jamás saque el programa con fines comerciales, en principio lo que conseguí fue entender algo de la semántica de este tipo de programas y empezar, que no es poco. :)

martes, mayo 30, 2006

Todo es comenzar

¿Alguien ha tenido el problema de realizar un programa de facturación o un programa en general que utilizara una base de datos?

Si ese es el caso, esta página puede ser realmente interesante.

Mi inquietud desde hace años es de hacer este tipo de aplicaciones de una manera rápida y eficaz. A lo largo de este blog iré avanzando en mi empeño de construir dicha aplicación. Recorreré mi historia buscando este tipo de aplicaciones hasta lo que estoy haciendo actualmente y lo que quisiera hacer en el futuro.

Bueno, la aventura comienza... :)