lunes, 16 de julio de 2018

Los inicios de ERP Studio


Hola, bienvenidos a este blog... en esta primera publicación les cuento un poco la idea que hay detrás de ERP Studio....Se trata de poder crear aplicaciones web de carácter general orientadas al contexto empresarial de una forma rápida y ágil.

La historia que hay detrás....

En 2014 comenzamos nuestra odisea comercial en Emotionware Software ofreciendo al mercado, por aquel entonces, nuestro primer producto comercial especializado... se trataba de un Business Inteligence creado para Windows y nos dedicamos a ofrecerlo al mercado mexicano... de forma exitosa... Este proyecto nos permitió conocer de primera mano una gran necesidad en multitud de empresas; la demanda de crear nuevas soluciones empresariales en web de forma rápida y eficiente adaptadas y a la medida de los procesos de la empresa.

Nosotros pretendíamos ofrecer un BI pero el mercado nos dijo... sí... pero primero ayúdame a desarrollar mi ERP a la medida. Es decir, el mercado nos dijo que el BI estaba muy bien pero que primero era necesario cubrir la demanda de soluciones tipo ERP... y estas soluciones tenían que ser principalmente web y/o mobile, flexibles, de desarrollo rápido, etc...

Un gran reto que afrontar
Tras una intensa deliberación nos pusimos a pensar y  trazar las líneas de las primera ideas sobre cómo resolver esto.... para poder ofrecer aquello que el mercado solicitaba de forma rápida y  flexibles...

Surgían muchas preguntas, ¿qué herramientas usar?, ¿cómo hacerlo?, ¿qué base de datos?, etc...
Ahí comenzó la abstracción del primer concepto de ERP Studio, un constructor de ERP's genéricos...

El problema que teníamos que resolver.
Como desarrollador tengo la experiencia de que el tiempo necesario para crear portales web tipo empresarial es mucho mayor que desarrollar aplicaciones windows tipo escritorio por multitud de causas. Desarrollar en web es mucho más complejo que hacerlo para escritorio, hay más lenguajes involucrados, la interacción del usuario es con el servidor, etc... más complejo y por tanto costoso.

Las preguntas que nos hicimos en aquel momento fueron, ¿cómo podemos desarrollar un sistema que sea capaz de crear a otros sistemas de forma rápida?, ¿cómo podremos crear un software que cree software?, ¿cómo podemos crear código con código? y así poder automatizar la creación de software... ¿será posible automatizar la creación de software?, ¿cómo ha de ser un sistema que sirva para la mayoría de necesidades?, ¿qué partes ha de tener?, ¿qué módulos, etc...?

El enfoque central del proyecto fue crear código con código, un metasistema que produzca a otros sistemas y esos sistemas sean flexibles y puedan adaptarse a multitud de escenarios.....

El primer conjunto de decisiones sentó las bases del desarrollo;


  • ¿Qué plataforma de desarrollo utilizar?
  • ¿Qué base de datos?
  • ¿Qué tecnología y componentes?


Las decisiones fueron las siguientes;
  1. Utilizar MySQL como base de datos principal por su costo, popularidad y flexibilidad.
  2. Utilizar Visual Studio por su nuevo esquema de licenciamiento Community.
  3. Enfocarse principalmente en web sites empresariales en un primer momento pero manteniendo apertura y compatibilidad con esquemas MOBILE.
  4. Adoptar una familia de componentes para web, modernos, flexibles y con futuro. La decisión fue DevExpress.
  5. Integrar soluciones gratuitas o de open source a nuestra plataforma.

En resumen, la receta fue;

Visual Studio + MySQL + DevExpress

como bases tecnológicas fundamentales.


¿Por qué Visual Studio y no más bien PHP, Java ó Python?
Dos motivos;

  • costo de Visual Studio -> GRATIS
  • velocidad de desarrollo en C#/VB.Net

¿Por qué MySQL y no más bien SQL Server?

Tres motivos;
  • costo -> gratis
  • popularidad y facilidad
  • compatibilidad en integraciones con otros sistemas.

¿Por qué DevExpress y no más bien controles comunes ó SyncFussion?
Tres motivos;

  • No es necesario reinventar la rueda cuando la rueda ya ha sido inventada.
  • La filosofía de desarrollo basada en al integración de componentes acelera mucho cualquier desarrollo
  • Los componentes deben ser potentes, modernos, actualizados y no demasiado costosos.
  • DevExpress tiene futuro y es ampliamente soportado en sus foros.


Fernando Castro
Desarrollo de Software