Para desarrollar una aplicación web ERP desde cero. ¿Qué tecnologías me recomendaría utilizar?

Publicado en: Jul 20, 2020, por Young-Suk Ahn Park

Más detalle de la pregunta

Estoy migrando mi aplicación desarrollado en VisualBasic para Windows a aplicación web más moderno. ¿Qué tecnologías me recomienda?

He visto que hay varias alternativas:

  1. Django Rest framework. Con frontend en VueJS.
  2. Django con su sistema de plantillas. (Yo empecé utilizando jQuery, pero luego de avanzar un poco veo que no es la mejor decisión.)
  3. Django plantillas con VueJS. He visto alguna documentación sobre esto. No lo he intentado aún.

Y por último, ¿si desarrollo un frontend debería optar por SPA, PWA o SSR?

- Desarrollador de ERP en plataforma de Windows en Panamá.

Respuesta:

La pregunta es bastante abarcadora. Si la respuesta no le es suficiente o tiene preguntas adicionales, puede dejar comentarios y les daremos seguimiento.

Desarrollo de aplicaciones web

Empecemos con la primera pregunta. Existen muchas otras alternativas de combinacion de lenguaje y framework: Python+Flask, Ruby on Rails, JS+express, JS+Koa, Java/Kotlin+Spring, Scala+Play, y la lista sigue.

Los factores que hay que tomar en cuenta para la decisión incluye desde conocimiento previo del lenguaje/framework, el ecosistema de las librerías, el soporte de la plataforma donde se instalará entre otros.

Pero entiendo que Python y Django son decisiones ya tomadas, que por cierto son buenas decisiones. Así que basaremos en esa decision.

Para una aplicación ERP Web, Python+Django es una buena opción. Python tiene una comunidad activa con muchas librerias.

¿SPA, PWA o SSR?

Existen varios modelos de desarrollo para la parte de client (front-end):

Tambien existe el WebAssembly que permite cargar archivos binarios ejecutables in el navegador. Es una tecnología reciente.

Para hacer más interesante, otro plano es el desarrollo de la aplicación móvil:

La recommendación

En fin, si su plan es seguir creciendo su aplicación ERP para que en un futuro sea provisto como servicio (Software as a Service) y con múltiples aplicaciones clientes, e.j. Web y móvil, le recomiendo que desarrolle de manera desacoplada:

Si necesita desarrollo rápido, el modelo tradicional utilizacion de la plantilla - e.j. Django template, pues no necesita implementar API, y la implementación de seguridad es más sencilla.

La otra posibilidad es empezar con una fase intermedio, utilizando framework IU como Vuejs con la plantilla Django. Los datos, en vez de traer por API del servidor, simplemente puede generar con la plantilla en formato JSON utilizando el filtro json_script de Django. Lo que también tendrá que hacer es evitar el conflicto del sintaxis `` que es igual en las dos plantillas - Django y Vuejs. No he averiguado, pero dbe haber configución para cambiar los caracteres.

Es mejor empezar con algo sencillo que provee funcionalidad al usuario en corto plazo y poder validar dicha funcionalidad, en vez de tratar de implementar algo con las últimas tecnologías y técnicas que toma demasiado tiempo cual podria perder oportunidades en el mercado.

Uso de herramientas como git y aplicación de prácticas de CI-CD son d mucha ayuda en la evolución del diseño de su sistema.

Espero que le haya servido la respuesta.


Publicado en: Jul 20, 2020, por Young-Suk Ahn Park

Editar en Git