[Python-es] Desarrollo web o no

Jesús Quintero Suárez jesusquin en msn.com
Mie Ene 13 11:01:52 EST 2016


Cordial saludo para todos, en un post anterior estaba decidido a crear
aplicaciones de escritorio y solicitaba la mejor combinación utilidades para
lograrlo, las respuestas generaron controversia en el sentido que si era
mejor hacerlas web o no, eso me agrada pues la idea principal es la de
mejorar el producto existente, desarrollado 100% en Visual FoxPro,
multiusuario, con la base de datos nativa y siempre conectado.

Ahora lo que quiero es migrar a python y de paso mejorarlas en tos sus
aspectos, pero se presenta tres alternativas, web, escritorio o hibrido,
entiendo perfectamente las ventajas del desarrollo web, pero, hay
requerimientos que cumplir y algunas limitaciones:

Requerimientos:

*         Son varias aplicaciones que comparten la base de datos, en cuanto
a su mantenimiento o administración.

*         Cada aplicación debe funcionar independiente de las otras, excepto
por la base de datos.

*         Un cliente puede poseer una o varias de ellas, pero nunca todas.

*         Cada cliente debe tener su propia base de datos, es información
muy sensible.

*         Las aplicaciones básicas responden a los requerimientos del estado
colombiano y no a los del cliente, a solicitud se desarrollan aplicaciones
especiales para el diligenciamiento automático de las básicas, con la
garantía de ninguno de mis otros clientes podrán acceder a ellas.

*         La función principal de las aplicaciones básicas es la de generar
archivos que representan un único documento, pero una sola operación puede
generar más de 1000 documentos, tamaño máximo por archivo 100KB codificado
en ASCII extendido hasta 256 caracteres.

*         Como lo mencioné antes, estas aplicaciones desarrolladas en VFP se
encuentran en producción, y no creo que mis clientes acepten ni sería justo
entregarles menos de lo que ya poseen, quiero decir:

o   Validación campo a campo teniendo en cuenta todos los datos hasta el
momento incorporados.

o   Para campos relacionados el usuario digita dato requerido por que en la
mayoría de los casos lo tiene a la mano o se lo sabe, esto les brinda más
agilidad que ponerse a seleccionar de una lista de probablemente miles de
opciones, sin embargo, si lo desconoce al oprimir una tecla especial se le
brindara una lista filtrada de acuerdo con datos conocidos y con opción de
búsqueda por los campos de la tabla padre.

o   Prevención de diligenciamiento, activación o desactivación de casillas
de acuerdo con datos incorporados en el formulario actual o anteriores.

*         Por último y la más importante, mis clientes están sometidos a un
régimen sancionatorio por errores, omisión de información o no entrega
oportuna de la documentación, y pueden ser económicas (cuantiosas),
suspensión o cierre de la entidad, esto está amparado por pólizas que el
estado hace efectivas tan pronto como lo crea conveniente, normalmente
siempre y después pregunta que paso mediante un requerimiento. Esto
realmente es preocupante y solo pensar en ofrecer los servicios de servidor
ya sea web o de ejecución de aplicaciones remotas me da miedo, en caso de
fallo y no poder restaurarlo rápidamente me metería en serios problemas, y
no con uno sino con todos.

*         En la actualidad mi segundo mejor cliente tiene mi aplicación en
servidor de aplicaciones y la acceden a través de internet desde diferentes
sucursales en el país, como lo hicieron, no tengo ni idea, pero lo
importante es que cuando lo deseen pueden trastear con la base de datos e
instalar el software en cada una de las sucursales y hacerlas independientes
y en cuestión de minutos están en producción nuevamente.

Las limitaciones no son infranqueables, se deben a mi falta de conocimientos
sobre web, pero si van influir significativamente en el tiempo de
desarrollo, he estudiado python, django, html5 y css, pero creo que aún me
falta mucho más, por ejemplo:

*         Como ponerlas en producción local y/o hosting sin ningún
conocimiento en servidores y que además con lo que estudiado sigo sin
entender.

*         Como por lo menos replicar las características del software
anterior en VFP.

Mi opinión, que igual puede estar lejos de la realidad, es que Django está
muy estructurado y revertir todo eso podría ser más complejo por ir en
contra de su filosofía y su forma de actuar, quizá con Flask tenga que
codear más pero a lo mejor aprenderé a recorrer el camino, creo que con
cualquiera de estos framework se puede resolver el segundo punto de mis
limitaciones, es cuestión aprender, claro con un poco de orientación como
sobre que debo estudiar. El que me preocupa realmente es el primer punto, si
no puedo poner en producción la aplicación de forma local en el sistema
operativo Windows de una manera sencilla, que corra bien y sin mayores
inconvenientes a futuro, que no interfiera con los procesos y actividades
actualmente corriendo en el equipo que fungirá de servidor y que no genere
costos adicionales a mi cliente, debo descartarlo y tomar el camino de
aplicaciones de escritorio, que en realidad es mucho más dispendioso pero
tránsito por caminos conocidos, programación controlada por eventos, solo
requiero que me orienten en la selección de las herramientas para el
desarrollo de GUIs, he leído algo sobre las que están relativamente
actualizadas con las últimas versiones de Python, me gustan Kivy, pyGObject,
pyQt, Qt5, como herramientas de diseño gráfico no me gusta ninguna, creo
poder utilizar las de VFP y generar los archivos para utilizarlos con python
y la utilería que me aconsejen, ah, y en cualquiera de los casos debo
conocer muy bien las características de PostgreSql.

Disculpen lo extenso y quedo a la espera de su colaboración, gracias de
antemano, Jesús

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20160113/991376fd/attachment.html>


Más información sobre la lista de distribución Python-es