lunes, 7 de mayo de 2018

Gambas web: 1 - Como comenzar con gambas en web

Fuente, mi propio articulo par la wiki http://gambaswiki.org/wiki/howto/getstartedwebgambas
ACTUALIZACION: en la wiki se esta trabajando en otro articulo y hay tambien otra entrada .. se traducira y habra nuevas buenas aqui pronto.

Introducción


Aquí hay una breve información sobre cómo iniciar y usar un sitio web de Gambas, sobre los requisitos necesarios y cómo acceder a ellos. Tenga en cuenta que la prueba de la página web dentro del IDE no es la misma que cuando se llama desde el navegador, porque el IDE, cuando se ejecuta, usa su propio servidor web incorporado con el código interpretado.

Use el directorio del proyecto como el programa para compilarlo e incrustarlo en el servidor web "real".


Illustrating the equivalents

Gambas en tecnologias web ofrece lo mismo que los otros:
TechnologyInterpretado? Compilado?
Gambas gbs files (gambas3-scripter) gb programs (gambas3-runtime)
Java jsp (Javas server pages) servlets (Java Enterprise)
PhP php/phtml (php-cgi/php-fpm) precompiled external extension
.NET asp (active server pages) COM ( CLR runtime)

Conceptos preliminares


La tecnología web de Gambas se proporciona para producir web 2.0 (contenido dinámico y también interactivo).

Hay dos formas de producir y/o procesar contenido web html dinámico o html estático: Interpretado y/o precompilado.





En la web esto se produce usnado dos conceptos principales: el request (Request en la wiki gambas) y el response (Response wiki gambas),  estos conceptos son primordiales y se asumiran que los comprende, se les conoce como el par "peticion-respuesta" y el punto de vista de quien es quien depende de donde se piden los datos. El contenido web es lo que se muestra en la "respuesta" (por lo general salvo excepciones).

El contenido web se produce con la ayuda de un servidor web, utilizando siempre CGI, anunciando directamente el programa precompilado o como envoltorio para el intérprete de Gambas a través del código de secuencia de comandos.

Independientemente de la forma en que el servidor entrega la página web del documento, sea interpretado o compilado, todo el tiempo se utiliza el concepto CGI. El programa en si es el CGI:

¿Qué es CGI ?:


Common Gateway Interface (CGI) ofrece un protocolo estándar para que los servidores web ejecuten programas como aplicaciones de consola (también llamados programas de interfaz de línea de comandos) que se ejecutan en un servidor que genera páginas web dinámicamente. Dichos programas se conocen como scripts CGI o simplemente como CGI. El servidor no determina cómo se ejecuta la secuencia de comandos.

Basicamente el programa CGI toma la peticion y emite una respuesta, esto se explica mas adelante.
Interpreted (as script) gambas3-scripter permits interpret a source files and based on their content as script will render html or not using logic, its only recommended for static content that only need minimal logic, when fails show the source code in webserver, this must be configure using the cgi as wrapper that deliver the request to interpreter.
Precompiled (as cgi) gambas3-runtime gambas3-web permits compiling the program that will be acts as cgi program and produces the html rendering. The ide component was given due install many of the necessary, but in server its not recommended, this must be configured as the handler of the request directly.

Requerimientos

Se requiere aparte del ide Gambas, tener instalado un webserver con capacidad CGI, ademas ajustar para que este pueda mostrar contenido web desde los home del usuario o desde una ruta especifica por ud (y en esta ruta el contenido del proyecto web, etc):

Requerimientos de instalaciónPrimero: ¡consigue Gambas! La forma más fácil es instalar Gambas desde su distribución de Linux.
Despues: ¡conocimiento web! Es necesario comprender REALMENTE los conceptos de "peticion-respuesta", aquí es necesario que esté familiarizado, HTTP se basa en un modelo de solicitud/respuesta, por lo que hay dos tipos de mensajes HTTP: la solicitud (Request) y la respuesta (Response). El navegador abre una conexión a un servidor y realiza una solicitud. El servidor procesa al cliente "realiza una solicitud" y el servidor web "devuelve una respuesta"; entonces los datos se envían y reciben usando los dos métodos HTTP más comunes: GET y POST. Gambas es un RAD (desarrollo rápido de aplicaciones), esos conceptos deben ser muy claros para el desarrollador.Último: ¡el entorno! Necesita un servidor web que brinde verdaderas capacidades de GCI. Nginx no proporciona capacidades reales, necesitará una mayor optimización para configurarlo. Para entornos de producción de alta gama, debe configurarse como un duplicado de otro servidor que proporciona un proxy inverso al servidor web real cgi con el programa cgi de Gambas3.


Tabla comparativa implementacion Gambas web

Desarrollar en Gambas necesita un punto de dirección correcto, por lo que ofrecemos un gráfico rápido para ver las características compatibles con respecto a otras tecnologías.

El desarrollo de las tecnologías web se ha fortalecido desde hace aproximadamente 3 años en los desarrolladores de la comunidad de Gambas, teniendo hoy incluso un componente de diseño gráfico completamente para hacer paginas html dinamicas.

Gambas es sintaxis BASIC, que es obviamente más fácil que cualquier otro lenguaje de programación, eso singifica que es mas rapido y mejor
!

FEATUREGambas Java .NET Python Php
Based Coding Language Basic C++,C Basic,C++ CPython,C Perl,C
Backguard coding compatible always always Breaking API each 4 years Incompatible always
Running On Unix based Any OS Only MS based Almost Any OS Almost Any OS
Web server Any cgi based Tomcat, Jboss, Glassfish, Websphere, Weblogic IIS Apache2, IIS, Lightty, Hiawatta,Ngynx Apache2, IIS, Lightty, Hiawatta,Ngynx
Runtime Gambas Runtime Java virtual Machine Common Languaje Runtime Python runtime Zend Engine
Graphical Designer Gambas IDE Eclipse thirparty .NET IDE Not Not
Web Components gb.web, gb.http, gb.web.feed, gb.util.web, gb.curl EJB, JSP, JSF, Spring, GWT ASP, Spring, COM Many php-cgi, php-fpm, php-curl, php-sockets, more..
Web frameworks Gambasforge Spring, Struts, GWT Buil-in Django,CubicWeb Codeigniter, Lavarel, Symphony
DBMS Data Access ODBC, MySQL, SqLite, Postgres JDBC: Oracle, Sybase, MSSQL, MySQL, Sqlite, DB2, etc ADO.NET-oleDB, ODBC PyODBC: ODBC php-odbc, Php-pysql, php-sybase, php-pgsql, php-sqlite
DBMS Data Mapping Jbsan MapBD Hibernate, Dozer, Commons, Mapstruts, ModelMapper ADO.NET Django, Pandas Codeigniter, Kohana, Doctrine
Web services gb.xml Build-in Buil-in Add-on (many) php-soap, php-xml
Mobile native not yet Androit SDK Xamarin(MOno) Kivy, BeeWare Not possible
Unit Tests By own JUnit NUnit,MSUTF PyUnit PhpUnit
 

Empezar a codigicar web gambas

Gambas es un software RAD por lo que supondrán que usará el IDE, debido a que siempre puede usar un editor de texto normal y luego compilar el programa cgi a mano en la consola.

Codificando y el IDE gambas

Habiendo instalado Gambas:
  • En el terminal ejecute el comando "gambas3.gambas" o desde menu
  • Al abrir el IDE Gambas seleccione y click a "New project...".
  • Escoja el tipo "Create a application web gb.web", y click siguiente
  • Escoger un directorio donde colocar la raiz del proyecto, y sig..
  • Ingresar el nombre del proyecto, sin espacio y sin capitalizacion...
  • Cierre la ventanita de "tips" del dia y se abre tres componentes
Esto inicia un módulo principal que cuando compila renderiza una página (que se coloca por defecto).



Codigo y sintaxis web gambas:

Igual que JSP, PHP o ASP: super familiar y parecido, pero ojo eso solo si es interpretado, al abrir el prjecto un archivo de este tipo esta por defecto:

Main.class
Este usa sintaxis interpretada, no debe hacer programas sensibles en esta sintaxism, porque cuando el interprete falla muestra el codigo fuente completo al navegador.

Probar el Main interpretado

Esto es facil pulsar F5 ejecutara el servidor web embebido (desde gambas 3.6 solamente, antes habia que hacerlo a mano).

El navegador web instalado arrancara por defecto y mostrara la salida que pinta el "Main.class" de el directorio seccion "Fuentes.

Habilitar el diseño grafico:


Hasta la version 3.9 el IDE al crear el proyecto no automatiza la creacion grafica de componetes web, esto lo habilitamos a mano dando click en el proyecto y despues en propiedades, alli seleccionamos gb.form.web y aceptar. 
QUE CAMBIA? bueno que haora podemos crear un nuevo tipo de form, llamado webform que veremos en el siguiente seccion abajo:




Crear y diseñar graficamente un nueva vista web:

FAcil una vez habilitado en nuestro proyecto web damos click derecho sobre el directorio seccion de Fuentes, alli seleccionamos del menu contextual Nuevo, y en la lista si habilitamos correctamente el modulo aparecera la opcion de Webform:


Un webform es un formulario igual que otros gambas, pero su lista de eventos y de controles es menor dado la naturaleza web del objetivo final.


CONCLUSION:


Por ahora esto es todo, en la siguiente articulo del curso aprenderemos entender como pintar y hacer el programa cgi propiamente, ya que al igual que php, todo el codigo html se debe pintar desde el programa, a menos usemos el webform donde solo añadimos el codigo que altera el comportamiento.

1 comentario:

  1. Gracias por el aporte Piccoro y este tema lo desconozco totalmente así que estas instrucciones me servirán para mis primero pasos y pruebas, saludos.

    ResponderBorrar