Decidiendo el cambio de VB6 a Xojo

Buenas a todos, este es mi primer post.

Soy de Perú, programador en VB6, tengo sistemas hechos y estables durante años, he desarrollado algunas funcionalidades en web y en moviles estoy usando B4A. Estuve viendo la alternativa de cambio para el escritorio y navegando en youtube buscando alternativas de IDEs y Lenguajes me he topado con xojo (me llamo por lo similar del código con VB6) y toda la suite que contiene para usarlo en diferentes plataformas, me esta pareciendo muy pero muy bueno y antes de entrar mas en el estudio de esta herramienta para decidir finalmente si usarlo o no tengo algunas inquietudes.

1.- A nivel de Windows, mis aplicaciones serán exe (ejecutables)? Es decir, con VB6 si realizo una aplicación que usa controles intrínsecos y sin conexión a base de datos solo basta con copiar el ejecutable y este funciona. Claro que si uso otros controles es necesario registrar sus componentes.

2.- Con VB6 el exe generado tiene cierto nivel de protección del código, no como en .Net que habría que ofuscar para proteger el codigo. ¿Xojo compila con algun grado de protección del código fuente?

3.- No he encontrado (aunque si busco quizá lo encuentre) los controles tipo grid o grilla, en VB6 uso el MSHFlexGrid el cual es muy potente aunque no es editable.

4.- En VB6 uso el reporteador propio del VB6 llamado DataReport, he resuelto mucho con el pero tiene limitaciones, una de ellas es que no puedo poner imágenes en el detalle ¿se puede con el de Xojo?

5.- Xojo permite trabajar con imágenes png? (en vb6 no se puede, para hacerlo debo de valerme de un UC (control de usuario))

6.- VB6 es de un solo hilo, por lo que vi Xojo permite multihilo ¿es asi ?

Bueno tengo mas preguntas pero de momento quisiera ir leyendo un poco lo que me puedan responder. Muchas gracias

1- si
2- es necesario ofuscar las contraseas. se hace de una forma muy facil con una clase gratuita. lo demas creo que no tiene sentido ofuscarlo
3- existe el control listbox que es muy potente para uso general. para algunas cosas mas detalladas o especificas es necesario crear un control personalizado, o se puede comprar uno ya hecho que tiene muchas opciones mas
4- xojo tiene un reporteador integrado, pero es basico. para cosas mas avanzadas necesitaras adquirir un reporteador externo o puedes crear el tuyo propio
5- si
6- si pero no. o no pero si :slight_smile: tienes que leer mas sobre esto para entender como funciona

si tienes mucho codigo ya escrito con otros lenguajes quizas sea mejor seguir utilizando lo anterior asi como esta y el codigo nuevo empezar a escribirlo con xojo

no soy experto como muchos otros aqui en este foro, pero al menos aqui tienes respuestas basicas como para empezar. si tienes mas dudas puedes publicarlas en el foro y estare atento para ayudar en lo que pueda
hay muchisimo material util en el blog y en el foro sobre casi cualquier tema

Hola Yvan,

Bienvenido,

Xojo crea un ejecutable y copia las librerías que necesita, normalmente necesita varias, así que debe copiar el ejecutable generado y las librerías.

Xojo compila en lenguaje de máquina, mucho más difícil de decompilar q .NET, pero recuerde que los hackers tienen assembler, y ante eso nadie puede “protegerlo”.

Ufff, esa es la queja principal, no hay un control tan bueno como en VB, hay controles de terceros, pero son limitados.

Hay varias opciones, está el reporteador que viene con xojo, List & label, valentina, shorts y el mio, DBReport.

Otros controles/librerías aquí.

Tiene soporte multihilos, pero sólo utiliza un procesador de la máquina, si quiere utilizar al máximo los procesadores debe hacer una “App helper”, mire este post.

Hola @Yvan Acosta

Bienvenido a la comunidad Xojo!

Sobre las respuestas anteriores, sólo apuntar que si buscas información de ayuda a la hora de migrar tus proyectos desde VisualBasic a Xojo, es probable que te interese la información de este artículo: Migrar proyectos VisualBasic a Xojo

Por otra parte, si bien en la actual versión Xojo permite crear múltiples hilos de ejecución todos ellos utilizan un núcleo del procesador. Para emplear todos los núcleos posibles, se deben de utilizar aplicaciones de Consola (denominadas Helpers, como bien indica @Bernardo Monsalve) e invocarlas desde la app principal. Encontrarás como hacerlo entre los múltiples proyectos de ejemplo que se proporcionan junto con el IDE.

A diferencia de lo que ocurre con VisualBasic, C# (.NET) y el producto generado con otros entornos de desarrollo, las aplicaciones generadas con Xojo son compiladas, sin código intermedio que pueda ser fácilmente decompilado. Obviamente, tal y como ocurriría con las aplicaciones creadas en C, C++ o incluso en propio Assembler, siempre es posible revertir o escudriñar el código máquina genereado… pero eso ya es otro nivel. Lo importante es que sólo debes ocuparte de ofuscar las cadenas de texto que puedan contener información “sensible” en el producto.

A medida que tengas más dudas… aquí estamos para ayudarte en lo que podamos!

Javier

Primeramente y antes que nada MUCHSIMAS gracias por las prontas respuestas, estoy en diversos foros temticos y esta es la primera vez que recibo tan rpido y tan nutridas respuestas. Despus de 8 horas llega a casa a ver si al menos tenia visitas la pregunta, eso es muy pero muy bueno :slight_smile:

Voy a checar que tipo de licencia me vendra bien como programador independiente.

Una pregunta mas estimado porque Xojo no esta en Android? Bien que este para IOS sin embargo en el mercado en el que se mueve mi software mis clientes son 99% Android Saben si hay planes para ello? Muchas gracias.

Android se encuentra actualmente en desarrollo y debera estar disponible en 2018 si todo va bien. Pero Xojo nunca hace promesas prematuras antes de que una caracterstica est realmente disponible.

Yo mismo estaba usando VB cuando cambi a Xojo en 2001.

Hola @Yvan Acosta

Sobre las licencias, si tienes previsto crear y desplegar para múltiples plataformas (consola, Desktop, Web, iOS, RaspberryPI… y Android, cuando esté disponible)… entonces tira por la Licencia Pro. Además, tendrás otra serie de ventajas adicionales.

Ten en cuenta que ofrece compilación y depuración cruzada (también disponible en la licencia Desktop, claro). Es decir, podrás utilizar el IDE sobre tu plataforma favorita (Windows?) y probar sobre equipos macOS, Windows y Linux que estén en la red (o remoto); por ejemplo.

Además de soportar todas las plataformas de despliegue, con la licencia Pro también podrás tener instalada la licencia (es decir, ejecutar el IDE) hasta en tres equipos del mismo o diferentes sistemas operativos, y acceso a foro exclusivo.

Javier

Yvan, uno de los puntos que me convencieron para adquirir Xojo fue la comunidad en este foro. Mucha gente te ayuda, ya sea en espaol o en ingls. Encuentras ideas y ejemplos muy interesantes aqu.

En cuanto a la licencia, he visto un par de cdigos que te hacen un descuento. Recuerdo que vi uno en un webinar de febrero, casi al final del video, puedes ver el canal de Xojo en YouTube. Creo que tambin pusieron un cdigo en el foro pero no recuerdo cundo.

Ya est prximo el XDC, Xojo Developers Conference. Te puedo decir que ah van a hablar de el soporte Android y nueva versin para Web apps. Me imagino que la primera versin Xojo 2018 pueda estar saliendo por esas fechas (Nota: no esperes que incluya lo que apenas van a anunciar en el XDC, eso debe venir despus).

Otra de las ventajas de Xojo es que puedes practicar con el programa todo el tiempo que quieras, ya que necesites generar cdigo para entregar a otros, es cuando necesitas la licencia y sta incluye actualizaciones por 1 ao.

Saludos

Muchsimas gracias a todos. Si fuera solo por la comunidad no dudara un segundo en tomar Xojo, del lado tcnico est muy prometedora la versatilidad y eficiencia de Xojo, lo que me toca ver es el tema de licencia.
De momento no me preocupa tanto el asunto de Android ya que lo tengo resuelto con B4A, lo adquir hace unos meses y tengo los app mas importantes ya resueltos. Estas apps se comunican con mi base de datos por LAN.
El tema web tampoco es algo que me preocupe mucho porque tengo otra decisin para ello.

Asi que lo nico que quisiera DE MOMENTO es reemplazar o reescribir todo el sistema (es un software administrativo para PYMES, no es contable) en un lenguaje o framework que me permita potenciar mas todo lo que se pueda para el Sistema Operativo Windows,
Mis clientes (31 activos) tienen mi sistema en Windows 7 y Windows 8, y una de las partes mas “flacas” de mi solucin es la parte vista, mi soft hecho en VB6 no es adaptativo, tendra que escribir muchsimo cdigo para lograr eso, he hecho algn esfuerzo porque mi soft se vea menos “vb6” posible pero no me es viable escribir cdigo para las diferentes resoluciones y mantenerlo. No tengo ningn cliente Linux ni iOs u otro.

Entonces, la licencia que necesito finalmente es solo para desarrollo sobre Windows. El motor de base de datos que uso es FirebirdSQL y he visto en algn vdeo de Xojo que me puedo conectar por ODBC, entonces eso est resuelto. Para mi escenario veo que la licencia que necesito es la Desktop con un costo de $300.00 anuales. Yo adquir B4A pero la licencia es perpetua y luego si deseo hay un costo por actualizaciones y soporte, entonces voy a evaluar la conveniencia de invertir $300 anualmente ya que supongo que el ao que no renueve el IDE no trabajar. El Lite no seria mi opcin pq veo que solo trabaja con SQLite.

Finalmente ya descargu Xojo as que en la semana que viene voy a instalarlo y a jugar unos das con el para probar sus controles, la conexin a la BD, consumir algunos de mis WS, ver como se genera un instalador, ver como proteger la aplicacin al menos hasta cierto nivel, ver la capacidad del reporte, ver la eficiencia del control tipo grid, ver como manejo lo adaptativo, etc etc.

Muchsimas gracias estimados.

El IDE trabajará después del año de licencia, siempre que el SO lo soporte, es decir, que una actualización del SO haga que el IDE deje de trabajar, siempre está la opción de tener un SO viejo y ahí trabajará SIEMPRE.

No es del del todo correcto, puede adquirir el SQL plugin de MBS y funcionará con la versión Lite, puede probar antes de comprar e inclusive Xojo tiene una política de devolución de 90 días.

A @Bernardo Monsalve entonces si es licencia perpetua?? Porque claro yo trabajaría siempre con el mismo SO, es mas, siempre trabajo con maquina virtual, naturalmente no me acogería a las actualizaciones hasta que pague por ellas, eso es correcto.

Lo ultimo que comentas es interesante para tomar una decision, ¿yo podría adquirir la versión Lite ya que solo trabajaría en Windows y usar el SQL plugin de MBS para conectarme a Firebird? ¿seria así?

Hola Yvan,

La licencia es perpetua. Tienes un ao de actualizaciones desde que la compras (2 o tres actualizaciones), pero cuando pasa ese ao no deja de funcionar, nunca.

De lo de las bases de datos prefiero no contestar porque aunque creo que s la respuesta no quiero meter la pata. De todas formas, por qu no te instalas Xojo y los plugins MBS que necesites y los pruebas? Puedes hacerlo gratis.

Una cosa interesante que cuentas es que trabajas con b4a. Hay gente en el foro que usa o ha usado b4a y alguno de ellos ha dicho que es bastante parecido a Xojo, tengo la impresin que la manera de programar en b4a ser ms parecida a xojo que como se programa en vb6 (creo que Michel podra comentar algo al respecto, ya que tiene experiencia con las tres plataformas

Julen

Hola
Yvan Acosta

Bienvenido al foro Xojo

Para el control tipo Grid, existe el control listbox que es muy potente para uso general y se puede crear un control personalizado tal como lo comento Nicolas, a partir del listbox, puedes condicionarlo a que sea editable, que determinadas columnas solo aceptes números, altura, ancho de sus filas, columnas etc.

En cuanto al reporteador, yo utilizo el reporteador externo FastReport y no he tenido ningún inconveniente al generar mis reportes y se adecua a todas mis necesidades.

Estoy muy agradecido también a los amigos del foro de xojo, que gracias a ellos aprendí mucho y sigo aprendiendo

Saludos Cordiales

Raul
Peru

Sip, sobre todo si va a usar Firebird, MBS tiene muy buenos plugins y son rápidos, son un “wrapper” a unas bibiliotecas en C/C++, además el soporte es excelente, ODBC funcionaría igual, lo he probado pero no trabajo en ODBC constantemente, como dice @Julen Ibarretxe Uriguen , y yo antes, pruebe todo lo que quiera antes de comprar, puede usar el IDE y los proyectos en modo debug, al igual que los plugins de MBS.

Otra de las ventajas de tener la licencia Desktop en lugar de la Lite, es la opcin de guardar el cdigo en texto y con ello poder usar sistemas como Git o SVN. Yo soy nuevo programador, bueno mi formacin fueron unas cuantas clases all en los 80s :slight_smile: y me parece muy interesante esa opcin (apenas la estoy aprendiendo esta semana).

Buenas

He visto el costo del plugin que sumado al del lite me parece que me podra costar mas, as que decidira por la versin Desktop que ya viene con la opcin de conectarme por ODBC. Ok, entonces mi costo seria $300.00 y luego del primer ao es condicional que actualizar o no pero al menos el IDE seguir trabajando, esta seria la opcin, sobre esa base voy a realizar pruebas esta semana que empieza y segn resulte decidir la adquisicin.

Muchas gracias a todos.

Yvan,

Aunque yo no tengo experiencia con bases de datos y mi última experiencia con VB6 fue hace muchos años, te puedo decir que una de las frustraciones más importantes para desarrolladores de aplicaciones con bases de datos que vienen a Xojo desde otros lenguajes (VB6 y FoxPro sobre todo) es la falta de un control que muestre o permita manipular datos de una base de datos con muy poco código. Me imagino que el control MSHFlexGrid será algo así. Xojo no tiene un control de ese tipo.

Se te ha dicho aquí que el listbox en xojo es muy flexible y permite hacer casi cualquier cosa, y es verdad. Pero esa flexibilidad tiene la contrapartida de que es muy básico, y todo lo que quieras que haga el control lo tienes que programar tú. Busca en el foro porque este tema es recurrente y habrá varios hilos al respecto. Es muy posible que encuentres código o clases gratuitas que te puedan ayudar inicialmente. Otro sitio donde buscar código/clases de otros desarrolladores es http://developer.xojo.com/community-2.

Un saludo,

Julen

Ok muchas gracias @Julen Ibarretxe, voy a probar en este semana. Saludos