Que saben de Fox In Cloud

2,416 views
Skip to first unread message

David Castro

unread,
May 5, 2015, 1:18:11 PM5/5/15
to publice...@googlegroups.com
Vi por ahí que hay una herramienta llamada Fo In Cloud, alguien que sepa sobre ella y me pueda comentar, es buena, mala, medio sirve o no, cualquier opinión sera bienvenida, tengo unos sistemas en Fox y quiero empezar a ver como los pongo en web.

Atte: David Castro.

Victor Espina

unread,
May 5, 2015, 2:02:10 PM5/5/15
to publice...@googlegroups.com
FoxInCloud es un producto que permite tomar un sistema normal hecho en VFP y "servirlo" para que sea consumido via web.  Lo que hace el producto basicamente es:

a) Generar una representación HTML de un formulario
b) Capturar los eventos generados en el browser (como keypress, mousedown, etc), pasarlos al servidor, esperar la respuesta y ajustar el browser para mostrar el resultado de la acción

Para esto FoxInCloud requiere que el código VFP cumpla con ciertos requerimientos, que en teoria no son difíciles de cumplir.  Ellos proporcionan una herramienta que analiza tu código, detecta las incompatibilidades y te indica claramente que modificar y donde hacerlo.  Según su propaganda, solo el 1% del código deberá ser modificado para adaptarlo a FoxInCloud.

Ahora la realidad (segun lo que he leido) no es tan perfecta.  La compatibilidad del código depende mucho de como esta programado el sistema.  Sistemas que hacen las cosas de una forma basica, siguiendo los ejemplos de VFP y sin mucho "rebusque" puede que efectivamente solo necesiten cambios en un 1% del código;  pero sistemas mas complejos, donde se usan técnicas mas o menos avanzadas o controles de terceros (como FoxyPreviewer,  RibbonBar, Foxbarcode, etc)  probablemente necesiten de mucho mas retrabajo para que funcionen sobre FoxInCloud.

Una vez lograda la compatibilidad su sistema podrá ser accesado desde un browser a traves de internet... pero no se va a comportar como una aplicación Web nativa... lejos de eso.   Los usuarios actuales del sistema puede que se adapten rapidamente pues estaran viendo basicamente lo mismo que veían antes en su escritorio, pero los nuevos usuarios (sobre todo si ya han tenido experiencia con aplicaciones web reales) no lo van a tomar tan alegremente pues la app no se comporta como ninguna otra aplicación web.  Y, ademas, no es responsive así que no podrás acceder a tu aplicación desde dispositivos mobiles, o al menos no con una usabilidad decente.

Conclusion: si necesitas algo rapido para poder acceder a tu sistema via internet, y la combinación VPN + Terminal Service no es una opción,  FoxInCloud puede solucionar... pero no me parece que sea una opción viable para obtener una version web real de una aplicación vfp.  Para obtener una aplicación Web REAL a partir de una aplicación VFP sigo pensando que el mejor camino es ActiveVFP:  tendras que rehacer toda la parte visual, pero al menos los procesos y los reportes pueden ser reusados prácticamente sin cambios, y obtendrás una aplicación web-responsive, que se ve y se comporta como una aplicación web normal, cualquiera sea el dispositivo desde donde la accesen.


Victor Espina

David Castro

unread,
May 5, 2015, 2:22:20 PM5/5/15
to publice...@googlegroups.com
Estimado don Victor, perdona la ignorancia, pero dos cosas: que es VPN + Terminal Service, y dos, que es ActiveVFP.

Atte: David Castro.
        Programador.

Fernando D. Bozzo

unread,
May 5, 2015, 2:34:56 PM5/5/15
to publice...@googlegroups.com
Hola David:

Creo que es más rápido si lo buscás en Google.

Victor Espina

unread,
May 5, 2015, 2:37:44 PM5/5/15
to publice...@googlegroups.com
VPN es Virtual Private Network.  Es una tecnologia que permite que un equipo ubicado remotamente se conecte a una red local de forma seguroa usando Internet como capa de transporte.  Terminal Service (o Remote Desktop Protocol) es una tecnologia de Microsoff que permite iniciar una sesion en un servidor desde estaciones conectadas a la red.  Con esto se logra que en lugar de instalar el sistema en las estaciones, lo instalas solo en el servidor y las estaciones lo que hacen es iniciar una sesion remota en el servidor y ejecutar el sistema localmente desde el servidor.

En muchas situaciones, cuando tienes una estacion remota donde deseas acceder a tu sistema, lo que se hace es establecer una conexion VPN con el servidor central y, a traves de esa conexion, ejecutar el sistema a traves de una sesion de Terminal Service.  Si la conexion es medianamente decente (digamos unos 2 MBPS) la experiencia es bastante buena.

ActiveVFP es un producto opensource que funciona como un preprocesador para solicitud Web (al estilo de PHP o ASP).  Basicamente, cuando se le solicita al servidor web un archivo con extension .AVFP, el servidor web invoca a ActiveVFP y le pasa el requerimiento. ActiveVFP analiza el archivo (que contiene codigo HTML, CSS, Javascript y tambien VFP) y busca segmentos de codigo VFP, los ejecuta, e inyecta el resultado en el HTML a devolver.  Por ejemplo, supongamos que tenemos esta pagina web:

test.html
<html>
<body>
 
<h1>Esta es una pagina HTML normal</h1>
</
body>
</html>


al pedir esta pagina al servidor, el resultado sera algo como :

Esta es una pagina HTML normal


Pero, si le cambiamos la extension a .AVFP, podemos insertar codigo VFP:

test.avfp
<html>
<body>
 
<h1>Esta es una pagina AVFP</h1>
 VFP Version: <%= VERSION() %>
</
body>
</html>


El resultado sera:

Esta es una pagina AVFP
VFP Version Visual FoxPro 09.00.0000.5411 for Windows


Con esto, puedes crear paginas web que usen código VFP tanto para inyectar contenido en las paginas HTML como para ejecutar acciones en el servidor, almacenar y recuperar datos desde DBFs en forma nativa, etc.  Es decir, con ActiveVFP se pueden programar aplicaciones Web tradicionales pero usando VFP como lenguaje en lugar de PHP, .NET o Java.


Saludos

Victor Espina

unread,
Feb 9, 2019, 9:38:58 AM2/9/19
to Comunidad de Visual Foxpro en Español
Thierry Nivelet, fundador de FoxInCloud, se contacto conmigo a traves de Linkedin para pedirme tradujera y les hiciera llegar sus observaciones sobre este post que escribí hace ya varios años.  Anexo a continuación mi traducción y el texto original en inglés:


Acerca del 1% de codigo que necesitaria adaptacion:
---------------------------------------------------
El % de codigo que necesitaria cambios esta basado en un detallado analisis sobre mas de 4,500 proyectos de todas partes del mundo, analizados por FAA y compartidos por los usuarios: http://foxincloud.com/shared-projects.php.
Este % ha estado creciendo ligeramente con el tiempo; solia estar por debajo del 1% pero hoy en dia esta mas cercano al 1.3%. Proyectos mas grandes tienden a necesitar un menor % de adaptaciones que proyectos mas pequeños.
Si el FAA detecta literalmente todo lo que necesita de la atencion del programador, el time que toma lograr dichas adaptaciones dependera de la habilidad del programador para entender y considerar ciertos aspectos especificos de FoxInCloud y del desarrollo web en general:
- Como muchos otros frameworks, FoxInCloud esta basado en asumpciones y principios subyacentes que el desarrollador necesita **entender** y dominar, razon por la cual proporcionamos el FoxInCloud Live Tutorial, donde los usuarios pueden 'levantar la capota' y ver el codigo fuente completo en linea y en su propio IDE VFP: http://foxincloud.com/tutotest/.
- Como cualquier aplicacion web, un servidor de aplicaciones FoxInCloud es capaz de servir no solo a un usuario, como una aplicacion de escritorio, sino a cualquier cantidad de usuarios; aun mas, varios servidores logicos o fisicos pueden servir a cualquier usuario, estableciendo relaciones de muchos-a-muchos entre usuarios y servidores; la manera de trabajar "sin estado" es confusa para muchos programadores acostumbrados a aplicaciones individuales para un solo usuario; de nuevo, ellos necesitan entender como un codigo diseñado inicialmente para relaciones 1-1 puede trabajar en un ambiente n-n.
Este post sumariza los puntos principales que hay que atender cuando se esta adaptando una aplicacion a la web: http://foxincloud.com/blog/2018/04/17/why-how-adapt-your-app-for-web.html
Los usuarios de FAA pueden personalizar la unidad de tiempo por adaptacion basados en sus propias experiencias, y tomar en consideracion su propia curva de aprendizaje.
El % de adaptaciones toma en consideracion cualquier libreria de terceros o framework incluido en el proyecto de la aplicacion. Dado que FoxInCloud no hace diferencia entre el codigo de usuario y el codigo de librerias, estos modulos necesitan ser adaptados al igual que el resto de la aplicacion.
El verdadero punto es sobre adaptar librerias de terceros que involucran una interfaz de usuario, o frameworks; no tanto FoxyPreviewer, que muchas aplicaciones FoxInCloud ya utilizan (http://foxincloud.com/tutotest/bs/report.tuto), o FoxBarcode, pero otras como ribbonbar o Ctl32, debido a que esas librerias ya no son mantenidas (o mejoradas) nostros en FoxInCloud deseariamos que un grupo de programadores se unieran a nuestros esfuerzos en algun tipo de repositorio GitHub para lograr adaptarlas (lo cual añade dependencias en la capa publica de FoxInCloud https://github.com/FoxInCloud/FoxInCloud-AB).  Hasta ahora no hemos podido llegar a ese punto; pudimos reunir 5 desarrolladores dispuestos a adaptar Promatrix, pero ningun tomo el liderazgo realmente como para poder empezar.

Acerca de la apariencia de FoxInCloud comparado a otras aplicaciones Web:
-------------------------------------------------------------------------
No hay realmente nada que haga alguna diferecnia, especialmente desde que implementamos response HTML Rendering en el 2017.  Muchos clientes de FOxInCloud estan felices de vender sus aplicaciones web sin tener que responder a la pregunta de "en cual lenguaje esta desarrolado esto?".  De hecho, las aplicaciones web FoxInCLoud tienen una UI mucho mas rica y avanzada que muchas aplicaciones web que existen por ahi:
- Full AJAX
- Full HTML5/CSS3
- Soporte para todos los controles VFP (excepto toolbar y formset), incluyendo grid y algunos ActiveX (treeview, IE, pronto tambien RTF)
- Estados de usuario completamente soportados
- Todo el codigo de negocios del lado del servidor
- Tiempos de respuesta por debajo de 1s
Cualquiera puede probar una aplicacion web FoxInCloud responsive, y ver el codigo subyacente, aqui: http://foxincloud.com/tutotest/bs/
El desarrollador tiene un panel de control fantastico sobre su aplicacion: http://foxincloud.com/tutotest/bs/foxincloud_status.tuto
FoxInCloud ha estado en produccion por mas de 7 años ya, en aplicaciones bastante complejas, con bases de datos SQL o VFP, o tablas libres, sin errores (100% SLA) durante varios dias, con mas de 30 usuarios concurrentes, con mas de 40k peticiones por dia (2 billones de instrucciones VFP ejecutadas cada dia).


Texto original en Inglés:

About 1% code adaptation
The % of code needing an adaptation is based on a thorough analysis of over 4,500 projects from all around the world analysed by FAA and shared by users: http://foxincloud.com/shared-projects.php.
This % is slightly increasing over time, used to be under 1%, today closer to 1.3 %.
Larger projects tend to have smaller % than smaller projects.
If FAA detects literally everything that need developer's attention, the time it takes to achieve the code adaptation depends on the ability to understand and keep in mind some specificity of FoxInCloud and Web development in general:
- like with any frameworks, FoxInCloud is based on assumptions and underlying principles that the developer needs to **understand** and to take a grasp upon; reason why we release the FoxInCloud Live Tutorial, where users can 'lift the hood' and see the full source code both on line and in their own VFP IDE: http://foxincloud.com/tutotest/
- like any web application, a FoxInCloud Application Server is able to serve not just one user like in a desktop application, but any user; moreover several logical or physical servers can serve any user, making a many-to-many relation between users and servers; this 'stateless' way of working is misleading for many developers used to a single app instance for a single user; again they need to understand how a code initially designed for a 1-1 relationship can work in a n-n environement.
This blog post summarises the key points to address when adapting an application to the web: http://foxincloud.com/blog/2018/04/17/why-how-adapt-your-app-for-web.html
FAA users can customise the unit time per adaptation based on their own experience, and take into account their own specific learning curve.
The % of adaptation takes into consideration any third party library or framework included in the application project. As FoxInCloud makes no difference between user code and library code, these modules need be adapted like the rest of the application.
The real question is about adapting third-party libraries involving a user interface, or frameworks; not so much FoxyPreviewer that many FoxInCloud applications already use (http://foxincloud.com/tutotest/bs/report.tuto), or Foxbarcode, but ribbonbar or ctl32; as these libraries are no longer maintained (no more evolutions) we at FoxInCloud wish a group of developers would join their efforts in some kind of GitHub repo to get them adapted (which adds dependencies on FoxInCloud public layer https://github.com/FoxInCloud/FoxInCloud-AB). So far we could not get to that point; we could gather 5 developers wanting to adapt Promatrix, but no one really took the lead to get started.
About the look and feel of FoxInCloud compared to other Web Applications,
There's really nothing that make any difference, especially since we implemented responsive HTML rendering in 2017. Many FoxInCloud clients are happy to sell their Web Applications without having to answer the question "which language is it developed with?". In fact  FoxInCloud Web Application are far richer and more advanced than many web applications out there:
- full AJAX
- full HTML5/CSS3
- Support for all VFP controls (except toolbar and formset), including grid and some activeX (treeview, IE, soon RTF)
- Fully manages user state
- All business code on server side
- response time below 1 s.
Anyone can test a responsive FoxInCloud Web Application, and see the underlying code, here: http://foxincloud.com/tutotest/bs/
Developer has a fantastic control panel over his application: http://foxincloud.com/tutotest/bs/foxincloud_status.tuto
FoxInCloud has been in production for more than 7 years now, on very complex applications, with either SQL or VFP database or free tables, with 0 errors (100% SLA) on several days, over 30 concurrent users, over 40k requests per day (2 billion VFP instructions executed every day).


Dsan

unread,
Feb 9, 2019, 12:34:58 PM2/9/19
to publice...@googlegroups.com
Excelente Victor,

Desde un inicio le di seguimiento hace años al nacimiento de de FoxinCoud igual que Lianja, este ultimo empezó bien, luego su ide se desvio del tema y eso no le gustó a la mayoria de foxero que gran parte se fueron a .net otros siguen en vfp aun con sus pos  y contra.

Desde mi punto de Vista, FoxInCloud esta bien, No le veo problema al % de adaptación, ya que eso depende de los programadores o codigo propietario, he visto codigo aun a estas alturas, que a mi parecer si le pasaras la herramienta de FoxIncloud daria un 90%, y eso no es culpa de FoxInCloud..

El punto es que FoxinCloud, tiene un precio muy alto  como si fuese una herramienta de desarrollo completa, el precio que vi hace años es demasiado caro, yo lo quice adaptar a una empresa con 4 Sucursales, cada Sucursal tieene entre 10  a 20 Usuarios,  Administrador, Contador, 2 Auxiliares, 3 Facturadores en el local y 4 Vendedores Foraneos que andan en las calles.   cada uno de estos con un Dispositivo VPN,

Ahora me Pregunto, Cuanto costaria una implementación de ese tipo?, no me imagino, ahora si yo tengo 3 clientes mas con otro tipo de Aplicación las cuales me gustaria adaptarlas, y el foxero tendria que tomar en cuenta  1. Adaptación, 2 Aprender nuevos Lenguaje php + javascript + otras hierbas aromaticas,y esto ultimo no es critica, ya que estoy claro que asi es el ambiente web, no hay algo unico, hay que tirarle php javascript css, jquery... cada cosa para ir mejorando el estilo etc.

Pienso yo que FoxInClud deberia hacer lo que hacen las tiendas, cuando el producto esta mucho tiempo en el inventario y no se vende, y aprovechar a los muchos pocos jajaja,  de foxero que quedamos y venderlo (Liquedar y recuperar Costo de desarrollo asi como el costo los Servidores donde se alojarian los que deseen hacer uso de ese)

Saludes y espero que Thierry Nivelet lea esto ultimo, aunque use google traslate.

DSanchez



























Celular: 8350-3994 CL
Celular: 7631-9176 Mv


FoxInCloud

unread,
Feb 10, 2019, 1:04:37 PM2/10/19
to Comunidad de Visual Foxpro en Español
Douglas

La licencia base de FoxInCloud ($ 549):
- cubre 10 ** usuarios concurrentes **, suficiente para 20 usuarios nombrados como el ejemplo que describe;
- Es una licencia permanente, no una suscripción anual como Lianja.

Yo usas la aplicación. Para 5 años, es de $ 5 por usuario por año, $ 0.5 por usuario por mes; Más barato que un café.

No estoy seguro de por qué quiere usar php en un proyecto de FoxInCloud ... una aplicación web de FoxInCloud no requiere ninguna codificación del lado del servidor, en php o en cualquier otro idioma.

FoxInCloud está en producción en cientos de servidores en todo el mundo y no se ha mantenido en el inventario por el tiempo que imagina.

Aclamaciones

Douglas,

The FoxInCloud base license ($ 549):
- covers 10 **concurrent** users, enough for 20 named users as in the example you describe;
- is a permanent license, not a yearly subscribtion like Lianja.

I you use the app. fro 5 years, it's $5 per user per year, $0.5 per user per month; cheaper than a coffee.

Not sure why you wanna use php in a FoxInCloud project… a FoxInCloud Web Application does not require any server-side coding, in php or any other language.

FoxInCloud is in production in hundreds of servers around the world, and has not stayed in inventory for long as you imagine.

Cheers

leviatanMX

unread,
Jun 1, 2023, 1:05:51 PM6/1/23
to Comunidad de Visual Foxpro en Español
ya olvidense de eso.. ya evolucionen..!! nada es eterno

Aarón Delgado

unread,
Jun 1, 2023, 3:22:42 PM6/1/23
to publice...@googlegroups.com
Aquí una noticia muy buena para desarrollar gratis en la web.
1. Html5, Javascript y CSS (fonrtEnd)  .... 0.00 usd
2. PHP o ASP.NET o Python (backEnd)... 0.00 usd
3. Visual Studio Code (editor o ide desarrollo) ....0.00 usd ............ una ganga todo por 0.00usd.

Lo único que pagarás será el hosting o servicio cloud.


Saludos cordiales;

DELGADO JAIMES, Roberto Aarón
Fijo: 013969545 /  Movistar: 988316319



--
Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/38f51156-1daa-45b6-b2c0-d39b7788fdf0n%40googlegroups.com.

Victor Espina

unread,
Jun 1, 2023, 4:19:37 PM6/1/23
to Comunidad de Visual Foxpro en Español
100% de acuerdo.  Para mi este sigue siendo el mejor camino (no necesariamente el mas facil ni el mas corto, eso si).  A tu lista le añadiria Angular o Vue.

Saludos

Victor Espina

Allan Raúl Acuña

unread,
Jun 1, 2023, 4:28:22 PM6/1/23
to Comunidad de Visual Foxpro en Español

Asi es Victor y sobre todo:  Tienes el control de TODO.

Saludos cordiales.

Lic. Allan Raul Acuña
Analista Programador
msn= allan...@hotmail.com
skype= NicEasySoft
            +(505) 8 999 8950
Managua, Nicaragua
Centroamerica

De: publice...@googlegroups.com <publice...@googlegroups.com> en nombre de Victor Espina <vesp...@gmail.com>
Enviado: jueves, 1 de junio de 2023 14:19
Para: Comunidad de Visual Foxpro en Español <publice...@googlegroups.com>
Asunto: Re: [vfp] Re: Que saben de Fox In Cloud
 

Carlos Miguel FARIAS

unread,
Jun 1, 2023, 7:26:21 PM6/1/23
to publice...@googlegroups.com
Django (en Python) te permite hacer todo la parte de abm y consultas básicas solo especificando las bases. Después lo adornas con lo que quieras del lado del cliente. Y si no es muy sofisticado, lo haces con Flask.
Algo similar con PHP (creo que es Laravel).
Si te gusta un código limpio y corto, mejor Python, si no tienes problema que tu programa sea vea como una mezcla de Java, JS y otras cosas, PHP también resulta.
Y Visual Code, codificas a mil.
Mis 20 pesos argentinos (+/- 5 centavos de dólar) 😪😁

Reply all
Reply to author
Forward
0 new messages