UT - Objetivo 2025

Primero de todo, feliz año nuevo a todos, feliz 2025. Hoy es dia 01.01.2025 y es tarde de relax, pero después de una película he tenido un poco la inquietud de poder plasmar en unas pocas lineas quizás mi objetivo para este año y para UT. Creo que el primer objetivo, es poner orden a todo lo realizado  hasta ahora y ponerlo todo en un repositorio con todo a disposición, absolutamente todo el código.

El proyecto UT no es la creación de una clase en Harbour, funciones, ... sino todo un ecosistema y una manera de poder trabajar con Harbour en la web, de una manera muy sencilla para la mayoria de todos los programadores Harbour que quieran dar el salto. Para llegar hasta aqui empezamls con el mod hasta poder llegar a la conclusión de que esta es la mejor manera de poder dar el salto a la web por cualquier programador Harbour sin conocimiento Web

Durante este tiempo de vida de UT, cerca de 2 años desde que empezó, quise ocultar la parte del core de todo el sistema, no por que copiasen el tema (quizas un poco en parte si) sinò porque no queria estar pendiente de mensajes de como funcionaba, para que servia alguna función, el porque a muchas cosas, ...., yo no vivo de esto y lo hago de manera altruista para la comunidad. He intentado crear este proyecto para todos de una manera libre y con mi tempo necesario para poderlo llevar a cabo.

Ahora que ya esta funcionando y prácticamente he visto donde hemos ido a parar es hora de poner todo en orden, dejarlo bien, documentarlo finalmente de la manera que ha  quedado y dejar todo el code para quien quiera tocar algo y/o ampliar funcionalidades. 

Sinceramente no creo que nadie, absolutamente nadie lo vaya a tocar, porque el perfil de programador para este proyecto és un poco complicado. Se necesita alguien que entienda de web, su arquietectura, de harbour a un nivel bastante alto y sobre todo que entienda como esta diseñado UT. 

Independientemente de todo eso, siempre dije al principio del proyecto que cuando considerara que el proyecto estaba madurado y funcionado, liberaría con calma todo, asi que ha llegado el momento.

El proyecto lo unificaré, limpiaré y estará dispobible para MSVC64 y MinGW64 para la parte de Harbour, evidentemente para 64 bits. Quien se quiera entretener para otros compiladores pues que lo pruebe y lo adapte, y sobretodo que sea 64bit y no 32bits, no tiene nada que ver a nivel rendimiento Harbour en uno y otro. Hay unos cuantos "gurus" harbour (conocidos por muchos) que ya me han dicho que se prestan ayudar a portarlo a  linux (yo no seré 😅), pero puede ser interesante ver hasta donde pueden llegar.

Y para la parte de la view, de las vistas yo me decline por Bootstrap creando TWeb, para facilitar toda esta parte de representación de los datos, pero que fácilmente quien entienda de web podria adaptar todo este entorno a otros frameworks como Materialize u otros.

La parte de javascript se seguirá apoyando en jquery porque considero que estará muchos años y facilita mucho la codificación y el uso de ajax para todo el concepto de comunicación con nuestras apis funciona fantásticamente bien.

Asi pues, toca unificar, repasar, limpiar y redocumentar todo este "concepto" de trabajo que podemos resumir basicamente de esta manera:

Creacion de una ruta (Esta simple linea implicará que al meter en la url del navegador "hello" ejecutará el código "index.html"

oServer:Route( 'hello', ' index.html')

Creación de la vista "index.html"

<?prg
#include "lib/tweb/tweb.ch" 
  LOCAL o, oWeb

  DEFINE WEB oWeb TITLE 'Hello'
  DEFINE FORM o ID 'myform' API 'myapi' OF oWeb
  INIT FORM o
  SAY VALUE '<h1>Welcome to UT<hr>' ALIGN 'center' GRID 12  OF o
    BUTTON ID 'btn' LABEL 'Click me!' ALIGN 'center' GRID 12 ACTION 'hello' OF o
  ENDFORM o
  INIT WEB oWeb RETURN 
?>

Este simple código muestra una simple pantalla con un texto y un button. Al pulsar el button envia un mensaje a nuestro servidor, y ejecuta una api codificada en harbour  llamada "myapi" y ejecutará la petición "hello"

La api es tan sencilla como este código

function MyApi( oDom )
  do case
     case oDom:GetProc() == 'hello' ; DoHello( oDom )
  endcase

retu oDom:Send() 

// --------------------------------------------------------- //

static function DoHello( oDom )
  oDom:SetMsg( 'Hello from server Harbour at ' + time() )
return nil 

No hace falta comentar este código. 

Esta base de router<-->vista<-->api  nos permite facilmente crear nuestros sistemas de una manera muy fácil y sencilla.


UT te permite usar perfectamente el patrón MVC pero ahora lo importante es entender que para poder crear todo este sistema hay este ecosistema de librerias que a muchos programadores no les interesa conocer pero que son necesarias para poder crear estas aplicaciones web. 

Básicamente hay 3 mini entornos que debemos conocer y entender:

- Entorno Backend (Harbour)
- Entorno Frontend (Harbour TWeb)
- Entorno Comunicación (Harbour UT)

La unión de todo forma UT. Y las capas de programación que hace tan fácil todo esto intervienen junto a muchos lenguajes (harbour, C, html, css, js, jquery, bootstrap,...) y mucha arquitectura, es asi esta realidad.

Es por eso que ahora que sabemos donde hemos llegado, debemos ya poner todo a disposición de quien quiera aventurarse diria en este maravilloso  proyecto, que definiria como hacer fácil lo dificil.

Asi que tocará crear un arbol de ficheros que ayuden a compilar toda la libreria formada por UHttpd2 y TWeb = UT 

Ahora que ya sé cual es una de las opciones para trabajar de manera fácil con harbour para web, tengo la inquietud de crear tambien un programa para que ayude a crear todas estas estructuras a nivel comando, pero... he de poner orden y ya esta decidido. Primero vamos a liberar bien todo el proyecto UT 

Este debe ser el objetivo para 2025 😀







Comentarios

  1. Gracias Charly, y lo mejor para ti en este 2025, Un abrazo - Osvaldo Ramirez

    ResponderEliminar
    Respuestas
    1. Gracias Charly, Prosperidad y claridad para este año 2025 , abrazo Fabián Palacio.

      Eliminar
  2. Feliz 2025 Charly. Mucha salud y lucidez mental para que logres tus metas.
    Ralph del Castillo

    ResponderEliminar
  3. Realmente es muy dificil poner un programa y que funcione bien en internet. UT es una vision y un camino que podemos andar para conseguirlo. Nadie en Harbour se ha preocupado en abrir caminos

    ResponderEliminar
  4. Juan Castillo Arteaga3 de enero de 2025, 17:09

    Tienes una mente brillante Charly, sé que muchos estamos agradecidos por los frutos que has donado, tu trabajo nos ha ayudado a abrir más los ojos a estas tecnologías y gracias a UT ya estamos encaminados y más confiados y eso vale muchísimo.

    ResponderEliminar
  5. Gracias Charly, por todo este esfuerzo que has hecho para la comunidad harbour.

    ResponderEliminar
  6. porque los promotores de mod Harbour no explican que también podemos aprender HTML css js y trabajar con mod Harbour como PHP ? Esta bien está otra forma de aprender con un framework tipo Laravel etc Pero no es la única forma, pienso que mod Harbour no ha avanzado más porque solo se han enfocado en ir solo por la vía framework o librerías, se agradece el esfuerzo Pero no hay que temer a la web , lo que hace falta es servidores que ofrezca hospedaje con mod Harbour,PHP MySQL etc

    ResponderEliminar

Publicar un comentario