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:Technology | Interpretado? | 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!
FEATURE | Gambas | 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
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.
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