Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages 2012 XPages... · 2013-12-19 ·...

Post on 09-May-2020

1 views 0 download

Transcript of Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages 2012 XPages... · 2013-12-19 ·...

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Movilizando aplicaciones en un entorno IBM Lotus Domino con

XPagesMiguel Angel Calvo

ESLUG 2012

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

2

Presentación

Miguel Angel Calvo

mcalvo@ittaka.com

www.zarazaga.net

Consultor en tecnología IBM Lotus Domino,

…perdón IBM Collaboration Software– 14 años trabajando con tecnologías IBM Lotus

– IBM Certified Application Developer

– IBM Certified System Administrator

– IBM Certified Lotus Instructor

ITTAKA innovacion SLEspecialistas en tecnología Lotus Domino

XPages Extension Library

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Agenda• Objetivos• Modelos de desarrollo móvil• Opciones de movilización en IBM Lotus Domino• Introducción a XPages• Movilización con XPages• Prerrequisitos• Elementos de diseño • Ejemplo de aplicativo móvil• Construcción de la aplicación

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Objetivos

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Objetivos• Revisar estado actual de las tecnología móviles en la

actualidad• Revisar opciones de movilización en entorno Lotus

Domino

• Profundizar en la movilización de aplicaciones con Xpages

• Revisar el desarrollo de un aplicativo móvil con XPages

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Introducción

• Auge de la movilización• Conceptos calientes BYOD, MDM,

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Introducción

• Nuevas necesidades– Transformación del corpotamiento del

usuario.– Acceso a las aplicaciones corporativas desde

dispositivos móviles.

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Modelos de desarrollo móvil

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Modelos de desarrollo móvil• Nativo

– Específico para el disposito• Android – Java• iPhone – Objective C• Windows - C#

– Ventajas• Integrado con la plataforma• Mejor rendimiento de las aplicaciones.• Uso de funcionalidades específicas de la plataforma

– Inconvenientes• Desarrollo exclusivo para cada platadforma• Modelo de desarrollo más costoso

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Modelos de desarrollo móvil• Desarrollo híbrido

– Despliegue en dispositivo móvil– HTML CSS JavaScript– Funcionalidad nativa en envoltorio Javascript– Se ejecuta en un contenedor Web en el dispositivo (Webkit,..)– Opción IBM– Ventajas

• Desarrollo único para múltiples plataformas– El framework se encarga del despliegue multiplataforma

• Tecnología web estandar– HTML, CSS, Javascript

• Reutilización de código de aplicativos web• Acceso a funcionalidades nativas

– Inconvenientes• Rendimiento inferior al de aplicaciones nativas

– SDKs• PhoneGap, Titanium,..

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Modelos de desarrollo móvil• Modelo web

– Características• HTML/CSS/JavaScript• HTML5 Webkit• Contenido cargadao en el navegador mediante URLS• Aspecto no nativo • Opción Xpages• Frameworks javascript

– Ventajas• Tecnologías muy extendidas• Soportado en más dispositivos• Desarrollo y despliegue más rápido

– Inconvenientes• Más lento que opciones híbridas o nativas• No dispone de funcionalidades nativas

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Opciones de movilización en IBM Lotus Domino

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Opciones de movilización en IBM Lotus Domino

• Productos de terceros– Teamstudio Unplugged– YouAtNotes Domino To Go – …

• Desarrollo aplicaciones nativas/web– Independientes de tecnología Domino– Acceso via REST a Domino

• Desarrollo nativo Domino– Con Xpages

• Domino 8.5.3 UP1– controles móviles nativos– Basados en Dojo Mobile

• Integrando otros frameworks– Jquery mobile– Sencha– …

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Introducción a XPages

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Introducción a XPages: ¿ Qué son XPages?

• Un elemento de diseño Notes/Domino• Un modelo de ejecución para para generar aplicaciones web

modernas• Utiliza lenguaje de marcas XML para definir:

– Controles, orígenes de datos, lógica de negocios y controles personalizados

• Resuelve limitaciones “históricas” en Lotus Domino como plataforma de desarrollo web– Separación del interfaz de usuario y el modelo de datos, control de la

generación del HTML, estado en el servidor, multiidioma, extensibilidad• Modelo único para distintos tipos de cliente• Extensible en tiempo de ejecución y desarrollo• Basado en tecnología estándar: JavaServer™ Faces• Integrado en Domino Designer 8.5.x• Herramientas de desarrollo visuales

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Introducción a XPages: Desarrollo Domino en la actualidad

• 8.5.3 FP2 ( 20 septiembre de 2012)• Versión 8.5.4 Domino Social Edition ( 1er trim. 2013)• XPages

– JSF en plataforma Lotus Domino• Dojo toolkit

– Framework javascript– Widgets de definición interfaz de usuario, AJAX, mobile

• ONEUI 2.1 CSS– Un framework CSS– Soporte multinavegador

• Xpages Extension Library– Controles basados en Java– Software libre– Incorporado como “Feature Pack” en Domino 8.5.3 UP1

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Movilización con XPages

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Movilización con XPages• Principios de diseño

– Modelo de desarrollo web• Aplicaciones web - Acceso online• Estilo de desarrollo: Aplicaciones en “una” página”• Estilos y eventos hacen uso de Dojo (en segundo plano)

1.6.1– No es necesario conocer Dojo

– Dispositivos objetivo• iPhone, Android, Blackberry ( pendiente )

– Diseño basado en controles del Domino 8.5.3UP1• Elementos propios para desarrollo móvil• Elementos compartidos con aplicativos de escritorio

– DataView, FormTable, FormRow,…

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Movilización con XPages• Alternativas

– Desarrollo web clásico • Es necesario crear un Framework propio.• Hay que “lidiar” con la transformación de HTTP de Domino

– Prácticamente es desarrollo en editor de texto• No recomendado

– Uso de frameworks alternativos• P.ej. Jquery mobile• Una opción viable• Requiere más trabajo• Es necesario conocer el funcionamiento del framework• No se aprovechan los controles existentes

– DataView, Form

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Movilización con XPages

• Interfaz jquery mobile

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Movilización con Xpages: Dojo mobile

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Prerrequisitos• Software necesario

– Domino 8.5.3 FP1 o superior– Domino Designer 8.5.3 FP1 o superior– Domino 8.5.3 Upgrade Pack 1 (CI5HUEN)

• Descargable desde IBM Passport Advantage– Paquete ejecutable– ISO

• Instalación de Domino 8.5.3 UP1 en– Domino Designer– Lotus Notes– Servidor Domino

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Prerrequisitos: Domino 8.5.3 UP1

• Instalación en Domino Designer/Notes– Para Windows:

• Lanzar el ejecutable 853UpdatePack_• Seguir las indicaciones del asistente.• NOTA: Ejecutar la instalación de Designer, la de

Notes o ambas.

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Prerrequisitos: Domino 8.5.3 UP1

• Instalación en Domino– Asegurarnos de no tener instalada la XPages

Extension Library– Para Windows:

• Lanzar el ejecutable w32n_upgradepack.exe o w64n_upgradepack.exe

• Seguir las indicaciones del asistente.

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Prerrequisitos: Domino 8.5.3 UP1

• Instalación en Domino– Reiniciamos el servidor y comprobamos la

correcta instalación de los nuevos plug-ins desde la consola:

> tell http osgi ss com.ibm.domino> tell http osgi ss com.ibm.wink> tell http osgi ss com.ibm.xsp.extlib

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Elementos de diseño

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Elementos de diseño

• Nuevos elementos de diseño incorporados en la XPages Extension Library

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Elementos de diseñoTag name Common name DescriptionappPage Mobile Page Contains one mobile page. Only one

page displays at a time.

djxmHeading Page Heading Provides header information and basic navigation.

djxmLineItem Static line item Provides a way to link to other mobile pages.

djxmRoundRectList

Rounded List This control displays a rectangle with rounded corners.

djxmSwitch Mobile Switch Works as an on/off switch with behavior like a checkbox.

singlePageApp Single Page Application

Contains a mobile application. Controls its layout and configuration.

tabBar Tab Bar Presents a banner upon which buttons can be placed.

tabBarButton Tab Bar Button Presents a banner upon which buttons can be placed.

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Elementos de diseño• Reutilización de controles no

específicos para desarrollo móvil– Distintos comportamientos de los

controles en función del dispositivo– Visualización: Estilos ajustados al

dispositivo mediante temas, automáticamente.

– Controles para visualización de vistas, de documentos,…

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Ejemplo de aplicativo móvil

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Ejemplo de aplicativo móvil• Aplicación desarrollada en 2004

– Gestión de clientes, proyectos, actividades e incidencias.

– Interfaz Lotus Notes• Objetivo

– Permitir el acceso desde dispositivos móviles• iPhone, Android, BB

• Presupuesto asignado al proyecto– El mínimo

• Propuesta tecnológica– XPages

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Ejemplo de aplicativo móvil

• Gestión de clientes: Interfaz Notes

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Ejemplo de aplicativo móvil

• Interfaz móvil

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Ejemplo de aplicativo móvil

• Interfaz móvil

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Ejemplo de aplicativo móvil

• Interfaz móvil

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Ejemplo de aplicativo móvil

• Interfaz móvil

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación• SinglePage Application

Control– La aplicación se crea en

una sola XPage– La aplicación contiene

múltiples vistas (páginas)• Transiciones AJAX entre

páginas– Navegación entre vistas

• Reseteo de contenido

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Configuración

• Propiedades de la aplicación– Activación del uso de la librería XPages

Extension Library– Activado automáticamente

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Configuración

• Modificación de xsp.properties• xsp.theme.mobile.pagePrefx=m_• Indicamos el prefijo que tendrán las Xpages que

van a requerir el uso de temas móviles• Utilizado para los controles que pueden utilizarse

en aplicaciones móviles y de escritorio

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Primeros pasos

• Estructura de la aplicación– SinglePageApp

• Contenedor de TODA la aplicación

• Un elemento que agrupa todo el diseño

• selectedPageName– Obligatorio– Nombre de la

página viaulizada al arrancar la aplicación

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Primeros pasos

• La primera página– mobilePage

• Representa la ventana de visualización

• Contendrá listas de registros, formularios, imágenes.

• Es el elemento destino de las transiciones entre páginas

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Primeros pasos

• La primera página– Panel de diseño en Designer– Visualización en el navegador

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Elementos de página

• Page Heading– Título superior de

la página– Navegación de

retorno– Permite incluir

acciones• Static Line Item

– Etiquetas – Navegación

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación : Elementos de página

• Previsualización– PageHeading

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación : Elementos de página

• Incluyendo una etiqueta– Rounded List

• Actúa como marco contenedor• Cuadro con fondo blanco y

bordes redondeados– Static Line Item

• Etiqueta con propiedades– Navegación, icono, texto, texto a la

derecha

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación : Elementos de página

• Arrastramos el control RoundedList a nuestra XPage

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Elementos de página

• Insertamos el control Static Line Item

• Propiedades– label

• Etiqueta que se visualiza– moveTo

• Página que se va a visualizar al “tocar” la etiqueta

– transition• Fade,flip,slide,…

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Elementos de página

• Visualización de los controles de navegación

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Elementos de página

• Incluyendo una imagen– Image

• Previamente importada en la base de datos

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Transiciones entre páginas

• Transiciones entre páginas

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Transiciones entre páginas

• LineItem– Permite navegar a una página de la

aplicación– Prop. moveTo

• Incluir el valor del atributo pageName de la página destino

– Propiedad transition• Indica cómo va a ser la transición entre

páginas• Puede definirse a nivel de Round Rect List

• Page Heading– Elemento de navegación que permite

“Volver” a una página anterior– Prop. moveTo

• Incluir el valor del atributo pageName de la página destino

– Prop. Transition– Prop. Back

• Etiqueta a mostrar al usuario

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Transiciones entre páginas

• Otros mecanismos– Transiciones mediante eventos

• P.ej. En un botón

– Forzando la URL• Bbdd.nsf/xpage.xsp#miPagina

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Organizando el diseño

• Usando controles personalizados– Equivalente “conceptualmente” a un subformulario– Permite “ordenar” y clarificar el diseño– Permite reutilización de elementos de diseño– Vamos a utilizarlo para “ordenar”

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Organizando el diseño

• Copiamos y cortamos el código de nuestra mobilePage

• Pegamos el código en el control personalizado creado anteriormente– Insertamos el namespace xmlns:xe="http://www.ibm.com/xsp/coreex"

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Organizando el diseño

• Código fuente de nuestra Xpage tras la creación de los controles personalizados– Se han insertado mediante “arrastrar y soltar”

los nuevos controles creados

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Visualización de datos

• DataView control– Elemento no específico

de desarrollo móvil– Estilo visual

dependiente del dispositivo que solicita la página

– Permite visualizar los documentos de una vista.

– Adicionálmente, puede mostrar información de un origen de datos relacional

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Visualización de datos

• DataView control– Puede mostrar informacíón

de una vista de la propia bbdd o de otra.

– Data source name• Nombre programático del

control en SSJS

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Visualización de datos

• DataView control– Propiedades básicas

• rows– Nº de filas a mostrar

• summaryColumn– Nombre de la

columna de la vista a mostrar

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Visualización de datos

• Visualizando más registros: Pager Add Rows – Permite mostrar más

registros.– Mecanismo AJAX de

petición de registros y modificación del interfaz de usuario

– Propiedades• for

– Nombre del control al que se asocia este paginador

• rowCount– Nº de filas a añadir

• text– Etiqueta a mostrar

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Visualización de datos

• Resultado en nuestra aplicación

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Visualización de documentos

• Apertura de documentos– Crear página de visualización docCliente

• Contendrá un control de tipo panel– Es un elemento contenedor– Puede gestionar su propio datasource

– Indicar en el DataView cómo abrir el documento

• pageName property

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Visualización de documentos

• Creación del formulario de visualización del documento.– Pasos

• Crear un control mobilePage– pageName=docCliente

• Crear un control PageHeading– Titulo, navegación,…

• Posteriormente– Crear un Panel– Crear un datasource en el Panel– Crear un formulario asociado al datasource para mostrar el

contenido de los campos herramienta automática

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Visualización de documentos

• Preparación del contenedor Panel– Necesario para

que el ámbito del datasource sea el correcto

– Pasos• Arrastramos un

control de Panel en nuestro CC

• Insertamos un Round Rect List dentro del panel

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Visualización de documentos

• Definimos el datasource a nivel de Panel

– En la ventana de diseño Seleccionamos el control Panel

– Accedemos a la pestaña >Data– Pulsamos el botón Add– Indicamos el formulario a utilizar Form

• Creamos del formulario DENTRO del Panel

– En la vista de Eclipse Data• Activamos el uso del asistente• Seleccionamos todos los campos• Arrastramos los campos al interior de

nuestro panel

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Visualización de documentos

• Indicar en el DataView cómo abrir el documento

• pageName property– Incluir el valor del atributo

pageName de la página destino

• openDocAsReadonly property

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Visualización de documentos

• Resultado visual

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Edición de documentos

• Mecanica de edición similar a una aplicación para navegador estándar– Utilización de acciones simples / o mediante código

• Vamos a crear una barra de acciones– TabBar, TabBar Button

• Puede crearse en la cabecera de la página o dentro de la misma• Botones soportan condiciones del tipo “Visible”

– Podemos ocultarlos condicionálmente– Acción simple move To Mobile Page

• Permite navegar a una página distinta• Utilizable en cualquier evento de la XPage

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Edición de documentos

• Creación de una barra de acciones dentro del control Panel

– TabBar• barType property

– SegmentedControl• Insertamos los “botones TabBar

Button– TabBar Button

• Label property– Etiqueta del control

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Edición de documentos

• Ocultando botones– Seleccionamos el control

TabBarButton ( botón EDITAR)

– Desmarcamos la propiedad Visible

– Pulsamos botón derecho del ratón sobre el icono en forma de rombo junto a la propiedad

– Indicamos la condición mediante SSJS para la visualización del control!document1.isEditable

– Repetimos el procedimiento con el resto de botones

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Edición de documentos

• Creando la acción GUARDAR– Seleccionamos el control

TabBarButton ( botón GUARDAR)

– Abrimos la pestaña Eventos– Seleccionamos Server– Pulsamos el botón Add

Action…– Seleccionamos la acción

simple Move To Application Page

• Abandona la página actual y opcionalmente guarda el documento que estuviéramos editando

• Propiedades– forceFullRefresh– saveDocument– targetPage– TransitionType

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Eliminación de documentos

• Creando la acción ELIMINAR– Seleccionamos el control

TabBarButton ( botón ELIMINAR)

– Abrimos la pestaña Eventos– Seleccionamos Sever– Pulsamos el botón Add

Action…– Seleccionamos la acción

simple Delete Document• Elimina un documento,

solicitando, opcionálmente, confirmación al usuario.

• Propiedades– Name of page to open

next– Data source name

– Pulsamos el botón Add Action…

– Seleccionamos la acción simple Move To Application Page

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Búsquedas

• No automáticas• Uso de variables de

sesión– requestScope

• Filtrado del DataView similar al utilizado en aplicaciones web para navegador de escritorio

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación: Propiedades especiales

• appPage– resetContent

• Por defecto a FALSE• Indica que ha de volver a

cargarse el contenido de la página

• A TRUE, en páginas que contengan contenido dinámico

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

Construcción de la aplicación• Forzando la página de inicio según el tipo de navegador

– afterPageLoad event

<xp:this.afterPageLoad><![CDATA[#{javascript:

var uAgent = context.getUserAgent().getUserAgent();if ((uAgent.match("iPhone") !== null || param.platfrom=="iphone") ||

(uAgent.match("Android") !== null || param.platfrom=="android") || uAgent.match("iPad") !== null

){

context.redirectToPage("/m_Application.xsp", true);}else{

context.redirectToPage("/allDocuments.xsp", true);}

}]]></xp:this.afterPageLoad>

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

76

Turno de preguntas

http://www.slug.es

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

77

Créditos

http://www.slug.es

Movilizando aplicaciones en un entorno IBM Lotus Domino con XPages

78

Gracias Gràcies Eskerrik asko Merci Thank you Dankeschön Grazie Graça