FiveWeb de FiveTech (gratis hasta la versión 1.0)

Re: FiveWeb de FiveTech (gratis hasta la versión 1.0)

Postby Antonio Linares » Fri Mar 01, 2013 5:24 pm

Carlos,

En los servidores que yo he usado, tanto locales como remotos, los CGIs estaban activados por defecto, asi que no sabría indicarte como se activan
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41315
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: FiveWeb de FiveTech (gratis hasta la versión 1.0)

Postby Vladimir Zorrilla » Sat Mar 02, 2013 4:48 pm

Queridos Amigos hoy dia es mi cumpleanos y se me ha dado por reflexionar un poco.

He estado siguiendo con detenimiento el proyecto fiveweb y me parece fabuloso el tiempo y esfuerzo
que hay detras de este proyecto , me gustaria tambien dar mi humilde opinion con respecto a esto con
el sano proposito de que nos ayudemos a aclarar un poco las cosas.

En primer lugar debemos de entender lo que nos pasa a nosotros , estamos acostumbrados a un modelo de
programacion .

-----TABLAS LIBRES--------
Primero cuando usabamos DBF haciamos bucles para recorrer las bases de datos.

-----CLIENTE SERVIDOR-------
Pasamos a cliente servidor y como eso esta metido en nuestra costumbre , algunos hacen lo mismo
piden un cursor y lo comienzan a recorrer con bucles para discriminar datos cuando lo correcto es que el
SELECT con sus clausulas WHERE HAVING hagan todo el trabajo y traigan la consulta lista.


Lo mismo sucede cuando pasamos a programacion web tenemos que cambiar "El CHIP NUEVAMENTE"
Nosotros programamos para una sola maquina , programamos un programa cliente que ataca un servidor
usamos un solo lenguaje , manejamos un solo juego de variables el de nuestra PC.

------MODELO VISTA CONTROLADOR
(base datos) (navegador) (PHP, ASP.NET RUBY etc podria estar aqui FIVEWEB)

No podemos programar asi para la web , aqui existen 2 maquinas que se programan con 2 lenguajes diferentes.

La del cliente con JavaScript que maneja sus propias variables y que corre en el navegador y la que se comunica con la
maquina del servidor.
Y la maquina del servidor que usa sus propias variables y que tiene su propio lenguaje (PHP ASP.net PYTHON RUBY o el mismo JS o tambien FIVEWEB)

Bueno el punto es que se trata de programar 2 escenarios , el escenario del cliente y del servidor por separado.
Nosotros estamos acostumbrados a programar solo el escenario del cliente.

Abstraernos de usar JAVASCRIPT y querer hacerlo desde una unica lengua del servidor ya lo intento ASP.net pero al final siempre terminas usando el Script Manager.
Y es que es logico no hay nada como hacer un clic derecho en el navegador y poner ver codigo fuente y entender que
esta pasando en la interfaz del navegador.

Mi humilde opinion es que tarde o temprano todos vamos a tener que aprende JAVASCRIPT.

Ahora lo que seria ideal es que esta lengua pueda ser compilada a xharbour lo que seria fabuloso pues muchos scripts
podrian ser escritos una sola vez.

Digo esto por que los programas web no tienen ni tendran los mismo rendimientos que los programas nativos (los ejecutables
autonomos) entonces nos veremos obligados a crear siempre para muchos casos una version web y una version nativa.

Entonces estamos obligados a trabajar doble.

De lado del servidor tendriamos a FIVEWEB que es nuestro querido xharbour o harbour .

Es necesario entonces contar con una lengua del lado del cliente que nos permita aliviar en algo la doble
codificacion.

Entonces la pregunta es que es posible?
Que fivewin/harbour corra en el navegador y lo acepten todos los navegadores del mercado
Que Javascript sea soportado por lo menos en sus estructuras de control en HARBOUR o XHARBOUR

La respuesta es obvia , mediante este foro nosotros tenemos el privilegio de ser leidos por los autores de HARBOUR
XHARBOUR y tenemos acceso a ellos.

Agradesco sus comentarios y aclaraciones.




Vladimir Zorrilla Llerena
vladimirzorrilla@gmail.com
ME INTERESA FW Y XHB POR SER OPEN SOURCE
Vladimir Zorrilla
 
Posts: 225
Joined: Tue Feb 28, 2006 4:25 pm
Location: PERU

Re: FiveWeb de FiveTech (gratis hasta la versión 1.0)

Postby hmpaquito » Sat Mar 02, 2013 5:33 pm

Vladimir,

Feliz cumpleaños. Gracias por la reflexion.

Debo estar equivocado, pero yo pensé que el servidor sería nuestro programa hecho con fiveweb, que serviría las páginas web. Para nosotros no habría dos lados sino sólo uno porque fiveweb se encargaría de generar las páginas para el navegador cliente. Quizá me equivoque, pero pensé que eso era fiveweb.

Saludos
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: FiveWeb de FiveTech (gratis hasta la versión 1.0)

Postby Vladimir Zorrilla » Sun Mar 03, 2013 6:05 am

Gracias por contestar amigo

Pues precisamente aqui esta el problema amigo que fiveweb nos genera una pagina web con el codigo
html ,css y javascript .

Bueno que genere el html y css esta bien pero nos acostumbra a no hacer uso directo de javascript y eso nos
evita a entender directamente el codigo que funciona en el navegador que es basico saber cuando enfrentes
escenarios de produccion.
Hacer un clic derecho y saber que pasa con los eventos del DOM es esencial para afrontar un servicio de soporte.

Te lo pondre en un ejemplo mas sencillo para que veas lo confuso que es no trabajar por separado el lado del cliente y el lado del servidor.

Un formulario para agregar cuentas a una tabla llamada PLAN

#include "FiveWeb.ch"

function Main()

local oDlg,cuenta=space(5),objq,oMySql

DEFINE DIALOG oDlg TITLE "FiveWeb Agregar Cuentas" SIZE 600, 400

@0,0 SAY 'CUENTA' of oDlg
@0,10 GET cuenta of oDlg
@2,18 BUTTON ' Aceptar ' ACTION oDlg:END() SIZE 52,12

ACTIVATE DIALOG oDlg

oMySql := TMSConnect():New()
oMySql:Connect( "190.43.42.177","root", "CPS" )
oMySql:SelectDb( "contable" )
objq:= TMSQuery():New( oMySql )
objq:Open("SELECT * from plan where cuenta='"+cuenta+"'")

if objq:nRowCount=0
objq:ExecSQL( "INSERT INTO PLAN (CUENTA) VALUES ('"+cuenta+"')" )
else
MsgAlert('La cuenta '+cuenta+' ya existe ')
endif


return nil

Este codigo esta pensado en el modelo de programacion cliente servidor aca si se puede tener todo en un solo codigo
pero para que funciones esto en web debemos de separar lo que va a corre en el navegador y lo que va a correr en el servidor web.

Analizemos

local oDlg,cuenta=space(5),objq,oMySql

oDlg y cuenta son variables que deben correr en el navegador y objq,oMySql deben correr en el servidor como fiveweb
va a saber eso.

Todo esto fiveweb lo debe convertir en html css y javascript

DEFINE DIALOG oDlg TITLE "FiveWeb Agregar Cuentas" SIZE 600, 400

@0,0 SAY 'CUENTA' of oDlg
@0,10 GET cuenta of oDlg
@2,18 BUTTON ' Aceptar ' ACTION oDlg:END() SIZE 52,12

ACTIVATE DIALOG oDlg

Todo esto codigo es para que corra en el servidor no lo debe de tocar

oMySql := TMSConnect():New()
oMySql:Connect( "190.43.42.177","root", "CPS" )
oMySql:SelectDb( "contable" )
objq:= TMSQuery():New( oMySql )
objq:Open("SELECT * from plan where cuenta='"+cuenta+"'")

Estas 3 lineas son codigo de servidor
if objq:nRowCount=0
objq:ExecSQL( "INSERT INTO PLAN (CUENTA) VALUES ('"+cuenta+"')" )
else

Pero este mensaje debe aparecer en el lado del cliente y debe estar en javascript como logra eso en un solo
codigo si son 2 escenarios distintos que ocurren en diferentes maquinas.

MsgAlert('La cuenta '+cuenta+' ya existe ')
endif



Ahora como se codifica esto en programacion web JAVASCRIPT PHP pues se hace separado

ESTO CORRE EN EL NAVEGADOR
<html>
<head>
<title>Agregar Cuentas</title>
<script language="javascript" src="js/jquery-1.4.2.min.js"></script>
</head>
<body>
Cuenta
<input type="text" id="idcuenta" />
<input type="button" name="boton" value="Aceptar" onclick="validar()" />
</body>

<script type="text/javascript">
function validar()
{
var cuenta
cuenta= document.getElementById('idcuenta');
$.ajaxSetup({async:false});
$.get("valida.php", { lacu : cuenta },function(data)
{
existenciadecuenta(data,cuenta)
});
return true;
}

function existenciadecuenta(data,cuenta)
{
existe= data.indexOf("NOHAY");
if (existe==-1)
{
cadena="INSERT INTO PLAN (CUENTA) VALUES ('"+cuenta+"')";
$.ajaxSetup({async:false});
$.get("vzexecute.php", { acc : cadena });
}
else
{
alert('La cuenta '+cuenta+' ya existe ')
}
}
</script>

</html>

Y EN EL SERVIDOR hay que programar la verificacion de la cuenta en la base de datos

valida.php recibe en formato jason { lacu : cuenta }

lacu es el elemento del array asociativo que en php nos recibira el valor
cuenta es la variable javascript que transfiere el valor.

function(data) es el que recibe la respuesta AJAX data
devuelve HAY o NOHAY segun exista o no la cuenta en la tabla PLAN.

y

$.get("vzexecute.php", { acc : cadena });

es un php que ejecuta una cadena sql enviada desde javascript.

Bueno la idea es que el php sea remplazado por FIVEWEB por eso evito el codigo PHP


Como pueden ver teniendolo separado se entiende exactamente lo que pasa entre el
navegador y el servidor, estando todo en un solo codigo resulto un poco confuso.


Agradecido por los comentarios y perdonen mi intencion es aclarar un poco las cosas con la idea
de hacer de fiveweb algo realmente funcional.


Saludos

Vladimir Zorrilla Llerena








.
ME INTERESA FW Y XHB POR SER OPEN SOURCE
Vladimir Zorrilla
 
Posts: 225
Joined: Tue Feb 28, 2006 4:25 pm
Location: PERU

Re: FiveWeb de FiveTech (gratis hasta la versión 1.0)

Postby Antonio Linares » Sun Mar 03, 2013 7:39 am

Vladimir,

Con FiveWeb puedes decicir que código se ejecutará en el servidor y cual en en cliente. Por ejemplo en la cláusula:

... ACTION ( haz_algo() )

( haz_algo() ) se procesa en el servidor a priori y luego se envia al cliente.

En:

... ACTION haz_algo()

haz_algo() es código en javascript que se ejecutará a posteriori en el cliente.

Nos falta implementar algo como:

... ACTION Server( haz_algo() )

que sería para ejecutar acciones en el server a posteriori. Server() enviaría haz_algo() al server para que se ejecute alli.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41315
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: FiveWeb de FiveTech (gratis hasta la versión 1.0)

Postby Vladimir Zorrilla » Mon Mar 04, 2013 1:35 pm

Estimado Antonio

El planteamiento de 3 clases de ACTION

ACTION para algo que se procesa en el servidor a priori y luego se envia al cliente.

ACTION haz_algo() que es código en javascript que se ejecutará a posteriori en el cliente.

ACTION Server( haz_algo() ) que creo seria que el navegador le diga que haga algo
al servidor una vez cargada la pagina.

Bueno este ultimo es AJAX y logicamente por estar planteado fiveweb a tener todo en un solo
codigo obliga a plantear algo asi.

Al estar separado el codigo del lado del cliente en Javascript la comunicacion con el lenguaje del
servidor es simple de entender.

Por ejemplo aqui envio desde el navegador la cuenta 121220 para que el servidor lo valide, lo recibe en el array asociativo lacu en valida.php

$.get("valida.php", { lacu : "121220" },function(data)
{

Y luego me devuelve la respuesta en data

existenciadecuenta(data,cuenta)
});

Y asi me comunico con el servidor todas las veces que necesite y el me responde en data.

Mi humilde opinion es que fiveweb deberia encargarse de la capa de presentacion (html css) y permitir vincular un archivo (micodigo.js)
que me permita conectarme con el servidor atraves de AjaX .
Ademas me deberia exigir que use un ID en los comandos para identificar los elementos en el DOM posteriormente con JavaScript

@0,10 GET cuenta of oDlg eso esta incompleto

@0,10 GET cuenta ID "vcuenta" of oDlg eso esta completo

vcuenta seria el ID de la etiqueta que se crearia en html.


Se me imagina que el codigo podria quedar mas o menos asi.


#include "FiveWeb.ch"

function Main()

local oDlg,cuenta=space(5),objq,oMySql

SCRIPT javascript "micodigo.js"

DEFINE DIALOG oDlg TITLE "FiveWeb Agregar Cuentas" SIZE 600, 400

@0,0 SAY 'CUENTA' of oDlg
@0,10 GET cuenta ID "vcuenta" of oDlg
@2,18 BUTTON ' Aceptar ' ACTION oDlg:END() SIZE 52,12

ACTIVATE DIALOG oDlg


Al llegar al navegador y ver el codigo fuente la parte traducida en html referente a los get y botones seria

<body>
Cuenta
<input type="text" id="vcuenta" />
<input type="button" name="boton" value="Aceptar" onclick="validar()" />
</body>


Desde aqui con funciones Javascript nos comunicamos con el servidor que correria
codigo fw/harbour o xharbour por ejemplo para validar esa cuenta

function validar()
{
var lacuenta
lacuenta= document.getElementById('vcuenta');
$.ajaxSetup({async:false});
$.get("valida.prg", { lacu : cuenta },function(data)
{
existenciadecuenta(data,cuenta)
});
return true;
}


Gracias por los comentarios

Vladimir Zorrilla Llerena
ME INTERESA FW Y XHB POR SER OPEN SOURCE
Vladimir Zorrilla
 
Posts: 225
Joined: Tue Feb 28, 2006 4:25 pm
Location: PERU

Re: FiveWeb de FiveTech (gratis hasta la versión 1.0)

Postby Antonio Linares » Mon Mar 04, 2013 3:59 pm

Vladimir,

En el ejemplo otto.prg en FiveWeb/samples ves de que forma tan sencilla se puede hacer en FiveWeb:

Code: Select all  Expand view
  @ 260, 160 BUTTON "Ok" OF oDlg ;
      ACTION document.location = "otto.exe?add:" + ;
                                 document.getElementById( "oGet1" ).value + ":" + ;
                                 document.getElementById( "oGet2" ).value + ":" + ;
                                 document.getElementById( "oGet3" ).value


Como ves, se va a ejecutar código javascrip ( document.location = ... )

Por otra parte, como FiveWeb usa JQuery UI de forma automática, lo que hacemos es usar el propio soporte de Ajax que ofrece JQuery UI. La clase TBrowse de FiveWeb lo usa asi:

Code: Select all  Expand view
METHOD Activate() CLASS TBrowse

   if Empty( ::cAlias )
      ? "<script>"
      ? '$( "#' + ::cVarName + '" ).load( "' + ::cUrl + '" );'
      ? "</script>"
   endif  
   
return nil


Ese método load() llamado es la carga en Ajax de esa cUrl. Muy sencillo :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41315
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: FiveWeb de FiveTech (gratis hasta la versión 1.0)

Postby diegopolverelli » Tue Mar 12, 2013 5:54 pm

Disculpá, Antonio: Me bajo esto http://code.google.com/p/fiveweb/downlo ... p&can=2&q=, y después como arranco???
perdón la burrada, eh... pero me interesa esto del fiveweb, pero necesito media vueltita para arrancar... despues una vez que enciendo, pongo segunda, y no jorobo tanto, pero la parametrizacion inicial siempre me costo.
Atte.
diegopolverelli
 
Posts: 149
Joined: Thu Jun 21, 2007 3:26 pm

Re: FiveWeb de FiveTech (gratis hasta la versión 1.0)

Postby Antonio Linares » Tue Mar 12, 2013 7:44 pm

Diego,

Lo primero que debes es decidir si vas a usarlo en un servidor Windows, Linux ó en un servidor Apple. Aunque esto no es necesario para empezar a hacer pruebas y familiarizarte con él.

Una vez lo descargues, ejecuta el fichero go.bat para que se construya FiveWeb. Luego ve a la carpeta samples y ejecuta build.bat tutor01. El EXE resultante lo copias a la carpeta CGI-BIN del servidor web. Con esto es suficiente para comenzar :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41315
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: FiveWeb de FiveTech (gratis hasta la versión 1.0)

Postby diegopolverelli » Tue Mar 12, 2013 8:01 pm

Me da este error (ERROR 1) y si cambio el path del c:\bcc582 (yo tengo el bcc55), me sale este error (ERROR 2):


ERROR 1:

C:\Fivewin\FIVEWE~1.2>win-make.exe --makefile=Makefile_win
.\..\harbour\bin\harbour source/function/fiveweb.prg -o.\obj/fiveweb.c -n -I.\..
\harbour\include -I.\include
Harbour devel build 1.1-0 Intl.
Copyright 1999-2007, http://www.harbour-project.org/
Compiling 'source/function/fiveweb.prg'...
Lines 957, Functions/Procedures 10
Generating C source output to '.\obj/fiveweb.c'... Done.
c:\bcc582\bin\bcc32 -c -I./../harbour/include -oobj/fiveweb.obj obj/fiveweb.c
process_begin: CreateProcess(NULL, c:\bcc582\bin\bcc32 -c -I./../harbour/include
-oobj/fiveweb.obj obj/fiveweb.c, ...) failed.
make (e=3): El sistema no puede hallar la ruta especificada.
win-make.exe: *** [obj/fiveweb.obj] Error 3
rm obj/fiveweb.c


ERROR 2:

C:\Fivewin\fiveweb_1.2>win-make.exe --makefile=Makefile_win
Makefile_win:30: *** missing separator (did you mean TAB instead of 8 spaces?).
Stop.

ayuda, please...!!!
Gracias...!!!
diegopolverelli
 
Posts: 149
Joined: Thu Jun 21, 2007 3:26 pm

Re: FiveWeb de FiveTech (gratis hasta la versión 1.0)

Postby Antonio Linares » Tue Mar 12, 2013 9:09 pm

En la línea 30 de Makefile_Win borra los espacios y usa tabs en su lugar
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41315
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: FiveWeb de FiveTech (gratis hasta la versión 1.0)

Postby Marcelo Roggeri » Wed Mar 13, 2013 1:51 am

Hola Antonio, he probado los ejemplos bajo Windows y funcionan todos, he instalado wamp y seguido lo qe han sugerido asi que a la espectativa de otros nuevos avances.
Ahora me toca probar lo mismo bajo la plataforma linux, que tan pacientemente me ha ayudado Carlos Vargas, el tema es que aca voy muy despacio por el desconocimiento que tengo de los comandos de linux.
Pero es necesario ya que los costos de un servidor de pago difiere mucho de uno al otro.
Saludos
Marcelo
FWH - Harbour - BCC7 - PellesC
User avatar
Marcelo Roggeri
 
Posts: 325
Joined: Sat Jul 22, 2006 9:04 pm
Location: Venado Tuerto - Santa Fe -Argentina

Re: FiveWeb de FiveTech (gratis hasta la versión 1.0)

Postby Antonio Linares » Wed Mar 13, 2013 3:41 am

Marcelo,

Si, asi es, los servidores en Linux son mucho más económicos y son los más usados :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41315
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: FiveWeb de FiveTech (gratis hasta la versión 1.0)

Postby Rolaci » Mon Mar 25, 2013 4:28 pm

Hola!; estoy probando Fiveweb en Ubuntu 64, hice andar wampp (hay que toquetearlo bastante ya que es de 32 bits), y hay un par de ejemplos que tiran error, cuando en 32 bits (ubuntu) no lo hacian, no se si se cambio algo o estoy haciendo algo mal yo, compilan perfecto, pero:
el TESTSAY TIRA:

FiveWeb error

Application
===========
Path and name: /opt/lampp/cgi-bin/testsay (32 bits)
Time from start: 0 hours 0 mins 0 secs
Error occurred at: 03/25/13, 13:05:36
Error description: Error BASE/1003
Variable does not exist: SUPER

Stack Calls
===========
Called from TSAY:NEW(26)
Called from MAIN(11)

Variables in use
================
Procedure Type Value
==========================
TSAY:NEW
Param 1: O Class: ERROR
MAIN
Param 1: N 20
Param 2: N 20
Param 3: C "Hello world"
Param 4: N 300
Param 5: N 40
Param 6: O Class: TDIALOG
Param 7: C "oSay"
Param 8: U nil
Param 9: U nil
Local 1: U nil
Local 2: U nil
Local 3: U
Local 4: S

Linked RDDs

Y el Testbrow:

FiveWeb error

Application
===========
Path and name: /opt/lampp/cgi-bin/testbrow (32 bits)
Time from start: 0 hours 0 mins 0 secs
Error occurred at: 03/25/13, 13:25:33
Error description: Error BASE/1003
Variable does not exist: SUPER

Stack Calls
===========
Called from TBROWSE:NEW(38)
Called from MAIN(11)

Variables in use
================
Procedure Type Value
==========================
TBROWSE:NEW
Param 1: O Class: ERROR
MAIN
Param 1: N 10
Param 2: N 10
Param 3: N 980
Param 4: N 477
Param 5: O Class: TDIALOG
Param 6: C "oBrw"
Param 7: C
"http://www.fivetechsoft.net/fiveweb/mybrowse.php?name=clients"
Local 1: U nil
Local 2: S
Local 3: U nil
Local 4: U nil
Local 5: U

Linked RDDs


Saludos!
Roberto
Rolaci
 
Posts: 20
Joined: Fri Dec 16, 2011 4:17 pm

Re: FiveWeb de FiveTech (gratis hasta la versión 1.0)

Postby hmpaquito » Mon Mar 25, 2013 4:58 pm

Rolaci,

El problema es un tema relacionado con harbour.
El problema viene del hecho de que tras una release en harbour, la variable Super ya no está disponible, y en su lugar hay que usar la DATA Super. Eso en la práctica se traduce en que HAY QUE SUSTITUIR en los archivos prg la variable Super por ::Super y eso es todo.

Saludos
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

PreviousNext

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 92 guests