scieee AI-readable full text Open interactive document viewer

Integración Windows Phone 7 y Sharepoint 2010

Martí Ferrer, Francisco

Abstract

Este proyecto final de carrera consiste en la creación de una aplicación para Windows Phone 7 alimentada por peticiones WCF sobre Visual Studio 2010 en C#. El sistema consiste en una aplicación residente en el terminal móvil que, haciendo uso de los canales de comunicación habituales de este tipo de terminales (GPRS,3G,WIFI) obtiene, comunica e interpreta información residente en un site de Sharepoint, mediante unos servicios web desarrollados para tales comunicaciones, haciendo uso de las librerías cliente que proporciona Sharepoint. La aplicación debe ser capaz de: 1. Realizar comunicaciones con los servicios web intermedios. 2. Representar la información en base a un rol asociado al usuario que realiza la comunicación. 3. Interpretar las coordenadas gps y posicionarlas en el sistema de mapas Microsoft Bing. 4. Gestionar las incidencias que se obtienes mediante las comunicaciones. 5. Dar de alta nuevas incidencias, georeferenciándolas mediante el módulo gps del terminal. El servicio web será capaz de: 1. Atender las peticiones de los terminales móviles securizando la conexión mediante usuario y contraseña. 2. Obtener las incidencias residentes en el site de Sharepoint mediante las librerías cliente de Sharepoint. 3. Filtrar las incidencias por tipo y proximidad a la ubicación del usuario que realiza la conexión. 4. Gestionar la actualización de incidencias bajo petición del terminal. 5. Gestionar el alta de incidencias bajo petición del terminal.

Full text

INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 PROYECTO FINAL DE CARRERA REALIZADO POR: FRANCISCO MARTÍ FERRER DIRIGIDO POR: JOSE RAMÓN GARCÍA ESCRIVA PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 2 - RESUMEN Este proyecto final de carrera consiste en la creación de una aplicación para Windows Phone 7 alimentada por peticiones WCF sobre Visual Studio 2010 en C#. El sistema consiste en una aplicación residente en el terminal móvil que, haciendo uso de los canales de comunicación habituales de este tipo de terminales (GPRS,3G,WIFI) obtiene, comunica e interpreta información residente en un site de Sharepoint, mediante unos servicios web desarrollados para tales comunicaciones, haciendo uso de las librerías cliente que proporciona Sharepoint. La aplicación debe ser capaz de: 1. Realizar comunicaciones con los servicios web intermedios. 2. Representar la información en base a un rol asociado al usuario que realiza la comunicación. 3. Interpretar las coordenadas gps y posicionarlas en el sistema de mapas Microsoft Bing. 4. Gestionar las incidencias que se obtienes mediante las comunicaciones. 5. Dar de alta nuevas incidencias, georeferenciándolas mediante el módulo gps del terminal. El servicio web será capaz de: 1. Atender las peticiones de los terminales móviles securizando la conexión mediante usuario y contraseña. 2. Obtener las incidencias residentes en el site de Sharepoint mediante las librerías cliente de Sharepoint. 3. Filtrar las incidencias por tipo y proximidad a la ubicación del usuario que realiza la conexión. 4. Gestionar la actualización de incidencias bajo petición del terminal. 5. Gestionar el alta de incidencias bajo petición del terminal. PALABRAS CLAVE Windows Phone 7, aplicación móvil, Sharepoint, gestión de incidencias. PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 3 - 1. INTRODUCCIÓN. - 5 - 1.1. Motivación para la empresa. - 6 - 1.2. Motivos personales para la elección y desarrollo del proyecto. - 6 - 1.3. Especificación de requisitos - 7 - 1.3.1. Aplicación Windows Phone 7 - 7 - 1.3.2. Sharepoint Site - 8 - 1.3.3. Especificaciones técnicas - 8 - 1.4. Diagramas UML - 9 - 1.4.1. Diagrama de casos de uso. - 10 - 1.4.2. Diagrama de actividades. - 11 - 1.5. Requisitos previos - 12 - 1.5.1. Alta como desarrollador Windows Phone 7. - 12 - 1.6. Conocimientos y tecnologías implicados para el desarrollo. - 12 - 1.6.1. Visual Studio 2010 - 13 - 2. NOCIONES PREVIAS - 15 - 2.1. Elementos más importantes para la comprensión del proyecto. - 15 - 2.1.1. ¿Qué es Sharepoint 2010? - 16 - 2.1.2. Presentación de la nueva plataforma de Microsoft para móviles. - 28 - 2.2. Dependencias y descripción de otros productos en los que se basa. - 28 - 2.2.1. Bing Maps - 29 - 2.2.2. Servidor Web IIS - 32 - 3. DESCRIPCIÓN DEL PRODUCTO - 34 - 3.1. Visión global: elementos que lo integran y cómo interactúan - 34 - 3.2. Especificaciones técnicas. - 34 - 3.2.1. Conexiones - 34 - 3.2.2. Autenticación - 34 - 3.2.3. Información intercambiada - 34 - 3.3. Implementación - 36 - 3.3.1. Aspectos destacables durante el desarrollo del proyecto. - 36 - 3.3.2. Metodologías utilizadas. - 37 - 3.3.3. Tecnologías implicadas. - 40 - 3.3.4. Descripción del entorno de desarrollo. - 41 - 3.3.5. Bibliotecas utilizadas. - 42 - PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 4 - 3.3.5.1. En Windows Phone 7. - 42 - 3.3.5.2. En Web Service de Integración. - 43 - 3.3.6. Fragmentos de código más destacables - 45 - 4. DISTRIBUCIÓN DEL SOFTWARE - 51 - 5. CONCLUSIONES - 53 - 5.1. Comparativa de objetivos y resultados. - 53 - 5.2. Aplicabilidad de la herramienta desarrollada. - 54 - 5.3. Posibles ampliaciones futuras - 54 - 5.3.1. Nintex Workflow para Sharepoint 2010 - 54 - 6. BIBLIOGRAFÍA - 55 - 6.1. Referencias a los libros utilizados - 55 - PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 5 - 1. INTRODUCCIÓN. Este documento tiene como propósito detallar la labor realizada durante el periodo de ejecución del proyecto final de carrera, el cual consiste de una aplicación para dispositivos móviles Windows Phone 7 y que ha sido desarrollado con la ayuda de la empresa Encamina S.L. La aplicación se encarga de gestionar una serie de incidencias residentes en el Site principal de una empresa, como veremos más adelante, a través de una serie de métodos residentes en los servicios web encargados de realizar las comunicaciones, entre el terminal móvil y los datos residentes el site Sharepoint 2010. Esto supondrá diversas ventajas tanto para la empresa como para los usuarios ya existentes en el servidor principal y gestionado mediante active directory de Microsoft. Por un lado, la empresa automatiza el sistema de incidencias, ya que son los propios usuarios los que dan de alta las incidencias y las gestionan, y por otro lado ofrece a sus usuarios una nueva forma de acceder a sus datos. Además, al aparecer la aplicación en el Market Place de Windows Phone, siempre existe la posibilidad de que los usuarios se descarguen la aplicación ellos mismos, no como en versiones anteriores de los sistemas operativos para terminales móviles de Microsoft, en los que el propio desarrollador era el que tenía que montar el sistema de distribución y la promoción del mismo. Poro otro lado, los usuarios podrán consultar sus datos en cualquier momento y lugar, ya que todos los dispositivos Windows Phone 7 disponen de acceso a Internet. Puesto que el objetivo de realizar un proyecto fin de carrera no es solo la aplicación en sí, sino el paso de estudiante a ingeniero, la estructura del documento sigue una línea temporal, donde se explica al inicio del mismo los pasos previos que cualquier Ingeniero Informático debe realizar antes de comenzar la implementación, y concluyendo con las ideas y reflexiones obtenidas tras su finalización. PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 6 - 1.1. Motivación para la empresa. La finalidad de este proyecto es ofrecer a los clientes de Encamina nuevas formas de acceder a sus aplicaciones. Por una parte, esto aporta beneficios a la empresa puesto que sus productos no se quedan obsoletos y se adaptan a las nuevas tecnologías. Por otra parte, los clientes ven como la empresa evoluciona y les proporciona nuevas formas de acceso a sus datos, esto proporcionara confianza y satisfacción de los usuarios actuales, al permitir comprobar que todo el esfuerzo informático que han realizado hasta ahora es capaz de adaptarse en cada momento a las exigencias del mercado. Al mismo tiempo, esta aplicación puede ayudar a la captación de nuevos clientes, bien sea por descubrimiento de la existencia de la empresa al acceder a sus aplicaciones desde su terminales móviles Windows Phone 7, o clientes que utilizaban productos similares y que pueden sentirse atraídos por las nuevas posibilidades que este proyecto les ofrece, ya que es posible que las herramientas que estén utilizando no se hayan adaptado a las nuevas tecnologías. Existe ya una amplia gama de aplicaciones sobre gestión de incidencias para dispositivo móviles, pero ninguna similar a una intranet/extranet a la que puedes acceder desde tu teléfono y gestionar los datos a los que por el rol que tiene asignado el usuario, puede acceder. Ésta aplicación en concreto está orientada a usuarios que necesitan optimizar los desplazamientos que realizan para desarrollar su trabajo, y las ventajas que aporta respecto a otras aplicaciones de gestión de incidencias, es que todos los datos están centralizados y gestionados desde un portal Sharepoint 2010. 1.2. Motivos personales para la elección y desarrollo del proyecto. El motivo fundamental de la elección de este proyecto ha sido el poder experimentar el desarrollo de las nuevas aplicaciones móviles de la plataforma de Microsoft, y poder formarme desarrollando una aplicación para la gestión de datos remotos, ya que los conocimientos sobre los anteriores sistemas operativos para terminales móviles, han quedado obsoletos, siendo esta nueva versión incompatible con todas las anteriores, por lo que los desarrollos y conocimientos anteriores no sirven para esta nueva versión de terminales. Además de todo lo anterior, el proyecto ofrece el reto de la integración de dos herramientas de Microsoft, como son Windows Phone 7 y Sharepoint 2010, sin tener en cuenta la posibilidad de familiarizarse con el nuevo entorno de gestión de aplicaciones en terminales móviles (Market Place). PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 7 - 1.3. Especificación de requisitos Todo proyecto debe comenzarse con un correcto estudio previo a la implementación, que defina claramente que acciones se podrán realizar, quien las podrá hacer y cómo va a funcionar, sin entrar en detalles de implementación. En los siguientes apartados se muestran una serie de pasos previos a la realización del código del programa que ayudaran a comprender, elaborar y mantener correctamente la aplicación posteriormente. Debido a que la aplicación está distribuida, presentaremos los requisitos planteados en dos secciones claramente diferenciadas, por un lado la aplicación de interface residente en el terminal móvil, y por otro el almacén de datos residente en un site de Sharepoint 2010. 1.3.1. Aplicación Windows Phone 7 Dado que se plantea una aplicación de incidencias georeferenciadas, que podrán ser resueltas por diferentes perfiles de usuario, los requisitos establecidos finalmente son los siguientes:  Autenticación: Al haber varios perfiles de usuario, ciertas partes de la aplicación, concretamente la entrada de incidencias en el sistema, no presentará autenticación ninguna para el acceso a la aplicación, mientras que para poder obtener las incidencias residentes en el sistema deberá ingresar usuario y contraseña, residentes en sistema de usuarios ubicado en Active Directory.  Seguridad: una vez autenticado el usuario, este podrá elegir salir de la aplicación haciendo logout sin guardar ningún dato en el terminal, o por el contrario, podrá guardar sus datos en un espacio de memoria reservado para la aplicación, y el cual será inaccesible desde otro espacio de nombres.  Interfaz y usabilidad: debe ser clara y sencilla. De similar a los menús propios de un terminal Windows Phone 7.  Navegación en las pantallas de la aplicación: debe ser distinguible con que rol se encuentra conectado un usuario ya que de él dependen las pantallas a las que podrá acceder.  Integración en el dispositivo: puesto que la información a consultar se presenta en un dispositivo móvil, esta deberá poder interactuar con las posibilidades que el terminal ofrece siempre que sea posible: realizar llamadas, enviar SMS o correo electrónico.  Ampliación: la aplicación debe ser adaptable a futuras modificaciones o ampliaciones. PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 8 - 1.3.2. Sharepoint Site Respecto a los requisitos solicitados para el almacén de datos, fundamentalmente, es que resida en un Site de Sharepoint, debido a que es el gestor de contenidos más utilizado por los clientes de Encamina, aunque cumpliendo los requisitos marcados podrían integrarse los datos con cualquier (cms), no solamente con el de la familia de productos Microsoft, o incluso con algún sistema de base de datos. Debido a esta especificación inicial, el resto de requisitos, están implícitos en ella. 1.3.3. Especificaciones técnicas Autenticación HTTP Basic Para establecer la conexión con el servidor y proteger los servicios web se debe utilizar la autenticación HTTP Basic. Este tipo de autenticación es simple y es el más usado para proteger los recursos. Si se hace la petición desde un navegador, este utiliza una ventana de dialogo propia que solicita el nombre de usuario y contraseña; en este caso esto deberá enviarse como un parámetro al realizar la conexión. El problema es que no cifra los datos; en todas las peticiones que se realizan se envía tanto el usuario como la contraseña sin cifrar en la petición, siendo la codificación Base64 el único paso previo a la conexión. La forma de implementar este proceso se explicara más adelante, ya que el encargado de realizar esta gestión será Sharepoint. Conexión SOAP SOAP (siglas de Simple Object Access Protocol) es un protocolo estándar que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML. Este protocolo deriva de un protocolo creado 1998, llamado XML-RPC. SOAP fue creado por Microsoft, IBM y otros y está actualmente bajo el auspicio de la W3C. Es uno de los protocolos utilizados en los servicios Web. SOAP usa el código fuente en XML. Esto es una ventaja ya que facilita su lectura por parte de humanos, pero también es un inconveniente dado que los mensajes resultantes son más largos. El intercambio de mensajes se realiza mediante tecnología de componentes. El término Object en el nombre significa que se adhiere al paradigma de la programación orientada a objetos. SOAP es un marco extensible y descentralizado que permite trabajar sobre múltiples pilas de protocolos de redes informáticas. Los procedimientos de llamadas remotas pueden ser modelados en la forma de varios mensajes SOAP interactuando entre sí. PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 9 - SOAP funciona sobre cualquier protocolo de Internet, generalmente HTTP, como es nuestro caso para el desarrollo del proyecto y, que es el único homologado por el W3C. SOAP tiene como base XML, con un diseño que cumple el patrón CabeceraDesarrollo de diseño de software. La cabecera “Header” es opcional y contiene metadatos sobre enrutamiento, seguridad o transacciones. El desarrollo “Body” contiene la información principal, que se conoce como carga útil. La carga útil se acoge a un XML Schema propio. En nuestro caso y para optimizar las conexiones con el servidor debe volver a realizarse en cada petición, enviando de nuevo nombre de usuario y contraseña puesto que cada conexión SOAP contiene toda la información necesaria para comprender la petición. Como resultado, ni el cliente ni el servidor necesitan recordar ningún estado de las comunicaciones entre mensajes. En estos servicios web, el servidor es el responsable de generar las respuestas y proveer una interfaz que le permita al cliente mantener el estado de la aplicación por su cuenta. 1.4. Diagramas UML Tras la fase de análisis, se realizan los correspondientes diagramas que permiten diseñar la aplicación. Con ello se intenta mostrar como funcionara la aplicación, cual es su flujo de datos. PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 16 - 2.1.1. ¿Qué es Sharepoint 2010? En pocas palabras SharePoint es una tecnología que pone a nuestra disposición una plataforma de colaboración empresarial (CMS), con sharepoint todas las personas involucradas en el ecosistema de una empresa es decir, socios, empleados, clientes y colaboradores puedan compartir contenidos que forman parte del proceso de negocio de la empresa. SharePoint es una plataforma de colaboración empresarial y de gestión de contenido utilizada para la colaboración en documentos, hojas de cálculo, reportes, gráficos, ideas, conocimientos, experiencias, contactos, fotos, videos, la creación de wikis de la empresa, blogs, sitios web, sitios intranet, , etc.. SharePoint también ofrece características adicionales como un portal de bibliotecas de contenido centralizadas. SharePoint Server 2010 tiene aún más capacidades: la integración de redes sociales y correo electrónico, además de proporcionar acceso a contenidos en línea y sin conexión para usuarios remotos. Las empresas lo pueden utilizar para diseñar aplicaciones SharePoint personalizadas con SharePoint Designer 2010 o en Access 2010. SharePoint se integra con Office 2010 y Office Web Apps para proporcionar la experiencia de Microsoft Office a través de la web, el teléfono y el navegador. En definitiva "SharePoint" es una abreviatura que algunas personas usan para referirse a uno o varios productos o tecnologías de Microsoft SharePoint. Para ver los requisitos y proceso de instalación ver anexo 2. Toma de contacto Una vez instalada la plataforma de colaboración, tenemos que realizar una serie de configuraciones previas para poder crear el site inicial donde ubicaremos las listas de Sharepoint en las que residirán los datos de la aplicación y que veremos más adelante como han sido creadas para este proyecto. Como se ha mencionado en la breve introducción, SharePoint Server es un servidor de aplicaciones y contenidos Web, privados y públicos, con multitud de posibilidades, por lo que en este pequeño tutorial solo se hará referencia a un pequeño número de ellas. Por su gran flexibilidad, SharePoint Server, es ideal para intranets corporativas y webs públicas que requieren de un método de edición sencillo y potente. En nuestro caso concreto utilizaremos un site publicación típico, ya para futuras ampliaciones se plantea montar un site completo para publicar en internet los resultados que se van procesando en el sistema. PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 17 - Para crear un nuevo site en Sharepoint, tendremos una serie de pasos muy sencillos, que nos permitirán crear en base a una serie de plantillas un site básico para empezar a modificarlo en base a las necesidades que existan. Lo primero que tendremos que hacer, es localizar la administración central de Sharepoint, que es el site principal desde el que se configuran todas las características generales que tienen que ver con la administración general de todos los sites. Para poder acceder a la administración central de Sharepoint, necesitamos conocer la clave de Administrador, si se intenta acceder desde el mismo servidor, pero si se pretende acceder desde un terminal vía navegador, además de conocer la clave, necesitaremos saber en qué puerto se instaló. (En nuestro caso, como podemos observar es el puerto 4344) Una vez informada la clave de administrador, nos permite el acceso a la pantalla de presentación de la administración central. PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 18 - En este momento, nos centraremos en el panel de Administración de aplicaciones, que será el que nos permita crear el site, en el que más tarde residan los datos que necesitamos almacenar. Las dos zonas marcadas son las que necesitaremos para crear la aplicación web y el site. Como se puede apreciar, una vez desplegado el menú, aparecen una serie de opciones que nos permiten configurar muchas características de un site, pero concretamente para crear nuestro site nos dirigiremos a crear una nueva aplicación web residente sobre el puerto 80, con encabezado host, mediante el cual accederemos a nuestro nuevo site. PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 19 - Una vez creada la aplicación web (puerto 80), sobre la que va a residir nuestros site, nos disponemos a crear una colección de sites mediante las plantillas de generación de sitios. Una vez pulsada la opción de creación de colección de sitios, nos encontramos con una pantalla para poder crear la colección de sitios. Como podemos ver en la captura de pantalla, lo primero que debemos de seleccionar es la aplicación web sobre la que vamos a desplegar nuestro nuevo site, el título y la PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 20 - descripción, además de la url sobre la aplicación web sobre la que vamos a ubicar nuestra aplicación, que en nuestro caso será “/”, o sea que el site web será atendido bajo la url maestra de la aplicación web. http://pruebas.clasico.test/ Tras rellenar estos tres apartados nos disponemos a seleccionar la plantilla en la cual nos vamos a basar para crear el site, teniendo una gran cantidad de ellas por defecto. En nuestro caso seleccionaremos: Esta elección es debida a que los sites de publicación, son los únicos que nos permiten, según licencia, la publicación en Internet, además de que la personalización de la interface de presentación en este tipo de sites es mucho más extensa que cualquiera de otro tipo, ya que este está pensado para crear páginas web normales y corrientes. Una vez generada la colección de sitios, necesitamos poder almacenar una serie de datos como (roles disponibles, usuarios…) Para almacenar los datos procesados por el terminal móvil, Sharepoint presta una serie de elementos contenedores de datos, listas, que pueden ser de varios tipos PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 21 - predefinidos, como listas de documentos, de imágenes o de vínculos, por poner algún ejemplo, pero en nuestro caso lo que necesitamos es una lista personalizada para almacenar los datos que según los requisitos, son necesarios para el desarrollo de la aplicación. Cuando haga clic en el vínculo Crear una nueva lista de SharePoint de la Biblioteca de orígenes de datos, se abrirá el cuadro de diálogo Nuevo, en el que puede crear una nueva lista de SharePoint utilizando una de las plantillas de listas. El icono de lista de SharePoint identifica las listas personalizadas. En el panel de creación de listas, haga clic en Crear, tras dar un nombre a la lista, que en nuestro caso será Incidencias y la cual utilizaremos para almacenar las comunicaciones georefernciadas que nos llegarán desde los distintos terminales móviles. PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 22 - Tras crear la lista personalizada, tendremos que añadir los campos necesarios para almacenar los datos. Por defecto las listas personalizadas solo presentan el campo obligatorio título, que en este caso se aprovechará para identificar resumidamente el origen de la incidencia. Para crear una nueva columna en lista realizaremos el siguiente proceso: Pulsamos sobre crear columna y aparece una pantalla que nos permite crear una columna basada en un tipo de datos concreto: PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 23 - Como vemos en la captura anterior los datos en los que podemos basar una columna de lista son muy variados, pero si fuese necesario se podrían crear tipos de datos personalizados. o Una línea de texto: Como su nombre indica son columnas que nos permiten almacenar texto en una sola línea con un límite de caracteres. o Varias líneas de texto: Como el anterior tipo de datos, pero con la diferencia que este nos permite delimitar el texto por líneas y caracteres. o Elección: Este tipo de campo nos proporciona un método mediante el cual poder componer un listado estático o dinámico, alimentado por datos de usuarios, sobre el cual poder realizar una selección, pudiendo ser presentado en distintos formatos (combo,checks,etc...) o Número: Típico campo numérico que no puede faltar a la hora de presentar datos, este tipo genérico se puede configurar, con o sin decimales y además basarlo en un formato de formulas para poder crear campos calculados, que no necesitan ser aprovisionados por el usuario. o Moneda: Campo numérico, como el anterior, pero pre formateado para el uso de valores de tipo moneda, vinculados a los lenguajes en los que se desarrolla el site. o Fecha y Hora: Campo habitual que nos permite representar fechas, por defecto todo registro que reside en una lista de Sharepoint presenta dos campos, no visibles por defecto, que almacenan la fecha y hora, tanto de creación como de modificación (Modificado y Creado). o Búsqueda: Mediante este tipo de campos, podemos localizar información almacenada en otra lista que resida en sharepoint, creando una presentación personalizada en base a las columnas seleccionadas. PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 24 - o Si/No: Campo de tipo elección prefijado a dos valores Si/No (campo booleano) que nos permite presentar la información en un campo (CheckBox). o Persona o Grupo: Mediante este tipo de campos, Sharepoint nos permite almacenar usuarios o grupos de la aplicación, que en nuestro caso, están vinculados al controlador de dominio. Por defecto, todo registro residente en una lista de Sharepoint, presenta dos campos que representan al propietario del registro (Creado por), y al usuario que realizó la última modificación (Modificado por), estos campos al igual que los campos por defecto de tipo fecha, son gestionados automáticamente por Sharepoint. o Hipervínculo o Imagen: Campos configurados para poder almacenar URLs que al ser representadas para la vista de usuario serán interpretadas en base al tipo seleccionado. o Calculado: Campos basados en otras columnas, que nos permiten realizar cálculos sin que estos sean introducidos por el usuario. Por lo tanto este tipo de campos no son visibles en modo edición, pero si en modo visualización. o Datos externos: Gracias a este tipo de datos, como se denomina en Sharepoint, podemos realizar consultas a orígenes de datos externos, como por ejemplo, una base de datos SqlServer, Oracle, MySql, etc... o Metadatos: El servicio de metadatos de SharePoint 2010 nos permite asociar metadatos a los contenidos, estos metadatos se utilizarán para ayudar al buscador a encontrar información, ayuda a la catalogación de la información y PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 25 - permite al resto de usuarios dar un significado dentro del negocio. SharePoint nos permitirá indicar los metadatos escribiendo directamente una palabra o desde un árbol de términos con un sentido en nuestra organización. Una vez vistas las columnas de las que podemos disponer al crear una lista en Sharepoint, presentamos la definición necesaria para almacenar los datos de las comunicaciones procesadas en los terminales móviles. Inicialmente solo necesitamos dos listas en las que vamos a almacenar datos relativos a nuestra aplicación: o Usuarios: En esta lista almacenaremos los usuarios con acceso a la aplicación de los que residen en Active Directory, asignándoles un rol de los descritos en la fase de requisitos. La lista presentará la siguiente estructura: En nuestro caso el titulo será el identificador de usuario que se le asignará al operario que debe de realizar la intervención. Usuario: representa al usuario de Active Directory. Rol: Campo de tipo elección que nos permite seleccionar un rol de los existentes en el campo pre configurado. Activo: Este campo nos permite activar o desactivar un usuario sin necesidad de darlo de baja del sistema, ya que de lo contrario perderíamos datos históricos al eliminar al usuario. Una vez introducidos los primeros datos el modo de visualización de los datos es el siguiente: PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 32 - Más concretamente, nuestra aplicación residente en un terminal móvil con Windows phone 7, nos remitiremos a la url http://msdn.microsoft.com/enus/library/ff955762.aspx , en la cual podemos encontrar la versión del api necesaria para este tipo de desarrollos. 2.2.2. Servidor Web IIS Como hemos comentado anteriormente para albergar los servicios web que realizarán de conector, entre los terminales y sharepoint requerimos de un servidor web, que en nuestro caso será IIS. Proceso de instalación: Vamos a: Inicio -> Administrador del Servidor o pulsáis el icono que aparece al lado del botón inicio. En el Administrador del Servidor seleccionáis la opción Funciones: Pulsamos el enlace donde pone Agregar funciones: PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 33 - Pasamos la primera pantalla y en la siguiente seleccionamos la opción Servidor web IIS: Al seleccionar el Servidor web IIS nos va a pedir instalar unas características requeridas para Servidores Web (IIS), la verdad es que hay que decir sí, porque si cancelas no se instala el IIS. Pulsamos siguiente y a continuación nos muestra una pantalla con una breve descripción de lo que estamos instalando, podemos dar a siguiente otra vez y en esta pantalla hay un listado de opciones para instalar en el servidor IIS, como puede ser: ASP.NET, CGI, Redireccionamiento HTTP, y un largo etc… Dependiendo de qué funciones seleccionemos la aplicación pedirá que se agreguen características requeridas, es lo mismo que antes, si dices que no, no podrás instalar esa función por lo tanto a todo SI. Una vez tenemos todas las opciones que queremos seleccionadas pulsamos siguiente y tras la ventana resumen instalamos. Cuando la instalación acaba hay un resumen de la instalación y ya tenemos el IIS 7 listo para trabajar, vamos a: Inicio -> Herramientas Administrativas -> Administrador de Internet Information Services (IIS) y nos aparece IIS. PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 34 - 3. DESCRIPCIÓN DEL PRODUCTO 3.1. Visión global: elementos que lo integran y cómo interactúan Como hemos ido viendo a lo largo del desarrollo de este documento la aplicación que estamos desarrollando esta divida en tres bloques principales y que integrándose entre ellas, nos permiten llevar un sistema de incidencias con una entrada distribuida de las mismas, desde los terminales móviles. 3.2. Especificaciones técnicas. 3.2.1. Conexiones Dado que el sistema que hemos elegido para almacenar los datos es un sitio público de Sharepoint, podríamos recurrir a realizar las conexiones desde los servicios web nativos de sharepoint 2010, pero esta elección nos obligaría a realizar más conexiones desde el terminal, además de tener que residir en este más parte de la lógica. Esta carga de conexiones extra repercute directamente sobre la tarifa de datos, y es uno de los puntos que se deben optimizar a la hora de realizar este tipo de aplicaciones. Debido a esto, hemos optado por realizar un servicio web personalizado que se encargue de realizar una serie de operaciones. 3.2.2. Autenticación Dado que los servicios web que centralizan las conexiones han sido desarrollados a medida, cada comunicación que se realiza con el servidor estará provista de un usuario y contraseña que nos permitirá el acceso al método seleccionado. Dado que los servicios web serán publicados bajo un dominio seguro (https) el usuario y contraseña utilizados, serán transmitidos al servidor como texto plano. 3.2.3. Información intercambiada Actualizar Incidencia : Mediante este método un operario encargado de realizar las reparaciones, podrá actualizar los datos referentes a ella. PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 35 - Como podemos ver en la captura anterior, cada comunicación de actualización que procesamos, nos permite trabajar con una sola incidencia, ya que como referencia a ella utilizamos el identificador único que sharepoint les asigna al darlas de alta. Las propiedades de la incidencia que podemos actualizar son: Histórico, Rol asignado y estado de la misma. Insertar Incidencia : Mediante este método, cualquier persona que se descargue la aplicación, podrá insertar una incidencia en el sistema. Como podemos apreciar en este caso también poseemos usuario y contraseña, que nos sirve para securizar el servicio, de manera que sí un usuario posee un login valido en el sistema, podrá insertar la incidencia a su nombre, mientras que si no lo posee se utilizará un usuario y contraseña genericos ocultos en el código de la aplicación. PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 36 - Como podemos apreciar para dar de alta una incidencia, solo necesitamos darle una descripción a la misma, ya que el terminal se encarga, con el gps, de obtener la ubicación mediante latitud y longitud, en el momento en el que damos de alta la incidencia. Obtener Incidencias: Este método nos permite obtener un listado de incidencias en base al usuario que realiza la petición y la ubicación en la que se encuentra el usuario (en este caso, un operario con derechos de acceso al sistema de incidencias), por lo tanto una consulta realizada por un usuario, constará de una serie de pasos antes de devolver el listado solicitado. El primer paso que se realiza es obtener el rol asociado al login proporcionado, y como segundo paso, se obtendrán las incidencias asignadas a un rol en concreto, al que le ha sido configurado un radio de acción, y que nos servirá para obtener las incidencias cercanas al usuario. Mediante estos tres métodos que hemos desarrollado, cualquier aplicación podría integrarse con un sistema residente en sharepoint, independientemente del terminal en el que resida, ya que a estos servicios podría conectarse tanto un terminal con sistema operativo Windows Phone 7, como otros terminales con sistemas como Android. 3.3. Implementación Para realizar el desarrollo de los dos módulos del sistema que lo requerían, como hemos mencionado anteriormente se ha utilizado Visual Studio 2010. De ahora en adelante se irán introduciendo algunos fragmentos de código desarrollado. 3.3.1. Aspectos destacables durante el desarrollo del proyecto. El primer aspecto destacable al llevar a cabo el desarrollo del proyecto, es que tenemos que ser conscientes que sharepoint solo puede ser instalado en sistemas operativos de 64 bits, y esto condiciona el resto de decisiones, ya que necesitamos tener un sistema operativo Windows Server 2008 x64. Más PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 37 - adelante será descrito el entorno de desarrollo utilizado, ya que no todas las herramientas que necesitamos están disponibles para sistemas de 64 bits. Otro de los aspectos a tener en cuenta, es el dominio sobre el cual vamos a publicar el servicio web que sirve de pasarela a los terminales para conectar con sharepoint, ya que estos servicios han de estar publicados con un dominio compuesto por tres bloques (http://ServicioIncidencias.Encamina.com) ya que si no será imposible que los importemos desde visual studio. 3.3.2. Metodologías utilizadas. La implementación se ha llevado a cabo siguiendo un proceso iterativo horizontal de prototipos. A cada prototipo se añaden menús de la aplicación con sus correspondientes funcionalidades. El prototipo debe ser construido en poco tiempo, usando los programas adecuados y no se debe utilizar mucho dinero pues a partir de que éste sea aprobado podemos iniciar el verdadero desarrollo del software. El diseño rápido se centra en una representación de aquellos aspectos del software que serán visibles para el cliente o el usuario final. Este diseño conduce a la construcción de un prototipo, el cual es evaluado por el cliente para una retroalimentación; gracias a ésta se refinan los requisitos del software que se desarrollará. La interacción ocurre cuando el prototipo se ajusta para satisfacer las necesidades del cliente. Esto permite que al mismo tiempo el desarrollador entienda mejor lo que se debe hacer y el cliente vea resultados a corto plazo. El proceso seguido puede dividirse en tres prototipos, los cuales a su vez pueden desglosarse en una serie de pasos y funcionalidades: A. PROTOTIPO 1 En el primer prototipo se presenta la primera pantalla de la aplicación, mediante la cual podemos enviar una incidencia al sistema central. Para obtener los resultados hemos de realizar la conexión al servicio web, e implementar el módulo de geoposicionamiento, que se encargará de obtener la posición en la que se encuentra el terminal en el momento de dar de alta la incidencia. PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 38 - Como podemos apreciar cualquier persona que se descargue la aplicación podrá insertar una incidencia en el sistema, aunque para que sean accesibles para los operarios (Prototipo 2), deberán ser validadas desde por un usuario en el sistema central. Como posible ampliación a esta pantalla, se propone incorporar como requisito, adjuntar una imagen a la incidencia. Aunque para ello necesitamos esperar a la actualización del Framework a la versión 7.1, que permite acceso a la cámara. B. PROTOTIPO 2 El segundo prototipo que presentamos, ampliación del prototipo 1, presenta una serie de pantallas nuevas, que permiten a un usuario/operario dado de alta en el sistema y con login valido, acceder las incidencias que tiene asignadas por rol, distancia y prioridad. Desde el listado que obtenemos se amplía la posibilidad de posicionar el listado de incidencias y ubicar al operario en el mapa, para que pueda decidir a qué puntos acudir y en qué orden. PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 39 - Como podemos apreciar en las pantallas presentadas, el desarrollo requerido para este prototipo es la conexión al servicio, que ya teníamos desarrollada en el prototipo 1, y que por lo tanto será consumir un nuevo método, obtener incidencias, que ya ha sido presentado en el apartado de conexiones, y la interacción los mapas de Bing desde el api de Windows phone 7. Como futura ampliación a este prototipo se propone poder trazar la ruta más corta entre la ubicación del terminal y una incidencia seleccionada C. PROTOTIPO 3 Para el desarrollo del tercer prototipo se plantea poder acceder a los datos de una incidencia para que el operario pueda comunicar tanto el estado de la misma, como cualquier comunicado que quiera realizar al sistema central, como por ejemplo (Se necesita fontanero), y de este modo el usuario del sistema central encargado de gestionar las incidencias, reasignará la misma al fontanero más cercano. PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 40 - Como podemos apreciar en las pantallas anteriores, las dos primeras parten del prototipo anterior, ampliando el sistema para que desde cualquiera de las dos, al pulsar sobre la incidencia, se pueda acceder a los datos de la misma y de esta manera poder actualizar los datos necesarios. Como última pantalla de la aplicación se presenta el contenido típico de cualquier aplicación (Acerca de…), que presentamos en forma modal. Para llevar a cabo el desarrollo necesario en este prototipo se necesita aprender a desarrollar sobre capas en los mapas de Bing http://msdn.microsoft.com/en-us/library/ee681884.aspx , además de consumir el último método disponible, actualizar incidencia, que como vemos nos permite actualizar ciertos datos de la misma. 3.3.3. Tecnologías implicadas. Para llevar a cabo el desarrollo necesario, se ha optado por desarrollar en C# mediante la plataforma de Visual studio 2010, aunque también podríamos haber optado por realizar nuestro desarrollo en Visual Basic. En los siguientes apartados veremos cómo han sido desarrollados los diferentes módulos del sistema y un pequeño análisis del código interno que hemos utilizado. Como ya hemos ido viendo a lo largo de toda la memoria, existen una serie de tecnologías implicadas sobre las que tendremos que o bien desarrollar, o bien realizar configuraciones para poder ensamblar el sistema. Windows Phone 7, como ya hemos visto, es la aplicación más destacada y la que más desarrollo implica. Soap, como también hemos visto en esta parte del sistema realizamos la integración mediante los métodos ya expuestos en el punto 3.2.3, que utilizarán las librerías cliente del sistema central Sharepoint 2010, del cual ya hemos realizado la instalación y configuración del site, y los elementos necesarios para darle un núcleo central al sistema. PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 41 - 3.3.4. Descripción del entorno de desarrollo. Una vez que hemos conocido un poco la arquitectura de hardware y software general que podemos encontrar en Windows Phone es hora de comenzar a preparar nuestro entorno de desarrollo, para ello vamos a dar un repaso a las herramientas que Microsoft pone a nuestra disposición de forma gratuita para poder crear aplicaciones para la plataforma. Para albergar el sistema central de nuestra aplicación, compuesto por nuestro cms central, y los servicios Soap de acceso al mismo, hemos optado por realizar la instalación en servidor Windows 2008 r2 sobre una imagen virtual generada con VMWare Tools, ya que de esta manera podemos desligarnos de la arquitectura hardware de desarrollo. Por otro lado los desarrollos ligados al terminal móvil, han sido creados en el sistema local, no en la imagen virtual mencionada en el párrafo anterior, para de esta manera tratar de emular las conexiones que se realizaran en un entorno real. Para comenzar a desarrollar aplicaciones en Windows Phone necesitaremos descargar desde la web de Microsoft el Kit de Desarrollo de Software (SDK por sus siglas en ingles Software Development Kit ) que incluye todas las herramientas que podemos necesitar para crear una aplicación para Windows Phone:  Microsoft Visual Studio 2010 para Windows Phone  Microsoft Expression Blend para Windows Phone  Emulador de Windows Phone  Application Deployment  Windows Phone Developer Registration Podemos descargar el SDK de desarrollo de Windows Phone 7 desde la siguiente URL: http://create.msdn.com/en-us/home/getting_started donde podremos encontrar, además de las herramientas, las últimas actualizaciones del SDK e instrucciones sobre su instalación. Una vez que hayamos descargado las herramientas, el proceso de instalación es muy sencillo, aunque puede llevar un tiempo considerable en función de la calidad de nuestra conexión a Internet, el instalador se compone solo de un lanzador que ocupa algo menos de 1Mb y descarga todos los componentes que necesite durante la instalación, necesitando en total alrededor de 230Mb. Una vez terminada la instalación debemos descargarnos las últimas actualizaciones de las herramientas de desarrollo que además de corregir bugs añaden las siguientes herramientas: WPConnect: Windows Phone Connect nos permitirá depurar aplicaciones en un dispositivo físico sin tener el software Zune de sincronización activado, anteriormente, al intentar depurar aplicaciones que hiciesen uso de las APIs de PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 48 - private void cerrarpopup(object sender, EventArgs e) { ChildWindow s = (ChildWindow)sender; s.Close(); } Como podemos observar en tanto en el método encargado de realizar el consumo, como el método encargado de realizar la recepción de la comunicación, utilizan el objeto ChildWindow que nos permite utilizar ventanas modales en lugar de las habituales de Windows phone. Además al crear la ventana modal, le asignamos un manejador al realizar la pulsación sobre ella, controlado por el método cerrarpopup, que como su nombre indica cierra la ventana modal que le haya invocado. Otra de las ramas de investigación que hemos necesitado cubrir con el primer prototipo ha sido, como implementar los nuevos menús de la barra inferior de las aplicaciones, además de cómo realizar la navegación entre las diferentes páginas que componen nuestra aplicación. Para instanciar la barra, necesitamos agregar el siguiente código en el constructor de nuestra clase principal “NuevaIncidencia”: ApplicationBar = new ApplicationBar(); ApplicationBar.IsMenuEnabled = true; ApplicationBar.IsVisible = true; ApplicationBar.Opacity = 1.0; Una vez creado el objeto ApplicationBar, tenemos que agregar cada uno de los botones que queremos que aparezca, además de los métodos que ejecuten el código necesario para realizar la acción asignada. ApplicationBarIconButton informacion = new ApplicationBarIconButton(new Uri("/Icons/i.png", UriKind.Relative)); informacion.Text = "ENCAMINA"; informacion.Click += new EventHandler(info); ApplicationBar.Buttons.Add(informacion); ApplicationBarIconButton op = new ApplicationBarIconButton(new Uri("/Icons/btn_info.png", UriKind.Relative)); op.Text = "Operario"; op.Click += new EventHandler(operario); ApplicationBar.Buttons.Add(op); ApplicationBarIconButton enviar = new ApplicationBarIconButton(new Uri("/Icons/btn_flecha.png", UriKind.Relative)); enviar.Text = "Enviar"; enviar.Click += new EventHandler(enviarIncidencia); ApplicationBar.Buttons.Add(enviar); Para finalizar el primer prototipo de la aplicación nos falta dotar al código de los métodos necesarios para ejecutar las acciones de los botones Operario, e Info, PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 49 - ya que el método de envió de nueva incidencia, ya ha sido expuesto con anterioridad. private void info(object sender, EventArgs e) { ChildWindow info = new ChildWindow(); info.FontSize = 20; info.Title = "Acerca de ENCAMINA."; info.Content = "Somos una consultora tecnológica que \npiensa en colores … … … … \nEmail:[email protected] \nSitio Web: www.encamina.com"; info.Padding = new Thickness(10, 40, 40, 10); info.HasCloseButton = false; info.MouseLeftButtonUp += new MouseButtonEventHandler(cerrarpopup); info.Width = 400; info.Height = 550; info.Show(); } private void operario(object sender, EventArgs e) { NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative)); } La forma más fácil de realizar navegación de página es usando un control HyperlinkButton. Puedes utilizar su propiedad de navegación NavigationUri para navegar a una página. El siguiente ejemplo muestra cómo navegar a una página con nombre SecondPage.xaml. XAML <HyperlinkButton NavigateUri="SecondPage.xaml" /> Si no deseas utilizar una HyperlinkButton, como es nuestro caso, ya deseamos navegar desde la Barra de Aplicación, puedes realizar la navegación mediante la clase NavigationService. Esta clase contiene varias propiedades, métodos y eventos que te ayudan a la navegación. Puedes utilizar el método NavigationService.Navigate para navegar a una página específica o NavigationService.GoBack para regresar a la página anterior. Para realizar el desarrollo del prototipo dos, hemos necesitamos investigar, como realizar el almacenamiento de credenciales en el sistema de directorios que posee Windows phone 7, denominado Isolated Storage por aplicación, que tiene las siguientes características: Como las propias palabras dicen “Isolated Storage”, este almacenamiento es totalmente aislado de cualquier otra aplicación. Como ya sabréis los programas son ejecutados en una especie de SandBox, en la cual no disponen de acceso a ningún recurso de cualquier otra aplicación. PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 50 - Aunque es bien cierto el primer punto, disponemos de un almacenamiento “especial”, el cual si puede ser compartido y accesible por cualquier aplicativo, es el MediaLibrary. Cada aplicación dispone para almacenamiento de todo el espacio disponible para el dispositivo en cada momento. Es decir no tenemos un espacio reservado. Hay que tener en cuenta que no sabremos nunca donde se guarda la información, (bueno a medias), lo que quiero decir es que en dispositivos con tarjetas MicroSD de memoria externa, no sabremos si la información es guardada en la memoria interna del propio teléfono o es guardada en la MicroSD, ya que el sistema junta ambos espacios formando una especie de Raid 0, no distinguiendo para el usuario uno u otro. A lo que quiero llegar es que si queremos guardar cierta información directamente en la MicroSD, directamente no vamos a poder hacerlo. Con todas esas consideraciones iniciales, vamos a explicar cómo funciona y como se almacena y se lee en este espacio. Para empezar debemos de tener en cuenta que vamos a utilizar el namespace “System.IO.IsolatedStorage“. Este namespace nos ofrece dos tipos de forma de almacenamiento, para ello utilizaremos las clases “IsolatedStorageSettings” y la clase “IsolatedStorageFile”. Utilización de “IsolatedStorageSettings”. Principalmente esta clase la utilizaremos cuando queramos guardar los datos de la configuración de nuestra aplicación, el nombre de la propia clase nos da alguna que otra pista. ¿Por qué la configuración?, bueno realmente con ella podremos guardar lo que nos apetezca pero concretamente esta clase está preparada y diseñada para guardar esta información debido a que nos proporciona una IDictionary de tipo clave-valor, “Dictionary(Of TKey, TValue)“, llamado “ApplicationSettings” el cual automáticamente nos busca el espacio de PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 51 - almacenamiento e interacciona con él. Eso nos facilita mucho la labor de guardar y leer datos simples. private static void SaveLogin(string usuario,string pass) { IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication(); myStore.CreateDirectory("Incidencias"); using (var isoFileStream = new IsolatedStorageFileStream("Incidencias\\conf.txt", FileMode.OpenOrCreate, myStore)) { using (var isoFileWriter = new StreamWriter(isoFileStream)) { isoFileWriter.WriteLine(usuario); isoFileWriter.WriteLine(pass); ChildWindow info = new ChildWindow(); info.FontSize = 20; info.Title = "INFO."; info.Content = "Usuario y Contraseña \nguardados correctamente."; info.Padding = new Thickness(10, 40, 40, 10); info.HasCloseButton = false; info.MouseLeftButtonUp += new MouseButtonEventHandler(cerrarpopup); info.Width = 250; info.Height = 150; info.Show(); } } } private void ReadLogin() { IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication(); try { using (var isoFileStream = new IsolatedStorageFileStream("Incidencias\\conf.txt", FileMode.Open, myStore)) { using (var isoFileReader = new StreamReader(isoFileStream)) { textBox1.Text = isoFileReader.ReadLine(); passwordBox1.Password = isoFileReader.ReadLine(); } } } catch { } } 4. DISTRIBUCIÓN DEL SOFTWARE Como hemos mencionado a lo largo del desarrollo de este documento, para realizar la distribución del software explotaremos las ventajas que nos proporciona el Market PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 52 - place de Windows Phone 7, mediante el cual podemos llegar a una gran cantidad de usuarios sin necesidad de montar un canal de distribución propio. Requisitos que debe cumplir la aplicación para pasar las pruebas del Marketplace:  Las capturas de pantalla que se envían no deben incluir ninguna parte del emulador, sólo deben ser imágenes de la aplicación. Las dimensiones deben ser las que se solicitan y no deben ser transparentes.  La aplicación no debe alcanzar ningún estado en el cual al pulsar el botón atrás la aplicación no termine. Dicho botón sólo se puede utilizar para ir “hacia atrás”, y si es la página primera al volver a pulsarlo, la aplicación terminará.  Si el contenido de la aplicación soporta cualquier otro idioma que no sea inglés, se debe informar de dicho soporte en la descripción de la aplicación. Además la descripción debe estar en los idiomas soportados.  Asegurarse que todos los contenidos de la aplicación son visibles y legibles sin importar el Theme seleccionado. Por ejemplo, si cambiamos entre un tema oscuro y claro los textos deben ser visibles.  La lista de iconos de una aplicación que se envíen deben ser los mismos iconos que se utilizan en el código compilado de la aplicación.  La lista de iconos de aplicación y el icono que se utiliza para anclar al inicio no deben ser iconos generalistas de Windows Mobile; deben ser iconos personalizados y del tamaño que define la guía de diseño de Windows Phone en formato PNG y no transparentes. Publicando la aplicación Una vez finalizado el desarrollo procederemos a realizar el envío de la aplicación al Marketplace, es necesario que selecciones la opción Windows Phone que aparece en el menú My Dashboard. Seleccionamos submit new app para iniciar el proceso de envío. PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 53 - Para conocer el proceso de que hemos seguido para subir la aplicación al Marketplace, ver el anexo 4. Cuando esté todo correcto únicamente hay que seleccionar Submit for certification y el proceso de envío finalizará. Se puede comprobar el estado en cualquier momento a través del dashboard. 5. CONCLUSIONES 5.1. Comparativa de objetivos y resultados. Analizando el resultado obtenido, respecto a los requisitos solicitados al realizar el análisis de la aplicación, se puede apreciar que el resultado final es muy similar al expuesto en los citados requisitos iniciales. Por otro lado uno de los requisitos de la elección de este proyecto fue, aprender a gestionar todo el ciclo de vida de una aplicación Windows phone 7, ya que este proceso es totalmente diferente a lo que hasta ahora presentaba Microsoft para los terminales con su sistema operativo. Este requisito se ha cumplido con creces, ya que desde el inicio de este documento, hasta el presente día, Encamina tiene disponibles en el Market Place 2 aplicaciones más. Respecto a los conocimientos de programación obtenidos, han superado las expectativas iniciales, ya que durante el transcurso del desarrollo, Microsoft ha actualizado la versión del sistema operativo con más de 500 funciones nuevas en el api de desarrollo y dando lugar a la versión 7.5 del sistema operativo llamado comúnmente - Windows Phone Mango - . PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 54 - 5.2. Aplicabilidad de la herramienta desarrollada. La aplicación desarrollada ha permitido integrar los servicios de telefonía que nos prestan los terminales móviles, con un sistema central, siendo los terminales móviles otra forma de acceso al citado sistema. Por lo que esta aplicación ha permitido a la empresa poder ofrecer nuevos modos de acceso a los sistemas centrales, pudiendo adaptar la aplicación a cualquier sistema, ya que la lógica de conexiones recae en los servicios web desarrollados. 5.3. Posibles ampliaciones futuras Cabe destacar como posibles ampliaciones, naturales en este sistema tipo de sistemas, la ampliación los sistemas operativos móviles más extendidos en el mercado, haciendo el acceso universal para todos los terminales disponibles, aunque para ello sería necesario aprender otros lenguajes de programación y otros métodos de distribución, ya que cada plataforma existente posee los suyos propios, como puede ser el caso de Apple con los terminales iphone y Goolge con sus terminales Android. Además de estas ampliaciones, podríamos realizar algunas otras, como podrían ser, traza de rutas desde el punto actual hasta el punto de la incidencia seleccionada, o un algoritmo que optimice la mejor ruta a realizar por el operario para solventar dichas incidencias. Como posibles ampliaciones en la parte servidor, al igual que en la parte cliente, podríamos sustituir sharepoint por cualquier sistema capaz de almacenar y representar la estructura diseñada como repositorio de datos, bien sea cualquier sistema estándar de los existentes en el mercado, o un sistema personalizado basado en cualquier sistema de bases de datos. Además de estas estos cambios otra posible ampliación seria la automatización del sistema con herramientas como Nintex Workflow, sobre la cual haremos una pequeña síntesis a continuación. 5.3.1. Nintex Workflow para Sharepoint 2010 Automatiza procesos de negocio en SharePoint 2010 rápida y fácilmente. Nintex Workflow ofrece un diseñador de flujos de "arrastrar y soltar", conectividad y soluciones de Workflow avanzadas para la plataforma de colaboración y gestión documental Microsoft. Permite, tanto si eres usuario de negocio como si eres profesional, automatizar, rápida y fácilmente, procesos de negocio; desde una simple petición de aprobación, hasta la compleja integración con aplicaciones y fuentes de datos externas. En nuestro caso en particular podríamos aplicar esta herramienta, para realizar avisos a unos futuros responsables de área, que serían los encargados de validar finalmente el trabajo realizado, además de poder automatizar otras muchas cosas, como la reasignación o cambios de estado de una incidencia. PFC-INTEGRACIÓN WINDOWS PHONE 7 Y SHAREPOINT 2010 - 55 - 6. BIBLIOGRAFÍA 6.1. Referencias a los libros utilizados Como referencia para realizar el desarrollo del proyecto se han utilizado fundamentalmente dos libros, cada uno de ellos destinado a una parte del proyecto. Sharepoint 2010 de principio a fin ISBN: 978-84-936696-5-2 Windows Phone 7.5 Desarrollo de aplicaciones en Silverlight ISBN: 978-84-939036-6-4