How To Get Gambas Web Started (1)
Introduccion
A continuación se presenta una breve información sobre cómo iniciar y utilizar un sitio web de Gambas, los requisitos y cómo desplegar el trabajo realizado. 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, utiliza su propio servidor web embebido con diferentes variables (muy diferentes) respecto a un servidor de producción, y difiere del código interpretado.
Usar el directorio del proyecto como programa para compilarlo e incrustarlo en el servidor web "real".
Illustrando con equivalentes
La tecnología de Gambas ofrece las mismas características y características similares a las de otras tecnologías, veamos una tabla comparativa de esto:
Tecnologia
|
Interprete
|
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)
|
N/A
|
.NET
|
asp (active server pages)
|
COM ( CLR runtime)
|
Conceptos prelilminares
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 renderizar html en contenido web dinámico o estático: Interpretado y/o precompilado.
El contenido web se produce con la ayuda de un servidor web, usando siempre CGI, anunciando directamente el programa precompilado o como script al intérprete de Gambas a través de código de script.
Independientemente de la forma en que el servidor entrega la página web del documento, todo el tiempo se utiliza el concepto CGI.
¿Y que es el 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. Tales programas son conocidos como scripts CGI o simplemente como CGIs. El servidor determina cómo el script es ejecutado por el servidor.
Interpretado (o script)
|
gambas3-scripter
|
permite interpretar un archivo fuente y en base a su contenido como script renderizará html o no utilizando la lógica, sólo se recomienda para contenidos estáticos que sólo necesitan una lógica mínima, cuando falla se muestra el código fuente en el servidor web, éste debe ser configurado utilizando el cgi como envoltorio que entrega la petición al intérprete.
|
Precompilado (o cgi)
|
gambas3-runtime
gambas3-web
|
permite compilar el programa que actuará como programa cgi y produce el renderizado html. El componente ide se le dio la debida instalación de muchos de los necesarios, pero en el servidor no es recomendable, este debe ser configurado como el manejador de la petición directamente.
|
Requerimientos
Necesitamos un servidor web, un compilador IDE de Gambas y un intérprete de scripts de Gambas, a menos que sólo hagas cgi's el script es innecesario. El comando de instalación recomendado debe realizarse abriendo una consola y cambiando a root para instalar los paquetes de programas de la distribución de Gambas, los paquetes necesarios del servidor web y configurar los componentes cgi en el servidor web.
Requerimientos de instalacion
Primero: ten Gambas! La forma más fácil es instalar Gambas desde tu distribución de Linux.
Si Gambas aún no está contenido en su distribución, entonces descargue la distribución
de
http://gambas.sourceforge.net
Segundo: entendiendo! Necesita entender REALMENTE los conceptos de
peticion Request y
respuesta Response, Aquí se requiere estar familiarizado, HTTP se basa en un modelo de solicitud / respuesta, por lo que hay dos tipos de mensajes HTTP: la solicitud y la respuesta. El navegador abre una conexión con un servidor y hace una petición. El servidor procesa el que
cliente "hace uan peticion" y
servidor "retorna una respuesta"; así que entonces los datos se envían usando los dos métodos más comunes de HTTP:
GET y
POST. Debido a que Gambas es un RAD (Rapid Application Development) esos conceptos deben ser muy claros para el desarrollador.
Ultimo: el entorno! Necesita un servidor web, que proporcione capacidades de gci
verdaderas. Nginx no proporciona capacidades reales u necesitará más ajustes para configurarlo. Como información adicional general para entornos de producción de alta gama, que debe configurarse como un dúplex de un servidor frontal que proporciona un proxy inverso al servidor web cgi real con el programa cgi Gambas3.
Feature Comparison Chart and Status
Empezar a desarrollar en Gambas necesita un punto de dirección correcto, por lo que proporcionamos un gráfico rápido para ver que las características soportadas respetan otras tecnologías.
El desarrollo de tecnologías web ha ganado fuerza desde hace unos 3 años en la comunidad de desarrolladores de Gambas, teniendo hoy en día incluso un
componente de diseño gráfico web.
No se incluye la curva de inclinación porque aprender Basic es obviamente más fácil que cualquier otro lenguaje de programación, y Gambas es básico.
CARACTERISTICA
|
Gambas
|
Java
|
.NET
|
Python
|
Php
|
Lenguaje base codigo
|
Basic
|
C++,C
|
Basic,C++
|
CPython,C
|
Perl,C
|
Compatibilidad versiones viejas
|
siempre
|
siempre
|
Rompe API cada 4 años
|
Incompatible
|
siempre
|
Ejecuta en
|
Unix based
|
Any OS
|
Solo MS based
|
Casi Any OS
|
Casi Any OS
|
Servidor web
|
Cualquier cgi
|
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
|
Diseñador Grafico
|
Gambas IDE
|
Eclipse thirparty
|
.NET IDE
|
Not
|
Not
|
Componentes Web
|
gb.web, gb.http, gb.web.feed, gb.util.web, gb.curl
|
EJB, JSP, JSF, Spring, GWT
|
ASP, Spring, COM
|
Muchos
|
php-cgi, php-fpm, php-curl, php-sockets, more..
|
Frameworks Web
|
Gambasforge
|
Spring, Struts, GWT
|
Buil-in
|
Django,CubicWeb
|
Codeigniter, Lavarel, Symphony
|
DBMS Acceso datos
|
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 Mapeo de datos
|
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
|
Comenzando a codificar
Gambas es un software RAD por lo que no asumimos que usará el IDE, ya que siempre se puede usar un editor de texto normal y luego compilar el programa cgi a mano en la consola.
Comenzando a codificar en el IDE
Cuando termine la instalación, use Gambas:
-
En una ventana terminal escriba "gambas3.gambas"
-
El IDE de Gambas se abrirá, selecciona "Nuevo proyecto...".
-
Selecciona "Crear una aplicación web gb.web", haz click en siguiente,
-
Encuentra un directorio donde poner el proyecto web, haz clic en siguiente,.
-
Introduce un nombre para tu proyecto web, haz clic en OK.
-
Cierra la ventana de consejos del día.
Esto inicia un módulo principal que cuando se construye rinde una página que imprime valores importantes, necesita entender para manejar los cgi's web,
-
En la ventana de proyecto encuentra el botón de inicio, presiónalo (o presiona la tecla F5).
-
Luego por un tiempo, el navegador por defecto se abrirá o se levantará una nueva pestaña y se mostrará una dirección web del localhost
esto inicia un servidor web local embebido usando un puerto bind 8080, mostrando los valores estándar del servidor GCI, que son muy importantes de entender para páginas web de alto nivel de producción.
Despliega el resultado
El IDE, cuando se ejecuta en un servidor local incrustado,
esto es significativamente diferente, más bien se ejecuta en el servidor debido a que debe especificar cuál es el "punto de entrada" de la aplicación web.
Como una ruta root: el cgi procesará toda la ruta desde root, ejemplo: http://domain/thegcipath/
Como una entrada web: el cgi será llamado directamente por la solicitud, ejemplo: http://domain/thegcipath/thecgiprogram
1) configurando el cgi en el servidor
En el servidor web estándar de los servidores web de los proveedores sólo hay dos caminos en los que se puede desplegar el "programa producido" (el programa compilado de Gambas), en la ruta web "/cgi-bin/", y sólo hay dos lugares para ellos, globalmente y por usuarios, hay configuraciones para ambos casos:
Webserver
|
Initial/global configs
|
Per user configs
|
Script additions
|
module related
|
apache
|
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
AddHandler cgi-script .cgi .sh .pl
|
Options ExecCGI
SetHandler cgi-script
|
AddHandler cgi-script .gbs ()
|
a2enmod cgi cgid alias userdir
|
lighttpd
|
$HTTP =~ "^/cgi-bin/" {
cgi.assign = ( "" => "" )
}
|
$HTTP =~ "^(/~[^/]+)?/cgi-bin/" {
cgi.assign = ("" => "")
}
|
cgi.assign = ("gbs" => "gbs3")
|
lighty-enable-mod cgi alias userdir
|
(
) en apache todavía no hay manera de resolver la interpretación de los guiones en el momento de escribir esto
2) Despliege de tipo produccion
-
En el IDE, ir al proyecto
-
Crear-> ejecutable
-
Si usa la "configuración por usuario" elija la salida del directorio como "public_html" bajo su casa.
-
Elija el nombre del programa de salida, por defecto "programname.gambas"
-
Si el servidor web sólo permite programas con extensión .cgi en la segunda entrada: mv $(FILE) $(FILE).cgi
-
El programa cgi ahora puede ser invocado desde la url http://localhost/~username/cgi-bin/programname.gambas.cgi
Todo esto tomando en consideración que dentro de tu casa, hay un directorio "public_html", usado y manejado por el servidor web como contenido web para el usuario, y también bajo esto hay un directorio "cgi-bin", que es para los programas cgi, y el software del servidor web es sólo apache2 o lighttpd.
See also