El “nuevo” Framework de Xojo

Framework en XojoCoincidiendo con la release de Xojo 2014.r3, Xojo incorporó en el RAD multiplataforma la capacidad de crear aplicaciones nativas para dispositivos basados en el sistema operativo iOS; y también aprovechó la ocasión para darle una vuelta de hoja a lo que venía siendo el Framework (conjunto de librerías y clases) disponibles hasta el momento para facilitarnos la vida como desarrolladores.Desde dicha release, se utilizan dos frameworks en nuestras apliaciones Xojo: el clásico, correspondiente a todo el conjunto de librerías y clases que se venían utilizando hasta la fecha; y el nuevo Framework, en el que se introducen nuevos tipos de datos (clases), se mejoran otras ya existentes y también se introducen los espacios de nombre directamente en su uso.

En gran parte, el framework Classic se mantiene con el objetivo de no romper la compatibilidad con los millones de líneas de código existentes en las aplicaciones que se habían creado hasta la fecha, y de hecho se puede continuar utilizando sin mayor problema teniendo en consideración, eso sí, que en algún momento del futuro quedará obsoleto.

¿Cuáles son los cambios más sustanciales y en qué medida afecta todo ello?

El nuevo Framework de Xojo se ha diseñado para sustituir en algún momento del futuro al framework clásico. El Framework clásico ha sido el utilizado por los usuarios de Xojo durante más de 15 años y está mostrando su antiguedad en varias áreas, lo cual limita también la capacidad de proporcionar actualizaciones y resolver los problemas detectados. Con el “nuevo” Framework, disponible desde 2014, se proporciona un modo más consistente y eficiente que permitirá a Xojo continuar evolucionando en el futuro.

El resumen podría ser que el Framework Clásico ha existido desde la primera versión (en torno a 1998) y ha acumulado unas cuantas verrugas. Hay inconsistencias como por ejemplo que no todas las funciones estén basadas en cero o en la gestión de errores. También existen algunas áreas en las que el diseño tenía su lógica originalmente, pero los sistemas operativos han ido en diferentes direcciones (acceso aleatorio por índice en los contenidoss de una carpeta, por ejemplo). O peor aún, hay áreas en las cuales el framework pone demasiado fácil hacer mal las cosas.

Durante la planifficación del soporte para iOS, el equipo de Xojo llegó a la conclusión de que sería una buena oportunidad para un comienzo desde cero en el cual resolver estos problemas (entre otros). El hecho de compartir código entre los frameworks Desktop, Web y Consola también es muy importante, de modo que el nuevo framework también se aplica sobre estas plataformas de despliegue.

En la mayoría de los casos los dos frameworks son similares, donde las principales diferencias se encuentran en el uso de los tipos de datos Text y Auto. Por otra parte, el nuevo Framework se encuentra, relativamente, en sus primeras etapas de vida, de modo que no dispone de toda la funcionalidad sobre el clásico, si bien se irá mejorando con el paso del tiempo.

Ventajas del nuevo Framework Xojo

Además de ser más moderno, una de las ventajas se encuentra en el uso de los nombres de espacio, de modo que las clases y métodos del nuevo framework no colisionan con las clases y métodos del framework clásico. Un nombre de espacio permite que ambos frameworks coexistan, haciendo posible que se pueda continuar utilizando el framework clásico al tiempo que se va aprendiendo como utilizar el nuevo framework.

Si no se hiciese uso de los nombres de espacio, entonces todas las clases del nuevo framework también serían globales y se requeriría del uso de nombres únicos. Así, Xojo.Core.Dictionary precisaría de un nuevo nombre; o quizá hubiese sido necesario el uso de un prefijo o sufijo. En Xojo pensaron que pocos desarrolladores preferirían que el nuevo Diccionario (Dictionary) se llamase XojoDictionary o DictionaryXojo, por ejemplo.

Además, con los nombres de espacio puedes añadir simplemente la instrucción Using a tu código (o bien añadirla a la ventana/clase/módulo/etc.) de modo que no tengas que utilizar el nombre completo:

Using Xojo.Core
Dim d As New Dictionary ' Uses Xojo.Core.Dictionary

El código anterior no habría sido posible si se hubiese utilizado el prefijo/sufijo.

Y mediante el uso de nombres de espacio sabes que tienes un modo más sencillo de aprender sobre nuevas características. Por ejemplo, todas las entradas/salidas sobre archivos radican en el nombre de espacio Xojo.IO. En el Framework Clásico debías de aprender sobre todo tipo de clases que no están agrupadas de forma lógica.

De igual modo que la programación orientada a objetos ha sustituido en gran parte a la programación procedural, los nombres de espacio son un mejor modo de organizar los frameworks. Y a diferencia de lo que hizo Microsoft con .NET, Xojo ha mantenido el lenguaje igual, los espacios de nombre reducidos con un único nivel y también ha mantenido el framework clásico disponible junto con el nuevo framework, de modo que se puede seguir utilizando aquello con lo que se está familiarizado mientras que se aprende el nuevo framework.

Componentes del Framework Xojo

¿Qué hay en el framework? En primer lugar, has de entender los principales componentes de Xojo:

Lenguaje Xojo

El lenguaje Xojo no ha cambiado de forma sustancial. Para soportar el nuevo Framework de Xojo, se han realizado algunos pequeños cambios consistentes en la incorporación de varias palabras clave:

Estos cambios del lenguaje están disponibles para todos los tipos de proyecto, incluídos iOS, desktop, web y consola.

Por lo demás, el lenguajes es el mismo con el mismo modelo de programación orientada a objetos que has utilizado siempre. De hecho, el libro electrónico “Programación Multiplataforma Xojo” enseña desde cero a programar utilizando el lenguaje, los tipos de datos y también la Programación Orientada a Objetos utilizando el lenguaje Xojo.

Framework Consola

El framework de consola es la colección de clases y métodos que suplementan el lenguaje y que no están relacionados con la interfaz de usuario. Estas son cosas como Date, Dictionary, FolderItem, etc. El Framework de Consola que siempre ha sido parte de Xojo se denomina ahora Framework Clásico. Continúa estando disponible para los proyectos de escritorio, web y consola. Sin embargo, los proyectos iOS sólo pueden usar el nuevo Framework Xojo.

El Framework Xojo tiene una amplia variedad de clases, como por ejemplo Dictionary, FolderItem, Date, TCPSocket, etc., y que están organizadas en nombres de espacio. Los nombres de espacio son simplemente módulos que se utilizan como vía para contener la funcionalidad relacionada. Todas las características del Framework de Xojo están contenidas en el nombre de espacio Xojo, en el que se incluyen los siguientes nombres de espacio:

De modo que para usar una clase del nombre de espacio Core, como por ejemplo Date, te referirás a ella como “Xojo.Core.Date”. Pero iOS incorpora un ajuste en ‘Shared Build’ (está a ON por defecto) que activa las “Referencias simples”. Cuando dicho ajuste está activado, simplemente has de referenciar a las clases por su nombre, sin tener que utilizar el prefijo del nombre de espacio.

Puedes utilizar tanto el framework Clásico como el framework Xojo (sólo el nombre de espacio Core) en tus proyectos desktop, web y de consola. Dado que muchas de las clases del Framework Xojo comparten el mismo nombre que las clases del Framework Clásico, tendrás que ser específico sobre cuál deseas usar.

Por ejemplo en un proyecto desktop, si quieres usar la nueva clase Date en Xojo.Core, podrías referirte a ella como:

Dim d As New Xojo.Core.Date

Lo que resulta un poco largo de escribir si has de hacerlo con frecuencia, de modo que puedes utilizar el comando Using para simplificarlo así:

Using Xojo.Core

Dim d As Date ' en realidad usa Xojo.Core.Date

También puedes utilizar Using para toda una clase o módulo seleccionando “Insert > Using Clause” e introduciendo a continuación el nombre de espacio en el Inspector.

Recuerda que puedes mezclar y combinar clases del Framework Clásico y del Framework Xojo en el mismo método. Para casos en los que debas de hacerlo, tendrás usar bien el nombre de espacio completo para la clase del Framework Xojo o bien usar el comando Using en un ámbito local. He aquí algunos ejemplos:

Dim d1 As Date ' Date del framework clásico

Dim d2 As Xojo.Core.Date ' Date del framework Xojo

If True Then
Using Xojo.Core
d = Date ' Date del framework Xojo
End If

Frameworks de UI

Los frameworks del UI son los controles específicos de la UI (Interfaz de usuario) y las clases relacionadas para crear la interfaz de usuario de tus apps desktop, web y iOS. Este framework es específico para cada target (plataforma de despliegue), de modo que el Framework de la UI para los proyectos desktop no es la misma que el Framework UI para los proyectos web o iOS.

Advertirás que el nombre de las clases difieren entre cada una de las plataformas de despliegue. Por ejemplo, un botón en desktop se llama PushButton, en la web se llama WebButton y en iOS se llama iOSButton. Generalmente, estos controles funcionan de un modo similar, pero puede que tengan una cantidad diferente de eventos, propiedades y métodos.

El framework de UI para las apps desktop y web no ha variado. Para las apps iOS, necesitas utilizar las nuevas clases del Framework iOS.

4 comentarios en “El “nuevo” Framework de Xojo

  1. Jorge Cercas

    Hola muy buenas tardes.

    Excelente información, solo que el manual que decargas viene en ingles, de casualidad se podra descargar en español?

    Mil gracias y saludos.

    1. Javier Rodriguez

      Estimado Jorge,

      ¿A qué manual se refiere? Si se trata de la documentación disponible en developers.xojo.com, está disponible en inglés. Por otra parte, puede descargar manuales en español desde el área de desarrollo de Xojo en Español.

      Saludos,

      Javier

      1. Jorge Cercas

        Muchas gracias por la información.

        Me interesan mucho 2 libros que estan publicados aquí:

        – SQLite, como nunca antes te lo habían contado
        – Programación multiplataforma Xojo

        Quise hacer el pedido pero no encuentro donde poner la dirección del envío ni el el pago con tarjeta de crédito.

        Me podra ayudar con esto por favor, creo que son la solución que necesito para empezar.

        Mil gracias y quedo a la espera de sus comentarios.

        Yo vivo en México y es un poco complicado por la distancia.

      2. Javier Rodriguez

        Estimado Jorge,

        Los títulos

        – SQLite, como nunca antes te lo habían contado
        – Programación multiplataforma Xojo

        Son libros electrónicos, libres de DRM (es decir, una vez descargados puedes leerlos en todos tus dispositivos, sin límite). Ambos eBook se descargan en formatos PDF y ePub, siendo estos los más estándar y compatibles con absolutamente cualquier tipo de dispositivo: ordenador (independientemente de sistema operativo), Tablet/Tableta, y también teléfono inteligente.

        Sobre el pago, este se realiza de forma completamente segura a través de PayPal. Se trata de un sistema de pago electrónico bien conocido y que no precisa del registro previo para su uso. De hecho, podrá utilizar su tarjeta de crédito en el pago a través de PayPal. Sólo se trata de proporcionar un nivel de seguridad y fiabilidad adicionales a usted, como comprador de mis productos.

        Por favor, no dude en contactar conmigo nuevamente en el caso de que precise información adicional.

        Saludos,

        Javier Rodríguez

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *