Ver Mensaje Individual
  #15  
Antiguo 24-04-2020
lbuelvas lbuelvas is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 377
Reputación: 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