The Concept
Intentaré explicar lo mas simple posible como veo este nuevo sistema y que se entienda el concepto que usaremos para poder diseñar aplicaciones web. Son unos cuentos componentes a tocar y entender, pero estamos hablando de aprender toda una nueva manera de programar a la web sin usar los métodos tradicionales.
COMPONENTES
Servidor
Mientras que para usar el mod necesitábamos instalar Apache, no bastaba, sino que debías aprender a configurar mínimamente su entorno, firewall, permisos, … Hemos podido ver como este primer punto ya suponía un problema importante para la mayoría.
Después de probar unas cuantas soluciones Harbour la más potente bajo mi punto de vista es el servidor httpd de Mindaugas, lo probé hace mas de 20 años, es una obra de arte y si te gusta la programación y el mundo web, puedes tener una buena lectura y aprender mucho de él. Nunca lo use en producción pero recuerdo en una charla de nuestro amigo Rafa que el comentó que lo usó con mucho éxito en una de sus implantaciones en el que explotaba el uso de webservices.
Servidor Web & WebServices (por Rafa "TheFull")
Httpd es un servidor que si ejecutas sus ejemplos, la página la sirve y procesa como otros, pero la parte del backend son propias funciones en harbour y esta es la gracia, que toda tu parte de backend está en nuestro querido lenguaje Harbour. Pero quiero dar un paso adelante en que la parte javascript no sea necesaria escribirla ya que la gestionará el propio servidor con ayuda de una lib js que también he diseñado que irán a la par, es decir, controlaremos todos los controles del navegador desde Harbour. Añadir que la parte de comunicación entre el frontend y backend se encarga también la propia librería.
A partir de aquí he tenido de retocar la clase para poder
integrar todo este nuevo concepto. Esto implica que nuestras aplicaciones .exe serán
nuestro servidor web, pero con unas nuevas funcionalidades que nos dará potencia a nuestro sistema de una manera mas fácil y transparente. Veremos más adelante como crear nuestras rutas y apis
para poder gestionar nuestra aplicación.
El servidor que usaremos evidentemente no tendrá la capacidad de proceso de apache. En comparativa por ejemplo con modHarbour, Apache se encarga de distribuir las peticiones de todo tipo de recursos: html, jpg, js, css, png,... y procesar tantas maquinas virtuales de harbour con el mod, mientras que nuestro servidor lo tendrá que hacer todo. La escabilidad y potencia no es comparable entre estos 2 sistemas, pero en la fase de reflexión llegas también a las siguiente conclusiones: Puede un pequeño negocio tener una pequeña aplicación para enviar pedidos ? Consultar referencias ? Realizar pequeñas gestiones ?
Este pequeño sector de programadores con este escenario creo que se puede beneficiar de manera bárbara con todo este sistema.
En nuestra primera parte para mostrar el concepto,
escribiremos los ejemplos con html puro y duro para entender cómo deben ser
codificados. Si bien muchos no saben html, los que ya han visto o son expertos
en html verán cómo se han de codificar. La idea principal es entender la
estructura, pero que en capítulos posteriores veremos como este html puede, si
se quiere, generar desde otros entornos con comandos y ayuda del preprocesador,
o desde otras gui que podrán traducir automáticamente sus diálogos a htmls, sin
necesidad por parte del programador de hacer absolutamente nada, pero como he
dicho…de momento esta parte la veremos cómo se ha de estructurar.
Javascript
Este es otro de los problemas para muchos de dar el salto a la web: aprender el uso de javascript. Como muchos sabéis JS nos permite programar para que se ejecute desde lado cliente y la misión principal es la de poder interactuar con el DOM , la pantalla que tenemos en nuestro navegador. Básicamente y a nivel general lo que hacemos siempre con los controles que se muestran en la pantalla es: ocultar/mostrar, activar/desactivar, poner foco, set/get datos, ….
Css
Vamos a dejar este tema para la parte final. El sistema usará un fichero css por defecto, que definirá todo nuestro look de la aplicación. Cualquiera de nosotros si tiene conocimientos puede alterar el diseño modificando este fichero. Simplemente cambiando este fichero podrá cambiar la apariencia de la aplicación. En resumen, podríamos decir que realmente un fichero css es un plugin que nos da la apariencia y que simplemente cambiando el fichero damos una nueva apariencia sin alterar para nada su funcionalidad.
Resumen
Un tema que se ha de entender, es que la web tiene sus propias reglas y lenguajes. Esto quiere decir que si tu quieres "pintar" una pantalla, has de mandar a un navegador código html para que lo interprete, que podemos "maquetar" los controles de una pantalla usando css y que para poder manipular desde el navegador estos controles, usaremos javascript. Básicamente es esto y debemos entender que son las reglas. Otro tema será como nosotros usemos todo esto.
Intentaremos en el “concept” usar lo mejor de cada
lenguaje para poder tener el mayor rendimiento posible. Usaremos en la mayor
medida posible Ajax para nuestras peticiones al servidor, porque esto nos dará
una potencia brutal a nuestras apps e intentaremos tener el control de nuestros
controles sin usar… Javascript. En un primer estado usaremos html puro para que se entienda, pero ya hablaremos de como evitar también este lenguaje.
Todo esto junto al servidor evolucionado para poder cerrar este nuevo circulo nos dará otro nuevo camino que nos ayude a dar el salto a la web.
Este será mi nuevo objetivo para intentar ayudar a muchos colegas que por diversos motivos se les ha hecho un poco grande todo esto. Será un proyecto cerrado que si veo aceptación, ayudas y que entre todos podamos cerrar, lo liberaré como siempre he hecho. Usaré para este prototipo el compilador MSVC 64 y dejaré en algún repositorio todo lo necesario para que lo podáis probar. Cualquier ayuda, sugerencia, soporte,.... será bienvenido.
Tiempo de construir, vamos a intentarlo...
Quizás en breve hago una charla para que se entienda un poco mejor el objetivo, "The Concept", para luego seguir por aqui, que me parece mas relajado :-)
Muy bien Charly, estaré pendiente para este viernes 21. Se ve interesante, aunque estoy desarrollando en Mod-Harbour v2. Pero ... siempre es bueno tener alternativas. Saludos
ResponderEliminarWilliam L.