Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > La Taberna
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-04-2020
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 377
Poder: 22
lbuelvas Va por buen camino
Cordal saludo. Llevo con uniGui desde mayo de 2018 (2 años), quiero contarles mi experiencia, es un Framework basado en ExtJs, es decir, cuenta con cerca de 140 componentes / widgets, se programa similar a la VCL con componentes que tiene propiedades, métodos y eventos similares a la VCL, a su vez, hemos migrado un mini Framework propio para el manejo de Formularios Maestro, Formularios Maestro-Detalle, Búsquedas, Exportar Información, etc.; nuestro código se ha mantenido con pocas modificaciones, hemos aprovechado la migración para cambiar los componentes de bases de Datos de IBX a uniDac para solventar incompatibilidades con Firebird 3.0.

Lógicamente hay cambios y si no se conoce la arquitectura se pierde mucho tiempo:

1. El modelo cambia de tener un programa en cada estación de trabajo del cliente a tener un programa en el servidor y los usuarios trabajando en un navegador web, si tienes muchos usuarios es una gran ventaja de tener que estar instalando y configurando cosas a cada usuario.
2. Los archivos de configuración de cada usuario se movieron a la base de datos, hicimos un esfuerzo para tenerlos en una base de datos SQLite pero la verdad le gastamos muchas horas y nos molestó bastante (de pronto porque las pruebas eran con los componentes Zeos) y se dejó en Firebird.
3. Aparecen nuevos elementos como la parte de configurar el servidor web (ServerModule), la conexión a las bases de datos (debe ir MainModule) y un menú principal (Main)
4. Los formularios deben registrarse "initialization RegisterClasses([..."
5. El manejo de mensajes debe hacerse con las clases propias de uniGui y evitar mezclarlas con las de la VCL
6. La configuración de los path, porque se habla de path del sistema operativo y path para enlaces web.
7. Toca configurar el servidor con IIS e instalar los temas.

y muchas cosas más.

Adquirimos uniGui para no perder el esfuerzo en el framework propio y nuestras bibliotecas, nos ha ido muy bien, ha habido dificultades que gracias a los foros y paciencia se han ido resolviendo, también hemos luchado con defectos propios de uniGui que el fabricante ha resuelto.

Una de las grandes ventajas es que con la adquisición de licencia de uniGui se tiene una licencia OEM de ExtJS que permite redistribuir la biblioteca cuando se hace las instalación a los clientes, lógicamente se puede usar extJS dentro de proyectos hechos exclusivamente con uniGui.

Estamos moviendo nuestros productos a la web con uniGui, nuestros clientes realmente no necesitan productos web pero es una tendencia del mercado y muchos potenciales clientes preguntan que si lo que vendemos funciona en web, entonces nos estamos moviendo.

Yo recomiendo uniGui y eso que estamos trabajando todavía con Delphi XE2 que por el momento es suficiente, si quieren moverse a la web y no perder el esfuerzo hecho en Delphi y tener resultados muy rápidos uniGui es una buena alternativa como lo puede ser Intraweb, TMS Webcore, etc, pero toca movernos.

Otro tema, que no se consigue gente para trabajar en Delphi ? Puede ser pero se pueden entrenar, por ejemplo, yo entrené a mi hijo en lo básico, un poco de Object Pascal, le expliqué uniGui y nuestro mini Framework, en este momento el hizo un modulo web con pasarela de pagos, está migrando uno de los productos, ha mejorado elementos del mini Framework, mejorado las bibliotecas, además tiene habilidades en JavaScript / Python / Haskel. Como se consigue eso ? Estudiando, estudiando, estudiando y dejándose ayudar. En cuanto tiempo ? Menos de un año. Requisitos previos ? Tener muchas ganas, la profesión del muchacho es Psicólogo.

Inquietudes sobre uniGui en lo que pueda con mucho gusto.
__________________
Luis Fernando Buelvas T.
Responder Con Cita
  #2  
Antiguo 24-04-2020
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 377
Poder: 22
lbuelvas Va por buen camino
Se me olvidaba !

No hemos modificado nada de HTML, hemos escrito menos de 100 líneas de código JavaScript, solo modificamos un poco el CSS y eso por modificar un par de cosas que no se necesitaban realmente, eso es increíble !, La gente no me cree que yo no sé nada de JavaScript ni HTML, lógicamente le estoy sacando un tiempo a aprender para tener mejor comprensión de las cosas.

Si se tiene urgencia de entregar un producto tengan presente lo que implica: aprender un nuevo lenguaje porque se necesita JavaScript, HTML, CSS, aprender un Framework Frontend Reat / Angular / Vue aprender Backend con Nodejs, etc.

Hagan el proyecto en uniGui y con tiempo luego a moverse al Stack que se desee.
__________________
Luis Fernando Buelvas T.
Responder Con Cita
  #3  
Antiguo 24-04-2020
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.471
Poder: 21
newtron Va camino a la fama
Gracias gatosoft por tus impresiones.


Ibuelvas, entonces me queda claro que tu experiencia con Unigui es buena y que lo recomiendas. Tengo algunas dudas que te agradecería que me aclararas:



- Según creo unicamente se puede instalar con un servicio IIS, imagino que eso te obliga a contratar un servidor windows en la nube e impidiendo usar cualquier otro servidor web. ¿Es así?
- También he leido que hay que tener mucho cuidado con la memoria porque, al no cerrar nunca el programa, se puede ir saturando hasta "petar". ¿En tu caso has migrado código ya existente o has escrito código nuevo para Unigui?
- ¿Qué tal el servicio que dan? porque, como ya he comentado antes, me da la impresión de que es "regulero" el acabado del producto.



Gracias y un saludo.
__________________
Be water my friend.
Responder Con Cita
  #4  
Antiguo 24-04-2020
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 377
Poder: 22
lbuelvas Va por buen camino
Saludos newtron y a todos.

Por el momento uniGui compila para Windows en modo x32 /x64, por tal motivo debe instalarse en un Servidor Windows Server que no tiene limitaciones en el numero de conexiones concurrentes TCP, aunque lo hemos instalado en un Windows 10 sin problema. Para usar con pocos usuarios se puede utilizar el .exe sin necesidad de usar IIS o Apache, aunque con Apache no hemos probado usarlo, la verdad nuestro segmento de mercado son entidades con a lo sumo 20 usuarios conectados.

Para pasar de .exe a .dll que es lo que maneja IIS es solamente comentar la siguiente línea

{$define UNIGUI_VCL}

Un VPS con Window Server vale el doble que uno en Linux, pero puedes comprar una Licencia de Windows Server e instalarla en un VPS de una empresa de hosting que permita instalación manual del sistema operativo, en nuestro caso, para nuestro sistema interno que es un mini CRM que hicimos en uniGui como ejercicio y un servicio de recibos para varios clientes lo tenemos en un servidor de USD $20 al mes con 2 núcles, 4 Gigas de RAM, disco SSD de 80 Gigas, la empresa es Vultr. Para instalarlo debimos modificar el ISO de Windows Server y adicionarle unas librerías que se llaman Virtio, ellas permiten el manejo de puerto Ethernet y no se que más cosa para que el servidor sea visible para uno.

Algunas personas han instalado la pasarela Wine sobre un servidor Linux para correr programas en uniGui pero yo no he hecho ese tipo de pruebas.

Resumiendo, por el momento Windows, aunque el fabricante dice que va a mover a Linux inicialmente con el compilador de Delphi para Linux pero eso es con la versión Enterprise que es más cara que la versión Professional, esa característica esta posiblemente para este año pero imagino que es un trabajo abismal el que se debe hacer.

Sobre la memoria, uniGui tiene una característica que se puede habilitar y es que cuando se detiene el programa el saca una lista de problemas de memoria, precisamente ayer corregí el manejo de un TList que no liberara la memoria (TList.free) , detecte el problema por el aviso que me dio uniGui. También he tenido la duda debido a que no conozco esa parte de la arquitectura sobre como es el manejo de sesiones mal cerradas o que hace uniGui cuando cierra la sesión al cliente después de n segundos (es configurable), será asunto de estudio más adelante.

Sobre el servicio del fabricante que es FMSoft es bueno aunque una vez tuvimos un problema manejando un DBNavigator que queríamos que solo se vieran los botones activos en un momento dado y se cambiaba el orden de los botones, como era problema de uniGui decidimos usar dos DBNavigator, uno encima del otro y se intercambiaban dependiendo del estado del Dataset, meses después llego el ticket de que el problema estaba resuelto, pero no nos vamos a poner a modificar la solución nuestra.

Otra cosa que es bueno considerar, si tu compras la Licencia y estaba dentro del Roadmap del producto una característica dentro del tiempo de tu licencia, ellos amplían tantos meses tu licencia, entonces tu soporte que es de un año inicialmente se puede extender 6 meses tal vez más.

El producto a mi parecer es complejo utiliza internamente Indi, JQuery, ExtJS, SynEdit, sus propias bibliotecas JavaScript, HyperServer, temas, etc., solo con el propósito de llevar al mínimo el uso de directo de HTML, CSS y JavaScript.

Pero que dicen los puristas ? Tengo un amigo experto en elaborar sistemas bajo PHP y me dice que eso no es desarrollo web. Le hice una demostración de cómo se hace un formulario Maestro en 5 minutos y no le gustó para nada, me imagino que es por la diferencia de esfuerzo en la que tal vez a él le cueste mucho tiempo hacer lo mismo.

Ayer empece a hacer un formulario Maestro Detalle, gasté unas dos horas para la parte básica (sin incluir la parte de crear tablas, llaves, indice, triggers, etc), en uniDac hice la parte de datos del maestro y el detalle, que eso hay que hacerlo de todas formas en cualquier herramienta, conectar los objetos visuales a los de uniDac y luego describir como se va a comportar el formulario

Código Delphi [-]
procedure TFrmGNRDocumentosIndices.UniFormCreate(Sender: TObject);
begin
  _LimpiarDatasets(Datasets);
  Datasets[1].Titulo := 'Indices Documentales';
  Datasets[1].Dataset := DMGeneral.IndicesDocumentales;
  Datasets[2].Titulo := 'Columnas del Indice Documental';
  Datasets[2].Dataset := DMGeneral.IndiceDocumentalCampos;
  inherited;
end;

Acá unas imágenes de como queda:

https://drive.google.com/file/d/11LC...ew?usp=sharing

https://drive.google.com/file/d/1mYw...ew?usp=sharing

No necesitamos más código para que funcionen las operaciones CRUD, búsquedas y exportar información; pues esa parte la hace nuestro mini Framework gracias a la herencia visual.

Los unidbEdit, uniLabel, uniDBCombobox, etc, los creamos con un pequeño generador (a mano se gasta mucho tiempo en VLC / uniGui) copiamos la cláusula select, seleccionamos el tipo de objeto y nos genera los objetos que pegamos al formulario.

Entonces donde se debe hacer el esfuerzo es en usar herramientas para facilitar el trabajo y elaborar las que sean necesarias para ampliar la capacidad de producción, es lo que hacemos.
__________________
Luis Fernando Buelvas T.
Responder Con Cita
  #5  
Antiguo 24-04-2020
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por lbuelvas Ver Mensaje
... quiero contarles mi experiencia,

No lo había comentado antes, pero gracias por expresar tu opinión de forma tan detallada.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 24-04-2020
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 377
Poder: 22
lbuelvas Va por buen camino
Con el mayor de los gustos, aprovecho para preguntar si este hilo debería ir en otra sección.

Otra cosa, Delphi + uniGui + Database = Full Stack Developer
__________________
Luis Fernando Buelvas T.
Responder Con Cita
  #7  
Antiguo 24-04-2020
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.471
Poder: 21
newtron Va camino a la fama
Gracias lbuelvas, efectivamente una explicación completa y detallada.


Germán, igualmente coincido contigo y no lo has podido resumir mejor con eso de "una cosa que empiece en Delphi y acabe en web es un parche" así que me tocará evaluar para donde tirar.


Gracias a todos por vuestros comentarios y si alguien puede aportar algo más sobre el tema le estaré agradecido.


Saludos
__________________
Be water my friend.
Responder Con Cita
  #8  
Antiguo 24-04-2020
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 377
Poder: 22
lbuelvas Va por buen camino
Bueno, el universo de conocimiento de esta área que es la informática es gigantesco, existen miles formas y de combinaciones para resolver nuestro trabajo.

Tal vez el único lenguaje que se originó por las necesidades web fue JavaScript, porque Python se diseñó inicialmente como sucesor del lenguaje de programación ABC, capaz de manejar excepciones e interactuar con el sistema operativo Amoeba.5​​ (sergún Wikipedia), los lenguajes C/C++ que se usan en web aparecieron mucho antes de que apareciera la web, son lenguajes que a través de bibliotecas y de revisiones a los lenguajes propiamente (versiones en el lenguaje de programación, no compiladores) han ampliado su funcionalidad; con el tiempo van apareciendo nuevos lenguajes para atender estas nuevas necesidades pero no por ello estar obligados a abandonar los lenguajes que llevan con nosotros mucho tiempo.

Pascal / Object Pascal son válidos hoy día y espero que las especificaciones de estos lenguajes reciban los cambios que se necesitan para este nuevo mundo.

Otra alternativa para empezar el desarrollo de aplicaciones web es Django, esta alternativa la estuve revisando y en algún momento haré algún proyecto pequeño para ver realmente como va para mis necesidades, pero el problema es que no puedo ponerme a experimentar con mi negocio. Lo de uniGui como les comentaba es de dos años de trabajo y mejorar las cosas, no puedo darme el lujo ahora de moverme a React / Angulas / Vue / JavaScript, etc que son muy buenos pero que cada uno tiene su curva de aprendizaje y el tiempo es limitado si estamos manejando nuestros propios negocios.
__________________
Luis Fernando Buelvas T.
Responder Con Cita
  #9  
Antiguo 24-04-2020
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 377
Poder: 22
lbuelvas Va por buen camino
Un artículo interesante sobre el camino para desarrollo web separando el Front-end del Back-end y mostrando las principales (más populares) tecnologías para cada rama de lo que se necesita conocer.

https://codearmy.co/el-camino-del-de...8-64efc5b68853

La guía actualizada

https://github.com/kamranahmedse/developer-roadmap
__________________
Luis Fernando Buelvas T.
Responder Con Cita
  #10  
Antiguo 25-04-2020
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.471
Poder: 21
newtron Va camino a la fama
maemía.... creo que ya estoy mayor para todo esto.
__________________
Be water my friend.
Responder Con Cita
  #11  
Antiguo 25-04-2020
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 377
Poder: 22
lbuelvas Va por buen camino
No hay que aprender todo lo que muestran esas ramas, son opciones dependiendo de las tecnologías que se seleccionen. Inevitablemente hay que comprender a un nivel básico - intermedio HTML5 y CSS y a un nivel básico - avanzado JavaScript, me imagino que siendo programadores en Delphi la curva de aprendizaje se puede hacer más rápidamente, el asunto son los cambios porque es un paradigma nuevo.

Luego seguiría el manejo de control de versiones si se trabaja en equipos, si se es freelance con copias de seguridad sería suficiente pero el control de versiones es bueno si se comete un error poder ubicar una versión previa del proyecto, en mi empresa somos dos personas en la parte de programación y usamos TortoiseSVN.

Sobre bases de datos me iría por Postgre SQL / Firebird, Postgre se integra muy bien con Django que sería mi opción para hacer un aplicativo pero acá entra a participar otro lenguaje de programación que es Python.

Y para el Front-end React / Vue pero no tengo ni idea de eso como va con Django y tampoco sé como se hace el despliegue de la aplicación.

La parte de Generadores de Sitios Estáticos es importante para documentar, estamos usando Hugo y unos temas para llevar un blog interno técnico y un sitio para la documentación / manuales de los productos, llevamos unos 15 días con esto y es genial porque meter entradas a un blog es muy fácil porque se escribe en MarkDown y el compila a HTML, se puede estar modificando una entrada y gracias aun servidor interno que trae se puede ver como va quedando la página, se genera el sitio estático con una sola instrucción "hugo" y se sube por ftp al servidor; para disponer el sitio web usamos nginx que es relativamente fácil de usar.

La parte de aprender Cloud Servers también es muy importante porque toca poner los productos en la web, nosotros tenemos un VPS en Vultr bajo Windows 2016 Server, personalmente la recomiendo, sus servidores son muy estables y rápidos.

Hay muchas tela para cortar, muchas tecnologías, muchas discusiones sobre que esto es mejor que lo otro, que esto es más rápido, en fin y uno de novato en el tema queda como Will Robinson en "Perdidos en el Espacio".

Y todas estas tecnologías son de código abierto y nos han metido en la cabeza que gratis es mejor pero eso no es necesariamente cierto, en lo personal me ha pasado que lo barato me ha salido caro. Nada mejor que pagar por soporte, no vivimos pues de eso ? de que nos paguen soporte. Cuando digo pagar es aportar en dinero a los proyectos que usamos, entonces algo puede ser código abierto pero la gente detrás no vive del aire. Delphi es costoso, uno tiene que hacer un esfuerzo porque el ecosistema no es barato, los componentes muchas veces son caros, pero pónganse a hacer un reporte sin Fastreport y solo con herramientas web y me cuentan como les va, pónganse a hacer una pantalla de captura sin un IDE a ver como les va, manejen una base de datos sin componentes como lo hace Delphi con IXB / UniDac / Fierdac / Zeos, etc.

Lo que veo en la parte web en mi corta visión es que es una cantidad de elementos que uno debe acoplar a mano, no he visto y espero equivocarme un framework / herramienta que me haga todo bajo un mismo entorno con un único lenguaje, es mi sincera opinión.

Yo creo que en los que participamos en este foro tenemos las habilidades para hacer este tipo de saltos, la experiencia previa es un facilitador para ello pero toca ponerse las botas y trabajar diligentemente.
__________________
Luis Fernando Buelvas T.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
No habrá Windows 10 gratis para usuarios No Genuinos nlsgarcia La Taberna 0 17-05-2015 05:22:14
¿Habrá paz en Colombia? Robert01 La Taberna 30 10-03-2008 17:38:02
No habrá monarca en Venezuela Robert01 La Taberna 17 11-12-2007 19:34:05
Consejos para última compilación Pedro-Juan OOP 2 14-03-2007 20:44:11
DVD, Habrá guerra de formatos Sasuke_Cub Noticias 0 24-08-2005 21:52:44


La franja horaria es GMT +2. Ahora son las 22:36:08.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi