You are on page 1of 63

Todo sobre Aplicaciones para SharePoint, Office y Office 365

:
Creación y publicación de Apps para la Office Store desde cero.
Gustavo Velez Juan Carlos González Fabián Imaz Alberto Díaz

TODO SOBRE APLICACIONES PARA SHAREPOINT, OFFICE Y OFFICE 365: CREACIÓN Y PUBLICACIÓN DE APPS PARA LA OFFICE STORE DESDE CERO.
No está permitida la reproducción total o parcial de este libro, ni su tratamiento informático, ni la transmisión de ninguna forma o por cualquier medio, ya sea electrónico, mecánico, por fotocopia, por registro u otros métodos, sin el permiso previo y por escrito de los titulares del Copyright. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra. DERECHOS RESERVADOS © 2013, respecto a la primera edición en español, por Krasis Consulting, S. L. www.Krasis.com ISBN: 978-84-941112-2-8

CREATIVIDAD Diseño Cubierta: Pablo Iglesias Francisco Fruta Cubierta: La manzana tipo “Royal Gala" es de origen neocelandés y tiene la piel con estrías rojas y naranjas sobre un fondo amarillo verdoso. Su forma es muy redondeada y su carne es blanca, crujiente y consistente. Muy aromática y jugosa. Su recolección se da desde finales de agosto hasta diciembre.

Agradecimientos
De alguna forma, era inevitable hacer un libro sobre Aplicaciones para SharePoint y Office. Nos guste o no, Microsoft está apostando fuerte por este nuevo modelo para personalizar dos de sus productos más rentables. Así que sí queremos continuar en el mundo profesional relacionado con ellos, tenemos que comprender las Aplicaciones, meternos en su ecosistema, dedicar el tiempo necesario para aprender sus posibilidades e imposibilidades, como usarlas, manejarlas y, de cierta forma, disfrutar el descubrimiento del nuevo mundo que se nos abre. Escribir este libro, como con cualquier otro libro de SharePoint y Office, ha sido un descubrimiento tecnológico, lo mismo que una gran aventura humana. Muchas gracias a mis compañeros José Manuel, Juan Carlos, Fabián y Alberto por su dedicación y profesionalismo, lo mismo que a todas las personas que lo han hecho posible. Gustavo Velez Cuando hace unos pocos meses Alberto me habló de esta aventura, no sólo no dude en darle un “Si, quiero”, sino que además le propuse involucrar a mis otros dos compañeros de batalla en tantas aventuras de comunidad y retos tecnológicos: Gustavo y Fabián. Ha sido todo un privilegio trabajar en este equipo formado por encima de todo por grandes amigos, personas apasionadas por la tecnología y capaces de recoger el guante de escribir un libro tan completo sobre Aplicaciones para Office y SharePoint. Como era de esperar, el resultado ha sido simplemente espectacular, completo y un reflejo real de todas las posibilidades de esta nueva apuesta tecnológica de Microsoft. Como en otras ocasiones, no puedo olvidarme de todas las personas que me rodean, me motivan, y que me animan a que me supere en cada nuevo paso que doy y que va definiendo mí camino: mi familia, mis verdaderos y mejores amigos (Anuar, Juanfran, David y José Antonio). Y por supuesto, en este libro no puedo olvidarme de quién se está convirtiendo en parte esencial de mi vida: Raquel, gracias por estar ahí y llenar mis días. Finalmente, no me puedo olvidar de mi entorno de toda la comunidad de SharePoint tan dinámica y llena de gente con ganas de aprender y enseñar y siempre dispuesta a compartir sus conocimientos, y de la editorial Krasis (gracias José Manuel) por darnos la oportunidad de escribir sobre la gran novedad a nivel de desarrollo para SharePoint & Office: El nuevo modelo de Aplicaciones. Juan Carlos González

Es muy reconfortante alcanzar las metas que nos proponemos, pero lo es más alcanzar las mismas siendo parte de este gran equipo. Quiero agradecer a mis compañeros, más aún, a mis amigos, Alberto, Juan Carlos y Gustavo con los que hemos formado un gran grupo de trabajo para escribir este libro y otras actividades que llevamos a cabo, Quiero agradecer a todos los que conforman Siderys y Bsn por permitirme manejar mi tiempo y mis compromisos durante todo este proyecto, sin su apoyo y disposición esto no hubiera sido posible, gracias Álvaro, Diego, y Javier porque desde un principio, hace 8 años siempre me han apoyado incondicionalmente y gracias Juan Manuel por todo tu sostén y respaldo durante estos últimos años. Por último a vos Paula por estar ahí siempre apoyándome incondicionalmente, gracias amor. Fabián Imaz Allá por el final del año 2010, tuve la oportunidad de pasar un fin de semana en comunidad con Juan Carlos y Gustavo. Por aquel entonces, Juan Carlos era un referente para mí a nivel nacional cuando hablábamos de SharePoint y Gustavo era la eminencia que escribía libros de SharePoint, profesionales con tanto nivel que eran inalcanzables para mí. Gratamente me llevé una gran sorpresa, a Juan Carlos le debo mucho por hacer de un gran anfitrión, ser una gran persona y un buen amigo desde esos días, y a Gustavo, lo sigo considerando el gran maestro, pero que es mucho más como persona y, como no, un gran amigo. Desde entonces me han permitido formar parte de las aventuras de SharePoint, entre las que tenemos que incluir escribir este libro, en el que he conocido mejor a Fabián y lo considero otro gran amigo. Con respecto al libro, tengo que agradecer a los tres formar parte de este granito de arena que hemos querido aportar a la comunidad de SharePoint de habla hispana y sobre todo a Krasis y José Manuel por tener una editorial que nos permite escribirlos, en una época en la que lo digital premia sobre el papel de verdad. Por su puesto, tengo que dar las gracias a todos los que formamos la familia de General de Software, porque, sin su apoyo y ayuda, no hubiera sido posible todo esto, no sólo este libro, sino el aporte que hacemos todos los días a la comunidad. Mis padres me pusieron un Spectrum ZX en las manos cuando sólo tenía 5 años, y creyeron en mí para llegar hasta aquí, y mis amigos, sobre todo Julio, que me soportan y ayudan, aunque siempre esté trabajando. Gracias a todos porque os he necesitado siempre a mi lado. Aunque todo el mérito es para mi mujer, Miriam, que me conoce y me da toda la libertad que necesito para dedicarme a lo que más me gusta, la tecnología. Alberto Diaz

iv

Contenido
AGRADECIMIENTOS ............................................................................................... III CONTENIDO .............................................................................................................. V AUTORES ................................................................................................................ XIII PRÓLOGO ..................................................................................................................15 PRESENTACIÓN .......................................................................................................17 CAPÍTULO 1: APLICACIONES PARA OFFICE Y SHAREPOINT ...................21 1.- Introducción................................................................................................................................ 21 2.- Aplicaciones para Office 2013 ................................................................................................ 23 3.- Aplicaciones para SharePoint 2013 ....................................................................................... 23 3.1.- ¿Aplicaciones o soluciones?......................................................................................... 25 3.1.1.- Elementos de decisión .......................................................................................... 26 4.- Conclusiones............................................................................................................................... 28 CAPÍTULO 2: ARQUITECTURA DE APLICACIONES ......................................29 1.- Introducción................................................................................................................................ 29 1.1.- El archivo .app................................................................................................................. 30 1.2.- El archivo de manifiesto ............................................................................................... 32 2.- Arquitectura de Aplicaciones para Office ........................................................................... 35 2.1.- El catálogo de Aplicaciones para Office ................................................................... 36 2.2.- Tipos de Aplicaciones para Office ............................................................................. 37 2.3.- Interfaz de usuario ......................................................................................................... 38 3.- Arquitectura de Aplicaciones para SharePoint .................................................................. 39 3.1.- Tipos de Aplicaciones para SharePoint .................................................................... 40 3.2.- Interfaz de usuario ......................................................................................................... 41 4.- Conclusiones............................................................................................................................... 42 CAPÍTULO 3: HERRAMIENTAS DE DESARROLLO ..........................................45 1.2.3.4.5.6.7.Introducción................................................................................................................................ 45 Herramientas de desarrollo de Office para Visual Studio 2012 .................................... 46 NAPA y el sitio de desarrollador en Office 365 ............................................................... 49 Visual Studio LightSwitch ......................................................................................................... 56 Microsoft Office Access 2013 ................................................................................................ 57 TypeScript ................................................................................................................................... 61 Conclusiones............................................................................................................................... 61
v

Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

CAPÍTULO 4: TIPOS DE APLICACIONES PARA OFFICE ...............................63 1.2.3.4.5.Introducción................................................................................................................................ 63 Aplicaciones de panel de tareas ............................................................................................. 64 Aplicaciones de contenido ...................................................................................................... 66 Aplicaciones de correo ............................................................................................................ 68 API JavaScript para Aplicaciones de Office ......................................................................... 70 5.1.- API para Aplicaciones centradas en el documento ............................................... 71 5.1.1.- Métodos para interactuar con contenido........................................................ 72 5.1.2.- Bindings en Aplicaciones ...................................................................................... 74 5.2.- API para Aplicaciones centradas en correo ............................................................ 76 5.2.1.- Acceso a información del perfil de usuario ..................................................... 78 5.2.2.- Acceso a expresiones regulares y entidades .................................................. 78 5.2.3.- Acceso a los servicios web de Exchange (EWS)............................................ 79 6.- Experiencia de usuario en Aplicaciones de Office ............................................................ 79 6.1.- Diseño de una Aplicación de panel de tareas......................................................... 80 6.2.- Diseño de una Aplicación de contenido .................................................................. 81 6.3.- Diseño de una Aplicación de correo ........................................................................ 82 7.- Conclusiones............................................................................................................................... 82 CAPÍTULO 5: APLICACIONES DE PANEL DE TAREAS PARA OFFICE ......85 1.- Introducción................................................................................................................................ 85 2.- Funcionamiento de las Aplicaciones de panel de tareas .................................................. 86 2.1.- API de Office para Aplicaciones de panel de tareas ............................................. 86 3.- Desarrollo de una Aplicacion de panel de tareas.............................................................. 90 3.1.- Creación del proyecto de Visual Studio .................................................................. 90 3.2.- Diseño de la interfaz gráfica ........................................................................................ 96 3.3.- Implementación de la lógica de negocio ................................................................ 101 4.- Conclusiones............................................................................................................................. 107 CAPÍTULO 6: APLICACIONES DE CONTENIDO PARA OFFICE ................109 1.- Introducción.............................................................................................................................. 109 2.- API Office.js para Aplicaciones de contenido................................................................... 109 3.- Creación de Aplicaciones de contenido ............................................................................ 111 3.1.- Aplicación de contenido creada por defecto en Visual Studio ........................ 112 3.2.- Creación de una Aplicación de contenido ............................................................ 115 4.- Conclusiones............................................................................................................................. 122 CAPÍTULO 7: APLICACIONES DE CORREO PARA OFFICE ........................123 1.- Introducción.............................................................................................................................. 123 2.- Posibilidades de una Aplicación de correo ....................................................................... 125 3.- El modelo de objetos para aplicaciones de correo......................................................... 126 3.1.- El Objeto Mailbox ........................................................................................................ 128 3.2.- Preservación de información (Roaming) ................................................................ 130 3.3.- Autenticación de Aplicaciones de correo ............................................................. 130
vi

Contenido vii

3.4.- Permisos para Aplicaciones de correo................................................................... 131 4.- Servicios web de Exchange ................................................................................................... 132 5.- Programación de una Aplicación de correo ..................................................................... 134 6.- Conclusiones............................................................................................................................. 139 CAPÍTULO 8: TIPOS DE APLICACIONES DE SHAREPOINT.......................141 1.- Introducción.............................................................................................................................. 141 2.- Aplicaciones por tipo de hosting ......................................................................................... 142 2.1.- Aplicaciones hospedadas por SharePoint .............................................................. 143 2.2.- Aplicaciones hospedadas en la nube ....................................................................... 143 2.2.1.- Aplicaciones hospedadas por un proveedor................................................. 144 2.2.2.- Aplicaciones autohospedadas ........................................................................... 144 2.3.- El fichero AppManifest.xml........................................................................................ 145 2.4.- Elección entre una Aplicación en la nube y una Aplicación hospedada por SharePoint ................................................................................................................................ 147 3.- Clasificación por tipo de punto de entrada ...................................................................... 147 3.1.- Aplicación de pantalla completa ............................................................................... 147 3.2.- Elementos de Aplicación ............................................................................................ 148 3.3.- Acciones personalizadas............................................................................................. 149 4.- Conclusiones............................................................................................................................. 150 CAPÍTULO 9: DISEÑO Y ESTILOS DE UNA APLICACIÓN ..........................151 1.- Introducción.............................................................................................................................. 151 2.- Control Chrome...................................................................................................................... 152 2.1.- Cómo usar el control Chrome ................................................................................ 153 3.- Hojas de estilo.......................................................................................................................... 159 3.1.- Cómo usar las hojas de estilo .................................................................................. 159 4.- Elementos de Aplicación........................................................................................................ 161 4.1.- Cómo crear elementos de Aplicación.................................................................... 162 5.- Acciones personalizadas ........................................................................................................ 167 5.1.- Cómo crear acciones personalizadas ..................................................................... 168 6.- Plantilla de Aplicación ............................................................................................................. 175 6.1.- Cómo crear una plantilla de Aplicación ................................................................. 175 7.- Conclusiones............................................................................................................................. 179 CAPÍTULO 10: CSOM, REST, ODATA Y CROSS DOMAIN ...........................181 1.- Introduccción............................................................................................................................ 181 2.- Modelo de objetos en cliente............................................................................................... 184 2.1.- Implementación .NET ................................................................................................. 186 2.2.- Implementación ECMAScript.................................................................................... 194 3.- API REST y OData .................................................................................................................. 198 4.- Llamadas cross domain .......................................................................................................... 205 4.1.- Uso de la clase WebProxy ........................................................................................ 210 5.- Conclusiones............................................................................................................................. 216

Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

CAPÍTULO 11: PERMISOS, SEGURIDAD Y OAUTH.......................................217 1.- Introducción.............................................................................................................................. 217 2.- Identidad basada en notificaciones ...................................................................................... 218 2.1.- Conceptos básicos de notificaciones ...................................................................... 218 2.1.1.- Identidad................................................................................................................. 218 2.1.2.- Claim ....................................................................................................................... 218 2.1.3.- Token de seguridad ............................................................................................. 219 2.1.4.- Servicio de caché distribuido ............................................................................ 220 3.- OAuth......................................................................................................................................... 220 3.1.- Aplicaciones autenticadas internamente ................................................................ 220 3.2.- Aplicaciones autenticadas externamente............................................................... 221 4.- Proceso de autenticación de Aplicaciones ........................................................................ 222 4.1.- TokenHelper ................................................................................................................. 224 4.2.- Tokens ............................................................................................................................ 226 4.3.- Token App-Only .......................................................................................................... 229 4.4.- Cacheo del token de acceso ..................................................................................... 230 4.5.- Autenticación Server-To-Server (S2S) ................................................................... 231 5.- Proceso de autorizacion de Aplicaciones.......................................................................... 233 5.1.- Políticas de autorización ............................................................................................ 233 5.2.- Autorización en el archivo AppManifest ................................................................ 233 5.3.- Autorización por medio del usuario ....................................................................... 235 5.4.- Acceso anónimo en Aplicaciones ............................................................................ 236 6.- Conclusiones............................................................................................................................. 237 CAPÍTLO 12: APLICACIONES HOSPEDADAS POR SHAREPOINT ...........239 1.- Introducción.............................................................................................................................. 239 2.- Creación de una Aplicación hospedada por SharePoint ............................................... 241 3.- Conclusiones............................................................................................................................. 252 CAPÍTULO 13: APLICACIONES AUTOHOSPEDADAS .................................253 1.- Introducción.............................................................................................................................. 253 2.- Arquitectura de una Aplicación autohospedada .............................................................. 254 3.- Creación de una Aplicación autohospeada con Visual Studio ..................................... 255 3.1.- Archivos de manifiesto y web.config de una Aplicación autohospedada ...... 265 3.2.- Despliegue y prueba de la Aplicación ..................................................................... 266 4.- Depuración remota de Aplicaciones con el Service Bus de Windows Azure......... 268 5.- Modelo de uso y licenciamiento .......................................................................................... 270 6.- Conclusiones............................................................................................................................. 270 CAPÍTULO 14: APLICACIONES HOSPEDADAS POR UN PROVEEDOR...271 1.- Introducción.............................................................................................................................. 271 2.- Arquitectura de una Aplicación hospedada por un proveedor ................................... 272

viii

Contenido ix

3.- Creación de una Aplicación hospedada por un proveedor .......................................... 273 3.1.- Aplicación hospedada por un proveedor de Aplicaciones ASP.NET ............. 273 3.2.- Aplicación hospedada por un proveedor de Aplicaciones PHP ...................... 279 4.- Conclusiones............................................................................................................................. 287 CAPÍTULO 15: INTEGRACIÓN DE DATOS Y LÓGICA DE NEGOCIO EN APLICACIONES.......................................................................................................289 1.- Introducción.............................................................................................................................. 289 2.- Manejadores de eventos remotos....................................................................................... 290 2.1.- Creación de un manejador de eventos remoto .................................................. 291 3.- Tipos de contenido externo ................................................................................................. 299 3.1.- Creación de un ECT con Visual Studio.................................................................. 300 4.- Flujos de trabajo ...................................................................................................................... 305 4.1.- Creación de un flujo de trabajo en una Aplicación ............................................. 305 4.2.- Despliegue y prueba del flujo de trabajo ............................................................... 310 5.- Integración mediante el motor de búsquedas .................................................................. 312 6.- Integración mediante servicios REST ................................................................................. 317 7.- Conclusiones............................................................................................................................. 321 CAPÍTULO 16: IMPLEMENTACIÓN DE APLICACIONES .............................323 1.- Introducción.............................................................................................................................. 323 2.- Configuración para utilizar el catálogo de Aplicaciones ................................................ 324 2.1.- Configuración de DNS para Aplicaciones ............................................................. 324 2.2.- Configuración de SharePoint para Aplicaciones .................................................. 326 2.3.- Creación catálogo de Aplicaciones para SharePoint Online ............................ 328 3.- Instalación y monitorizacion de una Aplicación en SharePoint ................................... 329 3.1.- Distribución masiva de Aplicaciones desde el catálogo ..................................... 330 3.2.- Instalación de Aplicaciones utilizando PowerShell .............................................. 333 3.3.- Instalación de Aplicaciones utilizando el modelo de objetos de servidor .... 334 3.4.- Instalación de Aplicaciones utilizando el modelo de objetos en cliente ........ 334 3.5.- Actualización de Aplicaciones................................................................................... 335 3.5.1.- Actualización del paquete de soluciones WSP ............................................. 337 3.5.2.- Actualización del sitio Web Host .................................................................... 339 3.6.- Monitorización.............................................................................................................. 340 3.7.- Monitorización de una Aplicación en SharePoint Online .................................. 342 4.- Instalacion de una Aplicación para Microsoft Office ...................................................... 343 4.1.- Configuración e instalación de una Aplicación en un servidor de aplicaciones IIS .................................................................................................................................. 343 4.2.- Configuración de Microsoft Excel para usar una Aplicación a través de una carpeta compartida de red .................................................................................................. 346 4.3.- Configuración de Microsoft Excel para usar una Aplicación a través del catálogo de SharePoint ......................................................................................................... 347 5.- Copias de seguridad y restauración para Aplicaciones de SharePoint ...................... 349 5.1.- Copia de seguridad para sitios web ........................................................................ 349

Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

5.2.- Copia de seguridad para colecciones de sitios..................................................... 350 5.3.- Copia de seguridad para aplicación web ................................................................ 350 5.4.- Copia de seguridad utilizando las herramientas de SQL Server...................... 351 6.- Conclusiones............................................................................................................................. 352 CAPÍTULO 17: LA TIENDA DE OFFICE Y EL LICENCIAMIENTO DE APLICACIONES.......................................................................................................353 1.- Introducción.............................................................................................................................. 353 2.- Ciclo de publicación de una Aplicación ............................................................................. 354 2.1.- Cuenta para el panel del vendedor ......................................................................... 354 2.2.- Prerrequisitos para publicar una Aplicación en el panel del vendedor .......... 356 2.2.1.- Suscripción de Office 365 .................................................................................. 356 2.2.2.- Información de la Aplicación ............................................................................. 357 2.3.- Publicar una Aplicación............................................................................................... 358 2.4.- Proceso de aprobación de una Aplicación ............................................................ 359 3.- Monetización de Aplicaciones .............................................................................................. 361 4.- Licenciamiento de Aplicaciones ........................................................................................... 364 4.1.- Comprobación de la licencia en una Aplicación .................................................. 364 4.1.1.- Validación en una Aplicación de Office .......................................................... 364 4.1.2.- Licencia de prueba de una Aplicación de Office .......................................... 365 4.1.3.- Validación de una Aplicación de SharePoint ................................................. 365 4.1.4.- Licencia de prueba de una Aplicación de SharePoint ................................. 367 5.- Métricas de la Aplicación ....................................................................................................... 368 6.- Cómo crear un Id de Aplicación ......................................................................................... 369 7.- Conclusiones............................................................................................................................. 371 CAPÍTULO 18: VARIOS .........................................................................................373 1.2.3.4.5.Introducción.............................................................................................................................. 373 Visual Studio LightSwitch para crear Aplicaciones de SharePoint .............................. 374 Uso de TypeScript para crear Aplicaciones...................................................................... 379 Aplicaciones para Microsoft Office PowerPoint.............................................................. 383 Localización de Aplicaciones................................................................................................. 388 5.1.- Localización de Aplicaciones de SharePoint ......................................................... 388 5.2.- Localización de elementos de SharePoint ............................................................. 389 5.2.1.- Localización de código de servidor ................................................................. 391 5.2.2.- Localización de HTML y JavaScript.................................................................. 392 5.3.- Localización de Aplicaciones para Office............................................................... 393 6.- Logging de Aplicaciones ......................................................................................................... 398 7.- Aplicaciones híbridas .............................................................................................................. 400 7.1.- Creación de una Aplicación híbrida ........................................................................ 401 8.- Conclusiones............................................................................................................................. 406 CAPÍTULO 19: EL FUTURO DE LAS APLICACIONES ...................................407 1.- Introducción.............................................................................................................................. 407 2.- Limitaciones de Aplicaciones ................................................................................................ 408
x

Contenido xi

2.1.- Limitaciones para Aplicaciones de Office .............................................................. 408 2.2.- Limitaciones para Aplicaciones de SharePoint ..................................................... 409 2.3.- Tipos de elementos que se pueden utilizar en Aplicaciones de SharePoint. 411 3.- Creación de Aplicaciones con Visual Studio 2013 Preview.......................................... 414 3.1.- Creación de Aplicaciones para SharePoint ........................................................... 414 3.2.- Publicación de Aplicaciones para SharePoint y Office........................................ 418 4.- Conclusiones............................................................................................................................. 420 ÍNDICE ANALÍTICO ...............................................................................................421

Autores
Gustavo Vélez Gustavo Vélez es Ingeniero Mecánico y Electrónico, trabaja como Group Manager para Avanade ( www.avanade.com), una firma de consultoría global y es MVP de SharePoint. Involucrado con SharePoint desde antes de que recibiera su nombre (Site Server, en 1998) cuenta con numerosos años de experiencia diseñando, programando e implementando sistemas de SharePoint. Autor de siete libros sobre SharePoint y múltiples artículos publicados en revistas del sector en español, inglés, holandés y alemán. El autor también es webmaster de www.gavd.net, el primer sitio creado en español dedicado exclusivamente a SharePoint. Juan Carlos González Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con 10 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de SharePoint desde el año 2008, coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS ( www.compartimoss.com). Hasta la fecha, ha publicado tres libros sobre SharePoint y varios artículos en castellano y en inglés sobre la plataforma. Fabián Imaz Fabián Imaz, MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace más de 10 años, teniendo la suerte de trabajar en distintas arquitecturas y tecnologías Microsoft. Trabaja con la firma Siderys ( www.siderys.com), empresa de desarrollo de Software especializada en SharePoint 2007/2010/2013 y en desarrollo de soluciones inteligentes. Desde los comienzos Fabián ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusión de tecnología dentro de sus miembros. Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy, http://www.mslatam.com/latam/technet/mva2/Home.aspx, co-director de la revista digital de SharePoint CompartiMOSS ( www.compartimoss.com) y cuenta con un sitio en CodePlex con varios desarrollos (siderys.codeplex.com).
xiii

Alberto Diaz Alberto Díaz es Responsable de Proyectos de desarrollo en SharePoint, .NET, aplicaciones en movilidad y todo lo relacionado con tecnologías Microsoft en General de Software (GSC). Su labor en GSC es ofrecer soluciones empresariales a sus clientes y brindar nuevas tecnologías que ayuden a las empresas a realizar su trabajo más eficientemente, enfocado en productos Microsoft. Para la comunidad, ha fundado TenerifeDev ( www.tenerifedev.com) con otros colaboradores, un grupo de usuarios de .NET en Tenerife, coordinador de SUGES (Grupo de Usuarios de SharePoint de España, www.suges.es) y co-director de la revista digital de SharePoint CompartiMOSS. Microsoft MVP de SharePoint Server desde el año 2011 y asiduo conferenciante en webcast y conferencias de tecnología de habla hispana.

Prólogo
¿Sabías que, cada segundo, se vende una copia de Microsoft Office en alguna parte del mundo? Imagina poder desarrollar Aplicaciones para una base instalada de cientos de millones de usuarios, rediseñando la manera en la que realizamos nuestro trabajo cada día de formas que aún nadie siquiera se ha atrevido a soñar. Ha llegado el momento de redefinir el concepto de productividad. Se trata de mucho más que realizar tareas de la forma más rápida posible. Se trata de hacer las cosas adecuadas, hacerlas lo mejor posible y además hacerlas disfrutando de la experiencia. Se trata de encontrar la forma de expresar nuestra visión, compartir ideas, aprender constantemente y sentirnos orgullosos de aquello que hacemos y de cómo lo hacemos. Para conseguir evolucionar la forma en la que realizamos nuestro trabajo, necesitamos herramientas cada vez más intuitivas, que se ajusten a nuestros requisitos de movilidad y compatibilidad a través de dispositivos cada vez más heterogéneos, que nos ofrezcan nuevas funcionalidades para optimizar nuestro tiempo y ayudarnos a tomar mejores decisiones. Queremos que tú seas parte de esta transformación. Con el nuevo Office y SharePoint 2013 ahora podrás diseñar un nuevo tipo de Aplicaciones que permitirán extender y personalizar la forma en la que creamos y consumimos información. Hemos introducido un nuevo modelo de Aplicaciones en la nube que te permitirá construir Aplicaciones escalables y flexibles haciendo uso de estándares web, como HTML5 y CSS3. También hemos creado una Office Store para que puedas publicar tus Aplicaciones y asegurarte de que llegas a los más de mil millones de usuarios de Office en todo el mundo. Imagina una Aplicación para Word que permita a un colegio gestionar fácilmente el proceso de consecución de permisos parentales creando un documento con firma digital y automatizando desde el envío a los padres hasta el reporte de cuáles faltan por firmar, subiendo los documentos firmados a una biblioteca de SharePoint en lugar del incesante intercambio de papel que realizamos. También serían útiles Aplicaciones que conecten Excel con fuentes de información que nos permitan realizar mejores análisis y tomar mejores decisiones, desde información demográfica hasta información sobre facturación y número de empleados de empresas. Conozco a mucha gente a la que le encantaría tener una Aplicación para Outlook que facilitase la traducción de emails en cualquier idioma con un solo clic. O una Aplicación para PowerPoint que fuera capaz de encontrar citas, refranes o historias relacionadas con la presentación en la que estuviéramos trabajando de forma que nos ayudase a preparar nuestro discurso. Las posibilidades son infinitas. Supongo que estás preguntándote por dónde empezar. Este libro, escrito por destacados miembros de la comunidad MVP hispanohablante, es la guía perfecta para ayudarte a sacar el máximo partido a esta oportunidad. Desde cómo funciona el
15

Modelo de Aplicaciones de Office y SharePoint hasta cómo publicar tu Aplicación en la Office Store, pasando por las herramientas de desarrollo, tipos de Aplicaciones que puedes desarrollar o dónde puedes hospedar tu aplicación, encontrarás todas las respuestas entre las páginas que ahora mismo sostienes entre tus manos. Los autores de este libro son líderes indiscutibles de la comunidad técnica de Microsoft, profesionales independientes que, de forma voluntaria, comparten con el mundo su pasión, habilidad y conocimiento sobre los productos de Microsoft. Puedo asegurarte que no hay mejores compañeros para este camino que espero que emprendas, tanto en su inicio a través de este libro como en el futuro a través de la comunidad de la que pasarás a formar parte. Estamos impacientes por ver tus creaciones en la Office Store. ¡Bienvenido!. Ester de Nicolás Product Marketing Manager de Office y Office 365 en Microsoft España

Presentación
Sobre la base y experiencia de los modelos de Aplicaciones para Windows Phone primero y Windows 8 a continuación, Microsoft ha diseñado e implementado un nuevo marco de trabajo para la creación, distribución y aplicación de personalizaciones en la forma de Aplicaciones para dos de sus productos más exitosos y de mayor implantación y uso: Office y SharePoint. El modelo de extensibilidad definido por las Aplicaciones es aplicable tanto a las versiones "On-Premise" como Online (Office 365) de ambas plataformas y completamente adaptable tanto a escenarios de uso particular (usuarios de Office) como empresarial (usuarios de Office y SharePoint). Pero las posibilidades van más allá de esta simple clasificación ya que, por ejemplo, se pueden crear Aplicaciones empresariales que busquen mejorar SharePoint, o proveer a la plataforma con funcionalidad adicional no disponible; funcionalidad qué aporten valor al usuario final de Office y faciliten la creación de un documento de propuesta en Word o de un cuadro de mando en Excel; o Aplicaciones empresariales como una gestión de contactos, de contabilidad, un pequeño CRM fácilmente accesibles desde un Sitio SharePoint y qué interactúen con información almacenada en el mismo. En definitiva, su adaptabilidad y flexibilidad, así como su evolución futura, permitirá dar respuesta a distintos escenarios y requerimientos de negocio mediante Aplicaciones de propósito general y/o particular. Desde el punto de vista de distribución y uso, las Aplicaciones tanto para Office como para SharePoint residen en un Almacén, qué puede ser público (gestionado por Microsoft) y/o privado (administrado internamente por una organización). Los desarrolladores, las empresas y los usuarios particulares se pueden suscribir a la Tienda de Aplicaciones de Microsoft tanto para publicar nuevas Aplicaciones desarrolladas con los APIs y herramientas disponibles, como para descargar y utilizar Aplicaciones existentes que se ofrecen de forma gratuita, como versión de evaluación o bien mediante el pago de la correspondiente licencia. Finalmente, desde el punto de vista puramente tecnológico, el nuevo Modelo de Aplicaciones para Office y SharePoint extiende el abanico de tecnologías y plataformas que se pueden utilizar (tanto .NET, como no .NET: PHP, Java, Phyton, etc) y adopta las tendencias actuales en el desarrollo web (HTML 5, CSS 3 y librerías y Frameworks JavaScript).

¿A quién va dirigido este libro?
A todas las audiencias que de una forma u otra van a trabajar con Aplicaciones para Office y SharePoint: los arquitectos de soluciones pueden encontrar información relativa a la arquitectura, buenas prácticas de desarrollo, tipos de Aplicaciones y posibilidades para su creación; los desarrolladores disponen de información amplia y ejemplos sobre las APIs disponibles, conceptos de seguridad y permisos, así como las
17

18 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

reglas de diseño que se tienen que cumplir y seguir para crear nueva funcionalidad para Office y SharePoint sobre todo con vistas a su aprobación y publicación en la Tienda de Office; finalmente, los administradores de sistemas y usuarios avanzados pueden encontrar información relativa a las posibilidades existentes para adquirir e instalar Aplicaciones en ambos productos.

¿Qué temas se tratan?
Este libro está orientado hacia el diseño, programación, despliegue y uso de Aplicaciones para Office y SharePoint 2013, tanto en sus versiones On-Premise como Online, asumiendo que el lector tiene conocimientos básicos tanto de desarrollo web (HTML y JavaScript) como .NET. Toda la información en el libro relativa a la creación de Aplicaciones para SharePoint es aplicable tanto a SharePoint 2013 On-Premise como a la versión Online disponible en Office 365. A nivel de entorno de desarrollo, todos los ejemplos explicados se pueden reproducir y utilizar en la última versión disponible de Visual Studio (versiones Premium, Professional y Ultimate). El primer capítulo describe el nuevo Modelo de Aplicaciones para SharePoint y Office 2013, comenzando con la motivación del mismo y centrándose en las características específicas a cada producto. En el caso de las Aplicaciones para SharePoint, se presenta un ejercicio de reflexión relativo a cuando tiene sentido crear Soluciones y cuando Aplicaciones. El Capítulo 2 describe la Arquitectura y conceptos fundamentales del nuevo Modelo, poniendo especial énfasis en la importancia del archivo de manifiesto de una Aplicación. Las herramientas necesarias para el desarrollo se introducen en el Capítulo 3 desde Visual Studio hasta Microsoft Access 2013, pasando por NAPA y Visual Studio LightSwitch. Adicionalmente, se introduce el sitio de desarrollador de Office 365 como requerimiento necesario para poder crear Aplicaciones que se puedan publicar en la Tienda de Office. Los siguientes cuatro Capítulos están dedicados a las Aplicaciones para Office 2013, comenzando con los tipos de Aplicaciones y APIs disponibles, para demostrar de forma práctica como crear una Aplicación de cada tipo: Panel de Tareas, de Contenido, de Correo. Los Capítulos 8 a 11 tratan aspectos clave para el desarrollo de Aplicaciones para SharePoint. Se describen tanto los tipos de Aplicaciones qué se pueden crear, como las APIs disponibles (Modelo de Objetos en Cliente y API REST), el modelo de seguridad y autorización que se utiliza (OAuth) y las experiencias de usuario disponibles en el desarrollo de Aplicaciones para SharePoint. Los distintos tipos de Aplicaciones que se pueden crear para SharePoint, "Hospedadas por SharePoint", "Autohospedadas" y "Hospedadas por el proveedor", son descritos y analizados en los Capítulos 12, 13 y 14. Las posibilidades que ofrece SharePoint para integrar datos de negocio por medio de Manejadores de Eventos Remotos, Flujos de Trabajo, el motor de búsquedas y la llamada a servicios externos en Aplicaciones se detallan en el Capítulo 15.

Presentación 19

El Capítulo 16 está dedicado a las posibilidades relativas a la implementación, manejo y monitorización de Aplicaciones en el entorno de una organización. Se detallan aspectos relativos a la distribución de Aplicaciones, tanto desde la interfaz de usuario, como de forma programática y/o con PowerShell. Adicionalmente, se describen cuestiones relativas a la configuración de un entorno On-Premise para Aplicaciones y se discuten aspectos relativos a la creación de Copias de Seguridad y Restauración de Aplicaciones. El nuevo Modelo de Aplicaciones como oportunidad de negocio se trata en el Capítulo 17 en el que se discuten cuestiones como el ciclo de publicación de una Aplicación, tipos de licenciamientos disponibles, la monetización de Aplicaciones, o las posibilidades que ofrece el Panel del vendedor tanto para publicar Aplicaciones, como para obtener información relativa a métricas, crear identificadores de Aplicación, etc. Conceptos muy importantes en la creación de Aplicaciones profesionales son descritos en el Capítulo 18: Logging en Aplicaciones, Localización, LightSwtich como entorno para crear Aplicaciones con cero desarrollos y TypeScript como tecnología emergente para dotar de una mayor productividad al desarrollo. Finalmente, el Capítulo 19 está dedicado al futuro de las Aplicaciones, identificando y detallando aquellos puntos del modelo qué Microsoft irá evolucionando en el futuro y una introducción a las novedades que Visual Studio 2013 Preview incorpora para la creación de Aplicaciones.

Herramientas y Entorno
En general, escribir un libro sobre un tema tan novedoso y en constante evolución como el nuevo Modelo de Aplicaciones para SharePoint y Office, implica que es necesario realizar pruebas de funcionalidad y desarrollo hasta el último momento. En este sentido, el contenido del libro se ha escrito sobre las bases proporcionadas por una instalación en modo granja de la versión “Ready To Manufacture” (RTM) en castellano de SharePoint Server 2013 y una suscripción de Office 365 de tipo "Office 365 Developer Pack". Para los capítulos relativos a los distintos tipos de Aplicaciones para Office, se ha utilizado la versión Professional Plus en castellano de Office 2013. La mayor parte de los ejemplos de código incluidos se han creado en la versión en castellano de la RTM de las herramientas de desarrollo de Office para Visual Studio Ultimate (con la última actualización aplicada). Finalmente, el resto de ejemplos de desarrollo del libro se ha implementado mediante las herramientas NAPA, Visual Studio LightSwitch y la versión Preview de Visual Studio 2013 liberada por Microsoft en junio de 2013.

CAPÍTULO

1

Aplicaciones para Office y SharePoint

Siguiendo con el modelo creado para Windows 8 y Windows Phone, Microsoft ha concebido un marco de trabajo para la creación, distribución y aplicación de personalizaciones para Office 2013 y SharePoint 2013: Las Aplicaciones.

1.- INTRODUCCIÓN
Las Aplicaciones para Office y SharePoint representan la nueva forma que Microsoft ha adoptado para crear, distribuir e instalar software con nueva funcionalidad o personalizaciones en dos de sus productos más exitosos: Office y SharePoint. El concepto de Aplicación se ha hecho conocido primero, por la forma en la cual teléfonos inteligentes despliegan software nuevo y, luego, por la aparición de las tabletas. Inevitablemente, el modelo ha sido reproducido en Windows 8 y ahora en Office 2013 y SharePoint 2013. La idea principal del concepto de Aplicaciones es que residen en un punto central, desde donde el usuario puede buscar el software que necesita para solucionar un problema y, desde donde las puede descargar e instalar en su sistema. Las Aplicaciones tanto para Office como para SharePoint residen en un Almacén, un depósito de software centralizado, que puede ser público (manejado por Microsoft) y/o privado (manejado desde los servidores de las empresas mismas, y no visible para usuarios fuera del dominio). Los desarrolladores y las empresas se pueden afiliar a la Tienda de Aplicaciones de Microsoft, publicar sus programas en él y ofrecerlas como descargas gratuitas o de pago. En el segundo caso, Microsoft ofrece como parte de su servicio la recolección del dinero por las licencias y el pago al fabricante. Las API de
21

22 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

Aplicaciones también proporcionan todos los esquemas de seguridad necesarios para ofrecer versiones gratuitas, de prueba o de pago. El software distribuido en forma de Aplicaciones tiene ventajas técnicas, tales como la relativa facilidad para los usuarios de "descubrir" programas desde un sitio central y no tener que hacer búsquedas intensivas (y muchas veces infructuosas) a lo largo y ancho de Internet; y que el propietario de la Tienda, en este caso Microsoft, puede ejercer cierto control sobre la calidad del software, sobre todo para prevenir virus y software mal intencionado. Además, en cierta forma, la monetización (cómo ganar dinero) del software se simplifica para los desarrolladores. Pero, por otro lado, hay que tener muy presentes las consecuencias:  El propietario del Almacén exige un pago por su uso. En el caso de las Aplicaciones para Office y SharePoint, se destina un 20% del precio total de ventas al cliente. La posibilidad de censura existe; hay casos conocidos en donde el propietario de la Tienda ha utilizado su poder como arma para forzar a otras compañías a actuar de una u otra forma (el renombrado caso de Apple para controlar el mercado de descarga de libros) o ha impedido que alguna Aplicación esté en el Almacén por razones no técnicas. Hasta el momento de publicación de este libro, se conocen solo casos limitados de este tipo en la Tienda de Microsoft, como por ejemplo la retirada de Aplicaciones que utilizaban el nombre de Facebook y que no habían sido oficialmente creadas por esa compañía. Aunque el propietario de la Tienda asegura que controla la calidad de las Aplicaciones antes de hacerlas disponibles públicamente, el proceso de cómo es el control y qué es lo que se controla no es, en absoluto, transparente. Esto significa que el propietario puede rechazar una Aplicación por cualquier motivo, y el programador no tiene ninguna forma de obligarlo a publicarla.

Técnicamente hablando, el nuevo modelo de Aplicaciones también supone un cambio en la forma de programación. Mientras en Aplicaciones "tradicionales" el diseñador y programador deciden qué tipo de tecnología se debe aplicar (Escritorio, Web), para Aplicaciones de Office y SharePoint la gama de técnicas que se puede utilizar es más limitada y, muchas veces, incluso las APIs ( Application Programming Interface) disponen de menos posibilidades, como es el caso de SharePoint, en donde el Modelo de Objetos de Servidor es mucho más completo que el Modelo de Objetos de Cliente. En cuanto a la forma de desarrollar Aplicaciones, tanto para Office como para SharePoint, Visual Studio continua siendo la herramienta por defecto, aunque Microsoft ha desarrollado otras herramientas con propósitos específicos, como por ejemplo LightSwitch y Access 2013 para desarrollar sin necesidad de programar y NAPA, un herramienta totalmente integrada en el navegador, por lo que no necesita ningún tipo de instalación local. En el momento de publicación de este libro ya ha aparecido la primera versión beta de Visual Studio 2013, que incluye algunas mejoras con respecto a la programación de Aplicaciones, como se explica en el último capítulo.

Aplicaciones para Office y SharePoint 23

2.- APLICACIONES PARA OFFICE 2013
La extensibilidad, es decir, la capacidad para implementar software que extienda la funcionalidad, siempre ha sido un punto fuerte de Microsoft Office desde la versión Office 97, aunque ha cambiado múltiples veces de tecnología básica. Los "Plugins" y "Addins" para Office han estado basados técnicamente en DLLs estándar de Windows (Office 97), en COM (Component Object Model, para Office 2000), COM/OLE (Office XP) y VSTO (Visual Studio Tools for Office, para versiones de Office desde 2003 en adelante). Para Aplicaciones de la versión 2013 de Office las tecnologías a utilizar son HTML 5, XML, CSS 3 y JavaScript. Mientras que los modelos de extensibilidad existentes hasta Office 2013 estaban diseñados para automatizar tareas en los programas cliente de Office a un nivel profundo por medio de todo un grupo de objetos y APIs, el nuevo modelo de Aplicaciones está pensado para otro nivel de funcionalidad, en donde el contenido de los documentos es el centro de la acción, y en donde las Aplicaciones mismas forman parte del contenido. Al contrario que los Addins tradicionales de Office, las Aplicaciones de la versión 2013 pueden ser guardadas como parte de los documentos mismos en algunos casos, de tal forma que cuando otro usuario utiliza el documento, no necesita instalar nuevo software (ni Aplicaciones) en el ordenador. Aunque el nuevo modelo de Aplicaciones de Office es el preferido para agregarle funcionalidad a sus programas, Microsoft continúa soportando los modelos de programación utilizados anteriormente basados en VBA, COM y VSTO. Los Addins creados para versiones anteriores de Office también continúan funcionando en Office 2013, aunque Microsoft no ha liberado información sobre el soporte de ellos en futuras versiones. De forma simplificada, una Aplicación para Office 2013 es una página Web alojada en una Aplicación cliente de Office (Word, Excel, PowerPoint, Outlook). Los usuarios pueden modificar o ampliar la forma en que un documento, e-mail, hoja de cálculo, etc., funciona por medio de las Aplicaciones, y ellas pueden ejecutarse en múltiples sistemas y por múltiples tipos de clientes, como por ejemplo programas de Office, navegadores para teléfonos, On-Premise o en la nube. Inclusive, y por el hecho de que todos los programas de Office comparten el mismo grupo de APIs, una Aplicación puede funcionar sin problemas en Word y en Excel, por ejemplo, sin necesidad de modificar el código fuente. Además, por primera vez es posible desarrollar software que funciona sin modificaciones tanto para Office 365 como instalaciones de Office locales On-Premise.

3.- APLICACIONES PARA SHAREPOINT 2013
También nuevo en SharePoint 2013 es el modelo de Aplicaciones para extender su funcionalidad. Aunque técnicamente más complejas que las Aplicaciones para Office, la idea se basa en pilares similares:

24 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

Utilización de estándares Web para la programación: HTML 5, JavaScript, REST, OAuth y OData. De esta forma las Aplicaciones no solo utilizan las posibilidades de programación más usadas mundialmente, sino también permiten la integración con tecnologías diversas y no solamente de Microsoft. Software independiente de la implementación. El Modelo de Objetos de Cliente substituye cada vez más el Modelo de Objetos de Servidor en SharePoint. La extensibilidad ocurre más y más utilizando el API del Modelo de Objetos de Cliente y REST y menos y menos instalando el software directamente en los servidores. Simplificación de instalación. Aunque la instalación de nueva funcionalidad comenzó a simplificarse en SharePoint 2010 con las soluciones Sandbox, utilizando el nuevo modelo de Aplicaciones se va un paso más adelante, pues instalar y desinstalar nuevo software para el usuario es lo mismo que crear una Lista o Biblioteca. Para el administrador, las Aplicaciones no son más que un archivo que se puede subir a una Biblioteca en un Sitio especializado (el "Catalogo") sin necesidad de recurrir a PowerShell o de tocar los servidores de alguna otra forma. En Office el proceso de instalación es muy similar al de SharePoint (y al de Windows 8) para los usuarios, logrando que cuando aprenden cómo hacerlo para un sistema, puedan hacerlo en todos los demás. El usuario está en control y se mantiene en control sobre el software que se instala, tomando en sí mismo algo de la responsabilidad de los administradores de sistemas. Como las Aplicaciones se ejecutan en un espacio aislado, no afectan (en teoría) a los servidores ni utilizan recursos necesarios para ejecutar SharePoint. Esto, en principio, elimina los riesgos de software mal escrito o con problemas de seguridad, pues (de nuevo en teoría) no puede afectar al funcionamiento de la granja.

Desde SharePoint 2003, una de las mayores ventajas del Portal ha sido no solamente la facilidad con la que los usuarios pueden crear sus componentes por defecto (Sitios, Listas, Bibliotecas, Columnas, etc.), sino también cómo se le ha podido agregar funcionalidad adicional a la que no dispone por defecto. En la versión 2003 esta última extensibilidad se realizaba construyendo ensamblados manejados por .NET Framework que se instalaban directamente (y manualmente) en los servidores. Con la aparición de las "Soluciones de SharePoint" en la versión 2007, los desarrolladores y administradores contaban con un mecanismo de instalación mucho más confiable y que se podía automatizar fácilmente, pero el software continuaba siendo full trusted, es decir, el software agregado seguía ejecutándose en el contexto físico de la granja de SharePoint, por lo que no había forma de separar funcionalidad de funcionamiento propio del servidor, con los consabidos riesgos de estabilidad y seguridad. Con SharePoint 2010 Microsoft comenzó a experimentar con la separación entre la granja propiamente dicha y la funcionalidad que los usuarios deseaban agregarle. Las soluciones Sandbox de SharePoint 2010, aunque no supusieron realmente un éxito comercial o empresarial, representaron un experimento interesante para lograr esa

Aplicaciones para Office y SharePoint 25

meta. Y aunque el software que se ejecuta en el Sandbox funciona virtualmente en un proceso separado al del servidor, la separación no es total. El Sandbox de SharePoint 2010 continúa siendo implementado totalmente en SharePoint 2013 por cuestiones de compatibilidad, pero Microsoft no ha introducido mejora alguna en el mismo, ni lo recomienda como forma viable para agregar funcionalidad en el futuro. Si realmente se desea separar nueva funcionalidad de la granja propiamente dicha, es indispensable tener una forma de programar al Portal sin necesidad de instalar software directamente en los servidores. Aunque desde SharePoint 2003 era posible utilizar una especie de programación "remota" de SharePoint, creada con servicios Web y basada en SOAP, hasta SharePoint 2010 no apareció un Modelo de Objetos de Cliente realmente funcional. La versión 2013 dispone de una versión mejorada y ampliada del Modelo de Objetos de Cliente, en especial con la posibilidad para acceder al sistema utilizando REST, un estándar internacional y abierto que ofrece la capacidad para crear software para SharePoint utilizando cualquier tipo de tecnología, aunque no sea específica de Microsoft.

3.1.- ¿Aplicaciones o soluciones?
SharePoint 2013 (On-Premise y Online) se puede personalizar y extender mediante desarrollo utilizando dos técnicas diferenciadas: Soluciones de SharePoint y Aplicaciones de SharePoint. Frente al uso de Soluciones, el nuevo modelo de Aplicaciones facilita crear personalizaciones qué se integran con SharePoint sin producir el impacto que las primeras pueden tener en el ciclo de vida y en la administración de SharePoint.

Figura 1.- Opciones de personalización de SharePoint.

Como se muestra en la Figura 1, el código de una Solución de SharePoint se ejecuta siempre en su ambiente de ejecución lo que puede implicar un impacto negativo en el entorno del Portal, en el caso en el que la Solución introduzca penalizaciones en el

26 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

rendimiento o malas prácticas que puedan afectar su ejecución normal. En cambio, el código de una Aplicación de SharePoint siempre se ejecuta de forma aislada respecto al ambiente de SharePoint, bien porque la lógica se ejecuta en un tenant separado del servidor, o bien porque lo hace en un servidor independiente a la granja de SharePoint.

3.1.1.- Elementos de decisión
La decisión sobre si crear Aplicaciones o Soluciones viene determinada por dos factores principales. El primero tiene que ver con las capacidades y posibilidades específicas de cada tipo de personalización. El segundo, con el escenario de negocio al que se trata de dar respuesta. Algunos aspectos que se pueden tener en cuenta en la decisión sobre crear Aplicaciones o Soluciones son los siguientes:  Modelo de Objetos en servidor (SSOM) frente a Modelo de Objetos en Cliente (CSOM). Crear Soluciones permite utilizar el SSOM facilitando el acceso prácticamente sin restricciones a contenidos y la administración de SharePoint. El principal inconveniente del uso del API de servidor viene dado por su ejecución en el mismo contexto de SharePoint. Por ello hay que asegurarse de seguir buenas prácticas de programación y uso del SSOM, de forma que se eviten situaciones en las que un bug o problemas de rendimiento puedan afectar de forma negativa a la granja. Frente al uso del SSOM, el CSOM proporciona un API con una serie de objetos que permiten interactuar de forma remota con SharePoint reduciendo el efecto del código en la granja, ya que éste no se ejecuta directamente en la granja. De esta forma, cualquier problema con los objetos de CSOM utilizados afecta a la Aplicación que lo utiliza, pero no al ambiente de SharePoint. Evidentemente, si el código de la Aplicación contiene errores de programación, como por ejemplo el uso de un bucle infinito, puede afectar también al rendimiento del servidor.  Ambiente de ejecución. Dependiendo de si la lógica de negocio se tiene que ejecutar en SharePoint On-Premise u Online (Office 365), es posible crear personalizaciones mediante Soluciones y/o Aplicaciones o bien únicamente mediante Aplicaciones teniendo en cuenta que las Soluciones de tipo Sandbox se consideran obsoletas en SharePoint 2013 y que son las únicas disponibles en SharePoint Online. Para ser más específicos, en SharePoint Online se recomienda la creación de Aplicaciones frente a Soluciones Sandbox. En SharePoint On-Premise, ambas opciones son posibles. Despliegue. La personalización de SharePoint mediante Soluciones requiere, además del proceso de diseño y desarrollo, definir una planificación para su despliegue en el momento adecuado para tener un impacto mínimo sobre los usuarios de la granja. En cambio, en el caso de las Aplicaciones, es posible desplegarlas en cualquier momento sin producir apenas impactos sobre el sistema.

Aplicaciones para Office y SharePoint 27

Patrones de diseño. Por un lado, las Soluciones restringen los patrones de diseño que se pueden utilizar a formularios Web. Por otro, las Aplicaciones están más preparadas para el uso de patrones de diseños modernos y variados como MVC (Model-View-Controller) o MVVM (Model-View-View-Model). Conocimientos necesarios. Para crear Soluciones de SharePoint, se requieren conocimientos generales sobre desarrollo de .NET, ASP.NET y específicos del API de SharePoint. Adicionalmente, es necesario tener un dominio y conocimiento mínimo de buenas prácticas de desarrollo en el uso del SSOM que aseguren que el código desarrollado no va a introducir penalizaciones en la granja. Por ejemplo, para hacer un correcto uso de las clases SPSite y SPWeb es recomendable conocer y aplicar las reglas de liberación de memoria descritas en la documentación disponible en MSDN y en el API mismo. Frente a las restricciones propias de las Soluciones, el modelo de Aplicaciones amplía notablemente las posibilidades a nivel de tecnologías y APIs que se pueden utilizar, de manera que no sólo desarrolladores de SharePoint pueden crear Aplicaciones, sino en general desarrolladores de Aplicaciones Web sobre plataformas y tecnologías diversas. Como desventaja en relación con los conocimientos necesarios, los desarrolladores de Soluciones tienen que adquirir nuevas destrezas para poder crear Aplicaciones: HTML 5, JavaScript, OAuth, OData, etc.

Diseño. En los últimos años SharePoint se ha convertido en una plataforma empresarial utilizada de forma extensa por muchas organizaciones las cuales, en lo referente a diseño, han añadido sus personalizaciones en cuanto a colores, estilos, fuentes, logos, etc. Estas personalizaciones se empaquetan en la forma de Soluciones (Granja o Sandbox) con el objetivo de facilitar el uso de un mismo aspecto a lo largo de toda la organización. En cambio, aunque técnicamente es posible, las Aplicaciones no están pensadas por el momento para aplicar personalizaciones de diseño en todos los sitios y colecciones de sitios de una organización. Por otro lado, el nuevo modelo de Aplicaciones incorpora mecanismos propios, como se verá en el capítulo correspondiente, para añadir personalizaciones de aspecto en su ámbito. Integración de datos de negocio. Las Aplicaciones ofrecen un mecanismo de integración de datos de negocio externos a SharePoint, flexible y seguro por el hecho de ejecutarse en un dominio aislado, lo que facilita el acceso a esos datos sin las restricciones y limitaciones que pueden introducir las Soluciones. Manejadores de eventos. Las Soluciones de SharePoint no están pensadas para reaccionar a sucesos que tengan lugar en los sistemas de negocio excepto mediante el uso de Flujos de Trabajo. En cambio, las Aplicaciones disponen de los Manejadores de Eventos Remotos y de los Flujos de Trabajo como mecanismos para reaccionar a cambios producidos en los sistemas de información empresariales.

28 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

Escenarios. Aunque no existe una recomendación o guía oficial de cuándo crear Soluciones y cuándo crear Aplicaciones, sí es cierto que los requerimientos de negocio a satisfacer decantarán la balanza en uno u otro sentido. Por ejemplo, si se necesita desplegar elementos de diseño que apliquen en toda la granja lo más adecuado es hacerlo en la forma de una Solución. En cambio, si se necesita disponer de una forma específica para realizar una gestión de contactos, la creación de la correspondiente Aplicación puede ser una opción más interesante. Disponibilidad y despliegue. El nuevo modelo de Aplicaciones facilita el uso de las mismas a través del despliegue a un Catálogo de Aplicaciones corporativo o a la Tienda de Microsoft. En el primer caso, las Aplicaciones están disponibles para ser instaladas en todas las colecciones de sitios y sitios de un tenant (Office 365) o de una Aplicación Web (On-Premise). En el segundo, las Aplicaciones además de ser aprobadas y certificadas por Microsoft, se pueden utilizar en cualquier colección de sitios y sitios de un tenant de SharePoint Online o de una granja On-Premise. En cambio, las Soluciones únicamente están disponibles dentro del ámbito en el que se han desplegado siendo necesario realizar de nuevo el despliegue cada vez que se quieran utilizar. Por ejemplo, una solución Sandbox se tiene que cargar y activar en la galería de soluciones de cada colección de sitios donde se vaya a utilizar. Una solución de tipo granja únicamente se puede utilizar en entornos On-Premise y se tiene que desplegar en el contenedor global de soluciones cada vez que se quiera utilizar.

4.- CONCLUSIONES
Microsoft está intentando modernizar la manera no solo de aplicar nueva funcionalidad y personalizaciones a su software, sino también la forma en que los desarrolladores y empresas de desarrollo (y Microsoft) ganan dinero con el software. El concepto de "Aplicaciones" fue inicialmente utilizado para teléfonos inteligentes, pero se ha ido extendiendo hacia tabletas, Windows 8 y ahora Office y SharePoint. El nuevo marco de trabajo de Aplicaciones para Office 2013 y SharePoint 2013 ofrece un modelo para que los usuarios puedan descubrir, desplegar y actualizar software en una forma fácil y unificada y para que los desarrolladores puedan ofrecer y monetizar (si se desea) sus creaciones desde un punto centralizado. Técnicamente hablando, las Aplicaciones se ejecutan en general de forma aislada fuera del ámbito de trabajo del software que las alojan, haciendo que no influyan en su estabilidad ni capacidad de ejecución, ni que representen un peligro para los servidores. Las Aplicaciones utilizan todas las técnicas modernas de sistemas Web y pueden ser desarrolladas con las herramientas que Microsoft ofrece.

CAPÍTULO

2

Arquitectura de Aplicaciones

Las Aplicaciones, tanto para Office como para SharePoint, disponen de una arquitectura de software particular que les permite funcionar de forma segura tanto para el usuario como para las implementaciones de SharePoint involucradas en el sistema.

1.- INTRODUCCIÓN
Hablando de una forma muy general, el mundo del software se está moviendo rápidamente y tiende a guardar todo tipo de programas en la nube, y utilizar localmente computadores y servidores solo como interfaz de usuario, con procesamiento muy reducido y únicamente como medio de almacenamiento temporal de información. Microsoft sigue esta tendencia, y desde el año 2008, cuando lanzó la primera versión de Windows Azure, no ha dejado de mover la mayor cantidad posible de plataformas y productos hacia la nube. Primero con Windows Azure como medio de alojamiento de servidores y SQL, seguido por SharePoint, Exchange y Lync en sus versiones online, y posteriormente por Office, Dynamics y BizTalk, además de que Windows Azure ha aumentado de forma continua la capacidad, funcionalidad y servicios disponibles. En resumen, Microsoft está pasando de ser un fabricante de software a una compañía que ofrece servicios y dispositivos. Por el momento, y como no solo es muy difícil técnicamente mover todo el software de Microsoft hacia la nube, sino que también es necesario un cambio de comportamiento de los usuarios para que acepten y utilicen las nuevas tecnologías, se está pasando por una etapa hibrida, en la que existen tanto versiones en la nube como On-Premise: el caso típico es SharePoint, con sus versiones de servidor y online como parte de Office 365.
29

30 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

Como consecuencia de este movimiento, es necesario cambiar también la forma en que se pueda implementar nueva funcionalidad en los servidores (como SharePoint) o en los programas cliente (como Office). Microsoft ha optado por usar el concepto de Aplicaciones para desplegar, hacer visible y hacer funcionar las personalizaciones de su software, de forma muy similar a como fue diseñado originalmente para teléfonos móviles. Debido a que no es técnicamente viable desplegar software directamente en los servidores (en el GAC – Global Assembly Cache por ejemplo) en sistemas que trabajan en la nube, y que todo el proceso de despliegue y funcionamiento de personalizaciones ha cambiado hacia sistemas en donde no es posible utilizar los API de Servidor, hay que, por un lado, utilizar APIs en el lado de cliente y servicios como REST y OData para hacer operaciones remotamente con los servidores y, por otro lado, los clientes tienen que utilizar tecnologías que funcionen en clientes menos "inteligentes", tales como navegadores Web. Esto significa un cambio en muchos aspectos técnicos: la arquitectura de los sistemas cambia radicalmente, la autorización y autenticación son muy diferentes, las herramientas para desarrollo son también diferentes, han aparecido nuevos modelos para monetizar el software, etc. Las Aplicaciones para SharePoint y Office residen en un archivo comprimido (.app) que contiene todos los otros archivos necesarios para que el software funcione correctamente. Aunque las Aplicaciones para SharePoint y para Office son diferentes desde el punto de vista funcional, comparten algunas características en común en su arquitectura, como, por ejemplo, el hecho de que consisten físicamente de, al menos, un archivo de instalación y un archivo de Manifiesto.

1.1.- El archivo .app
El archivo de instalación de Aplicaciones tanto para Office como para SharePoint tiene la extensión ".app". Es un paquete unificado para todo tipo de software que se deba desplegar en diferentes tecnologías de Microsoft, como muestra la Figura 1 con el contenido de un paquete .app para SharePoint.

.app
SharePoint WSP Azure Web Deploy SQL DAC Pack Office Client Manifest

Figura 1.- Contenido del archivo .app.

Arquitectura de Aplicaciones 31

El archivo ".app" contiene todos los elementos binarios y de soporte necesarios para instalar el software en un servidor específico o en una combinación de ellos. Por ejemplo, un archivo ".app" puede contener un archivo ".wsp" para instalar alguna personalización de SharePoint junto con un archivo ".dacpac" para crear una Base de Datos en SQL Azure. Todos los paquetes de instalación ".app" tienen que tener obligatoriamente un archivo de Manifiesto tal y como se describe en la siguiente sección. El archivo ".app" para una Aplicación de Office es generalmente más sencillo y contiene básicamente los archivos HTML necesarios y el Manifiesto, que siempre es obligatorio. Es importante destacar que aunque la misma extensión se utiliza para otras plataformas tecnológicas diferentes a la plataforma de Aplicaciones para software de Microsoft (como Symbian, SkyOS, iOS, Mac OS X, etc.), el formato no es compatible y un archivo ".app" de Microsoft solamente se puede utilizar en sistemas con tecnologías de Microsoft. Un archivo ".app" no es más que un archivo comprimido ".zip". Es posible cambiar la extensión a un paquete de instalación a ".zip" y descomprimirlo para examinar sus componentes (y, eventualmente, modificar manualmente su contenido, aunque no es recomendable hacerlo). El paquete sigue el formato estipulado por el Open Packaging Conventions (OPC) creado por Microsoft y confirmado como un estándar público ratificado por ISO (International Organization for Standardization) y ECMA (European Computer Manufacturers Association). Combina las ventajas de mantener los archivos necesarios independientemente, pero comprimiéndolos en un solo fichero, resultando en paquetes que normalmente son más pequeños que el uso de archivos XML complejos. Este es el mismo estándar utilizado por software tan diverso como todos los programas de Office, Hyper-V, Autodesk y programas de otras compañías. El Framework .NET 3.0 permite utilizar archivos empaquetados con OPC por medio del espacio de nombres "System.IO.Packaging" y el API Packaging. La Figura 2 muestra el contenido típico de un archivo ".app" para una Aplicación Hospedada por SharePoint.

Figura 2.- Contenido del archivo ".app" de una Aplicación Hospedada por SharePoint.

_rels es el directorio raíz que contiene las relaciones entre los componentes de todo el paquete. Los paquetes OPC pueden incluir "relaciones" que definen las asociaciones entre el paquete, sus archivos y recursos externos, junto a una jerarquía de directorios y rutas. El archivo [Content_Types].xml define los tipos MIME (Multipurpose Internet

32 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

Mail Extension) para todas las partes almacenadas en el paquete. Como se puede ver en la Figura 2, el paquete contiene también el archivo ".wsp" que es el instalador de SharePoint. Cuando se desarrollan Aplicaciones con Visual Studio, el programador normalmente no tiene que preocuparse de la generación del archivo ".app", pues Visual Studio lo crea automáticamente (función "Publicar" desde el menú contextual del proyecto en el "Explorador de soluciones", además de cuando se depura la solución). Para Aplicaciones de SharePoint Hospedadas por el Proveedor, el desarrollador se debe encargar de crear todos los paquetes de instalación necesarios si no se están utilizando tecnologías de Microsoft y/o Visual Studio.

1.2.- El archivo de manifiesto
Aunque el archivo ".app" para Office y/o SharePoint puede contener múltiples tipos de archivos internamente, solamente uno es obligatorio: el Manifiesto, un archivo denominado ineludiblemente AppManifest.xml. Este es un archivo ".xml" que Office o SharePoint utiliza para almacenar algunas propiedades importantes, tales como el título y los permisos para ejecutar la Aplicación. Note que además del Manifiesto para la Aplicación (el archivo AppManifest.xml), cada componente dentro de la Aplicación puede tener su propio Manifiesto: por ejemplo, si la Aplicación es para SharePoint, el archivo de instalación de SharePoint ".wsp" tiene también su propio Manifiesto. En el Manifiesto de la Aplicación se especifican elementos como (aunque no todos son obligatorios):   El nombre interno, identificador del producto y versión de la Aplicación. La URL de la página inicial, es decir, la página que abre cuando se inicia la Aplicación. La URL puede contener parámetros en la Cadena de Consulta (QueryString), que deben ser codificados utilizando "&" en lugar de "&". o Propiedades de la Aplicación como su título, localizaciones, las URLs de servicios a manejar después de la instalación, eventos que pueden ocurrir antes de la instalación y (para SharePoint), la plantilla a utilizar cuando se crea la Aplicación. Permisos requeridos en Aplicaciones de SharePoint. Identificación para autenticación y autorización del actor principal, excepto para Aplicaciones Hospedadas por SharePoint. Una lista de prerrequisitos, si es que son necesarios, para que la Aplicación se pueda instalar (por ejemplo, Características para Aplicaciones de SharePoint).

o o o

Arquitectura de Aplicaciones 33

La Figura 3 muestra el contenido del archivo inicial AppManifest.xml de una Aplicación Hospedada creada con Visual Studio. Aunque los esquemas de los Manifiestos para Aplicaciones de Office y SharePoint son diferentes, su forma general es muy similar. Nota: La descripción completa del esquema de Manifiesto, con todos los parámetros posibles, para Aplicaciones de SharePoint está descrito por Microsoft en el sitio http://msdn.microsoft.com/en-us/library/jj992004.aspx, y el esquema para Aplicaciones de Office en el sitio http://msdn.microsoft.com/en-us/library/fp123693.aspx.

Figura 3.- Esquema del Manifiesto para una Aplicación Hospedada por SharePoint.

El elemento "StartPage" para Manifiestos de Aplicaciones de SharePoint puede contener uno o más tokens que se reemplazan dinámicamente en tiempo de ejecución y que representan información que es desconocida en tiempo de desarrollo. En la Figura 3 se puede observar, por ejemplo, el uso de los tokens "{StandardTokens}" y "~appWebUrl". Hay dos tipos de tokens que se pueden utilizar: dentro de la URL misma, que comienzan con el carácter "~" y los que se pueden usar en el QueryString, que están encerrados entre llaves "{ }". Las dos tablas siguientes describen los tokens disponibles y en qué tipo de Aplicaciones: inmersiva o de página completa (I), acción personalizada (AC) y App Part o Aplicaciones de Partes (AP).
Tabla 1.- Tokens de URL para el Manifiesto de Aplicaciones de SharePoint.

Token ~appWebUrl ~hostUrl ~remoteAppUrl ~site ~siteCollection

Descripción La URL del sitio Web. Dirección del sitio Web host. Dirección de un sitio Web remoto usado. URL del sitio Web actual. Dirección de la Colección de Sitios padre.

I X X

AC X X

AP X X X X X

34 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

Tabla 2.- Tokens de QueryString para el Manifiesto de Aplicaciones de SharePoint.

Token {AppWebUrl} {ClientTag} {HostLogoUrl} {HostTitle} {HostUrl} {ItemId} {ItemUrl} {Language} {ListId} {ProductNumber} {RecurrenceId} {RemoteAppUrl} {Site} {SiteCollection} {SiteUrl} {Source} {StandarTokens}

Descripción La URL del sitio Web. Número de control de cacheo. URL del logo del sitio Web host. Título del sitio Web host. URL del sitio Web host. Identificador de un elemento de Lista. URL de un elemento de Lista. Idioma actual del sitio Web host. GUID de la Lista. Versión de la granja de SharePoint. ID de ocurrencia de un Evento URL de un sitio Web remoto. Dirección del sitio Web actual. URL de la Colección de Sitios actual. URL del sitio Web actual. La URL de la solicitud HTML. Combinación de cinco tokens: SPHostUrl={HostUrl}&SPAppWebUrl={ AppWebUrl}&SPLanguage={Language} &SPClientTag={ClientTag}&SPProduct Number={ProductNumber}.

I X X X X X X X X X

X

AC X X X X X X X X X X X X X X X X X

AP X X X X X X X X X X X

La Figura 4 muestra el Manifiesto inicial para una Aplicación para Office tal y como lo crea Visual Studio:

Figura 4.- Esquema del Manifiesto para una Aplicación de Office.

Como se puede observar comparándolo con el Manifiesto para una Aplicación de SharePoint, las diferencias se limitan al namespace ("xmlns") y al identificador del producto ("ProductID").

Arquitectura de Aplicaciones 35

2.- ARQUITECTURA DE APLICACIONES PARA OFFICE
Desde el punto de vista de la arquitectura, una Aplicación para Office es una página Web (HTTP) integrada como contenido en el programa Office. Hasta el momento, las Aplicaciones de Office pueden ser utilizadas en las versiones de escritorio de Word, Excel, PowerPoint, Project y Outlook y en las versiones web de Excel y Outlook. Dependiendo del tipo de acciones que hace la Aplicación, puede funcionar en varios de los programas sin necesidad de ser reprogramada. Una Aplicación para Office consiste básicamente de una o más paginas HTML y el archivo AppManifest.xml como muestra la Figura 5. La página HTML contiene la interfaz de usuario y la lógica del programa, mientras que el archivo AppManifest.xml describe cómo la página Web interactúa con el programa Office utilizando el Web Extensibility Framework (WEF). Por un lado, WEF permite que el contenido de una página HTML se pueda renderizar en un programa de Office y por otro la ejecución del código asociado. La lógica que realiza la acción está programada en JavaScript utilizando, entre otras, la librería especializada "JavaScript API for Office" (Office.js). El runtime de WEF se encarga de realizar la traducción de los eventos y llamadas a funciones JavaScript en sus equivalentes nativos.

Aplicación de Office
Código HTML AppManifest.xml

JavaScript

Figura 5.- Componentes de una Aplicación de Office.

El código de una Aplicación Office se ejecuta en un proceso de Sandbox separado y la infraestructura del Sandbox es facilitada por un WebControl de Internet Explorer (versión 9 y superior). Desde el punto de vista de tecnologías involucradas, las Aplicaciones Office soportan HTML 5 y CSS 3 en la interfaz de usuario de la misma forma que son soportadas por los navegadores modernos. Las Aplicaciones de este tipo se apoyan en las tecnologías Web y se soportan los navegadores más populares del momento, aunque requiere el uso de sus últimas versiones disponibles. Las Aplicaciones se ejecutan dentro de un iFrame proporcionado por WEF y la comunicación entre iFrames se realiza por medio del API "postMessage" de HTML 5.

36 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

Figura 6.- Arquitectura de una Aplicación de Office.

Figura 7.- Ejecución de una Aplicación de Office.

2.1.- El catálogo de Aplicaciones para Office
La(s) página(s) Web de una Aplicación puede(n) ser publicada(s) en cualquier tipo de servidor Web utilizando los métodos estándar para ello, como por ejemplo la creación de un Sitio Web en IIS (Internet Information Services). El Manifiesto (AppManifest.xml) tiene que ser publicado en un Catálogo de Aplicaciones, que no es más que un servidor que conserva una colección de Manifiestos, controla su acceso y monitorea su uso. El Manifiesto contiene un puntero hacia la URL donde se encuentra la página Web de la Aplicación. El Catálogo de Aplicaciones puede existir en diferentes formas:  La Tienda pública de Microsoft, que es un Catálogo global alojado y manejado por Microsoft, y que permite a los usuarios encontrar Aplicaciones gratis o de pago desde cualquier lugar en el mundo.

Arquitectura de Aplicaciones 37

  

Un Catálogo basado en SharePoint para ser utilizado corporativamente, accesible solamente dentro de la intranet de la compañía. Catálogos basados en Microsoft Exchange para Aplicaciones de Outlook. Un directorio local compartido, válido para desarrollo o pequeños grupos de usuarios. Un computador en la red interna local puede mantener el Manifiesto, exponerlo a otros computadores y funcionar como Catálogo.

2.2.- Tipos de Aplicaciones para Office
Existen tres tipos principales de Aplicaciones para Office: Aplicaciones de Contenido para extender el contenido de documentos, Aplicaciones para el Panel de Tareas que permiten mantener la Aplicación visible constantemente y Aplicaciones de Correo. El uso y programación de cada uno de estos tipos está descrito en capítulos específicos de este libro. La lógica para programar Aplicaciones de Office se debe escribir utilizando JavaScript y una librería especializada llamada "JavaScript API for Office" (Office.js). Esta librería es un modelo de programación unificado en todos los programas de Office, permitiendo acceso de lectura y escritura a los documentos y su manipulación por medio de código. Office.js se describe en profundidad en el capítulo respectivo de este libro.

Figura 8.- Arquitectura de Aplicaciones para Office.

38 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

Nota: Esquema extraído del sitio de Microsoft http://blogs.msdn.com/cfsfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-5399/0042.pic10.png.

2.3.- Interfaz de usuario
Los programas de Office que aceptan Aplicaciones disponen de un botón especial en el menú de Cinta que permite descubrir Aplicaciones. Éstas pueden encontrarse en el Tienda Pública o estar localizadas en algún tipo de servicio especial, como muestra la Figura 9. El Capítulo 4 explica extensivamente cómo utilizar la interfaz de usuario para Aplicaciones.

Figura 9.- Instalación de Aplicaciones en Word.

El mismo botón enumera las Aplicaciones instaladas y da acceso a su funcionalidad.

Arquitectura de Aplicaciones 39

3.- ARQUITECTURA SHAREPOINT

DE

APLICACIONES

PARA

Una Aplicación de SharePoint es un programa auto-contenido, (generalmente hablando) que no utiliza el Modelo de Objetos del servidor, fácil de instalar para el usuario final, y que resuelve un problema también especifico y bien definido. Los propietarios de un Sitio pueden descubrir e instalar Aplicaciones desde un Almacén público o accesible solo desde los límites de la organización e instalarlas en cualquier Sitio de SharePoint. Las Aplicaciones no reemplazan las Características y Soluciones de SharePoint que solamente pueden ser instaladas por Administradores: las Aplicaciones pueden ser instaladas por propietarios de Sitios y tienen un ciclo de vida mucho más sencillo (pueden ser instaladas, desinstaladas o actualizadas). Las Aplicaciones pueden ser hospedadas en diferentes formas: en el servidor del desarrollador o en la granja local de SharePoint, en Azure, en un servidor totalmente externo a la granja local de SharePoint o en una combinación de estas posibilidades. Información detallada sobre cada tipo de Aplicación, con ejemplos de programación, se puede encontrar en los capítulos dedicados a ellas en el libro. Si una Aplicación contiene componentes de SharePoint, los componentes son desplegados en una sub-web del Sitio que se crea automáticamente cuando se instala la Aplicación. Las Aplicaciones tienen su URL propia aislada de la URL del Sitio que contiene la Aplicación. Si una Aplicación es hospedada en el Sistema del desarrollador o auto-provisionada por Azure, los componentes de la Aplicación se guardan en esos mismos ambientes de trabajo. Por ejemplo, en el siguiente diagrama, Aplicacion2 contiene lógica personalizada de negocio y está guardada en un servidor externo: es una Aplicación auto-provisionada de Azure y no guarda su contenido en una sub-web del Sitio. Aplicacion1 es una Aplicación hospedada por SharePoint y dispone solamente de componentes de SharePoint. El contenido de la Aplicacion1 está almacenado en una sub-web del Sitio en el cual fue instalada.

Figura 10.- Diferentes tipos de Aplicaciones para SharePoint.

40 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

Por defecto, las Aplicaciones residen en un Sitio Web con un Dominio aislado del de SharePoint y los procesos que se ejecutan en ellas están también aislados de los procesos de SharePoint de tal forma que no puedan afectar al portal. Esto también previene problemas de seguridad como acceso no autorizado a los datos del usuario y scripts de cross-site. Cada Aplicación que se utilice en SharePoint dispone de su propia URL especificada por un nombre de Dominio, un prefijo y un identificador autogenerado. La ruta final está basada en la URL del sitio y la sub-web utilizada por la Aplicación. Así, por ejemplo, si la URL de una Colección de Sitios en SharePoint es http://www.dominio.com/sitios/myweb; una Aplicación que se instala en el Sitio de nivel superior de la Colección tendrá una URL como http://prefijoApID.dominioAplicacion.com/sitios/myweb/NombreAplicacion en donde:     prefijo puede ser definido en la configuración del Almacén de Aplicaciones (vea el capítulo sobre instalación en este libro), ApID es un identificador generado por el Almacén al instalar la Aplicación, dominioAplicacion es el Dominio de DNS en donde reside la Aplicación y NombreAplicacion es el nombre que identifica a la Aplicación en el Almacén.

Las Aplicaciones de SharePoint que utilizan el hospedaje dentro de SharePoint mismo utilizan un Inquilino (tenant) propio para asegurar la separación física y lógica de la granja misma, por lo que una parte de la configuración necesaria para utilizar Aplicaciones es la activación del "Servicio de configuración de suscripción de Microsoft SharePoint Foundation". Las Aplicaciones Autohospedadas en Azure crean automáticamente su propio tenant sin que el administrador tenga que hacer configuraciones adicionales. Para las Aplicaciones alojadas por el Proveedor, tanto los administradores como los desarrolladores se deben encargar de crear y configurar apropiadamente el sistema de hospedaje para asegurar la separación necesaria.

3.1.- Tipos de Aplicaciones para SharePoint
En cuanto a la experiencia de usuario, las Aplicaciones para SharePoint pueden ser de tres tipos:
Tabla 3.- Tipos de Aplicaciones de acuerdo a la interfaz de usuario.

Tipo Aplicación Inmersiva o de Página Completa

Descripción Implementa un escenario completo de funcionalidad para los usuarios, como por ejemplo una Aplicación para presupuestos. Utiliza páginas completas de SharePoint como Interfaz de Usuario.

Arquitectura de Aplicaciones 41

Aplicación para Partes, App Part o Elemento de Aplicación Aplicación para Extensión o Acciones Personalizadas

Similar a un WebPart, pero desplegada como Aplicación. Por ejemplo una parte para mostrar información de Listas en una forma personalizada o una parte para mostrar información sobre el clima. Utiliza solo una parte física en las páginas, pudiendo integrarse en la Interfaz de Usuario Agrega acciones a Sitios, Listas y Bibliotecas y puede modificar los menús por defecto. Un ejemplo podría ser un botón para imprimir información de una Lista.

3.2.- Interfaz de usuario
Los propietarios de Sitios pueden agregar Aplicaciones para SharePoint en sus Sitios propios, como ya se ha indicado. Las Aplicaciones residen en un Catálogo, sea externo (la Tienda de Microsoft) o interno (una Colección de Sitios de SharePoint creada con la plantilla "Sitio del catálogo de aplicaciones" con identificador "APPCATALOG#0"). Un administrador de la Colección de Sitios del Catálogo puede agregar una Aplicación subiendo su archivo ".app" a la Lista "Aplicaciones para SharePoint" creada por defecto en el Sitio de nivel superior de la Colección. Normalmente la configuración automática de SharePoint lleva un par de segundos, después de los cuales la Aplicación es visible para los usuarios desde "Contenidos del sitio"  "Agregar una aplicación"  "De su organización" (sección "Sus aplicaciones").

Figura 11.- Aplicación de SharePoint disponible para instalar.

El vínculo "Detalles de la aplicación" muestra una página con la vista previa de la Aplicación, su descripción, versión y fecha de emisión. Si el administrador del Catálogo ha subido una versión nueva, el usuario recibe un aviso indicando que la Aplicación se puede actualizar y puede hacerlo desde esta pantalla cuando lo considere necesario.

42 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

Las Aplicaciones se pueden eliminar tanto desde el sitio de uso como desde el Catálogo en cualquier momento. Una Aplicación que ya se ha instalado en un Sitio de usuario puede ser eliminada del Catálogo y seguir funcionando sin problemas, es decir, si la Aplicación se borra del Catálogo, no se elimina automáticamente de todos los Sitios en donde está en uso. Las Aplicaciones necesitan satisfacer un número de prerrequisitos para poder ser utilizadas en un Sitio de SharePoint, como por ejemplo, el Sitio se tiene que crear con una plantilla específica. En caso de que alguno de los prerrequisitos no se cumpla, la Aplicación misma indica que no es posible instalarla y el botón de "Agregar" aparece desactivado, como indica la Figura 12.

Figura 12.- Aplicación que no se puede instalar en un Sitio de SharePoint.

4.- CONCLUSIONES
La arquitectura de Aplicaciones tanto para Office como para SharePoint ofrece un modelo flexible y seguro para agregarle nueva funcionalidad a los sistemas. Las Aplicaciones para Office 2013 proporcionan una forma a los usuarios de Word, Excel, PowerPoint, Outlook y Project de agregar y procesar contenido. Las Aplicaciones para Office no reemplazan los modelos anteriores para agregarle funcionalidad a Office, tales como macros o VSTO, sino que los complementan ofreciendo una forma más centrada al contenido que a la automatización de los programas. Aunque las formas tradicionales de añadir funcionalidad a SharePoint 2013, es decir, soluciones para instalar en el servidor y soluciones de Sandbox, siguen existiendo en el servidor, Microsoft insiste en que las Aplicaciones debe ser la primera opción a examinar y solamente si no es posible crear la funcionalidad con ellas, las

Arquitectura de Aplicaciones 43

otras variantes entran en juego. Teniendo en cuenta que las Aplicaciones tienen que utilizar protocolos especializados para autenticación y autorización, y que solamente pueden utilizar el Modelo de Objetos de Cliente y el API REST para acceder a la información en SharePoint, su campo de aplicación en relación con aplicaciones de servidor y soluciones de Sandbox puede representar una limitación técnica.

CAPÍTULO

3

Herramientas de Desarrollo

Desde el punto de vista de su extensibilidad, se puede considerar que tanto Microsoft Office, como SharePoint On-Premise y su equivalente en la nube, SharePoint Online en Office 365, son plataformas de desarrollo gracias a las posibilidades que ofrecen sus APIs ("Application Programming Interface"), el nuevo modelo de Aplicaciones y las herramientas de desarrollo disponibles.

1.- INTRODUCCIÓN
Tanto Microsoft Office como SharePoint (On-Premise y Online en Office 365) son plataformas de desarrollo que pueden ser modificadas y adaptadas a los requerimientos de negocio y del usuario por medio del marco definido por el nuevo modelo de Aplicaciones y las APIs disponibles. En el caso de Office, la extensibilidad mediante Aplicaciones es posible a través de WEF (Web Extensibility Framework) que en esencia permite mostrar contenido de una página remota dentro de una Aplicación para Office e interactuar con documentos y elementos de Office (documentos Word, libros Excel, mensajes / citas de Exchange y Outlook, etc). En el caso de SharePoint, las Aplicaciones se definen como programas auto-contenidos, sencillos de instalar, que no hacen uso del Modelo de Objetos del Servidor y que no viven en SharePoint, sino que se ejecutan en un dominio aislado, en un servidor remoto o bien en la plataforma Windows Azure de Microsoft. Para crear Aplicaciones para SharePoint hay que familiarizarse con su Modelo de Objetos en Cliente, la API REST, el acceso a datos mediante OData y el uso de OAuth como mecanismo de autorización. Los programadores pueden hacer uso de estas APIS y de las herramientas de desarrollo disponibles para implementar las Aplicaciones que se adapten a cada escenario planteado.
45

46 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

2.- HERRAMIENTAS DE DESARROLLO DE OFFICE PARA VISUAL STUDIO 2012
Las herramientas de desarrollo de Office para Visual Studio 2012 (versiones Premium, Professional y Ultimate) permiten crear Aplicaciones tanto para SharePoint como para Office. Por defecto, estas herramientas no forman parte de Visual Studio 2012, sino que una vez instalado el entorno de desarrollo, es necesario descargarlas e instalarlas. Microsoft facilita la disponibilidad de las herramientas mediante la utilidad gratuita Web Platform Installer (Web PI): Nota: Como se indica en el Capítulo 19, Visual Studio 2013 Preview si incluye de serie las herramientas de desarrollo de Office para Visual Studio por lo que es esperable que en ésa y futuras versiones no sea necesario seguir el procedimiento descrito en este Capítulo.  Acceda a la página de descarga de la Web PI disponible en la URL http://www.microsoft.com/web/downloads/platform.aspx e inicie su descarga. Una vez descargada Web PI, ejecútela de manera que arranque un asistente el cual muestre inicialmente un listado de componentes de la plataforma Web de Microsoft que pueden ser instalados en el equipo. Utilizando la caja de búsqueda, localice las herramientas de desarrollo de Office para Visual Studio 2012 como muestra la Figura 1.

Figura 1.- Herramientas de desarrollo de Office para Visual Studio 2012 en el Web PI.

Pulse los botones "Agregar" e "Instalar" para iniciar el proceso de descarga e instalación de las herramientas en el equipo de desarrollo, que incluyen los siguientes componentes: o o o Microsoft Office Developer Tools for Visual Studio 2012. Windows Identity Foundation SDK. SharePoint Client Components.

Herramientas de Desarrollo 47

o o o o o o o 

Workflow Manager Tools 1.0 for Visual Studio 2012 Core. Workflow Client 1.0. Workflow Manager 1.0 Cumulative Update 1. Microsoft Exchange Web Services. Microsoft OpenXml SDK. Microsoft Visual Studio 2012 Tools for Office Runtime Language Pack. Microsoft Visual Studio 2012 Tools for Office Runtime.

El proceso concluye indicando que se han instalado de forma correcta. Adicionalmente, puede ser necesario un re-inicio del sistema antes de que la instalación concluya.

Notas: (1) Para instalar las Herramientas de Desarrollo de Office para Visual Studio 2012 no es obligatorio disponer de SharePoint 2013 instalado de manera local. Sí es recomendable su instalación en caso de que se desee crear y probar Aplicaciones para SharePoint 2013 On-Premise (versiones Foundation y Server). (2) Se recomienda actualizar Visual Studio con la última versión liberada por Microsoft. En el momento de edición de este libro, se dispone de la Actualización 3 para Visual Studio 2012, y ya se sabe que habrá una Actualización 4: Actualización 3: http://support.microsoft.com/kb/2835600/es. Versión RC 1 (Release Candidate) de la Actualización 4: http://www.microsoft.com/en-us/download/details.aspx?id=39704 La instalación de las herramientas de desarrollo de Office para Visual Studio 2012 añade en la ventana "Agregar nuevo proyecto" de Visual Studio una sección "Office/SharePoint  Aplicaciones", además de dos plantillas de proyecto para crear Aplicaciones: Aplicación para Office 2013 y Aplicación para SharePoint 2013 (Figura 2). Los proyectos creados con ambas plantillas permiten utilizar toda la funcionalidad de Visual Studio como depuración, generación del paquete de despliegue, despliegue automático, IntelliSense, etc.

48 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

Figura 2.- Plantillas para crear Aplicaciones para Office y SharePoint.

Cada una de las dos plantillas disponibles facilita crear los distintos tipos de Aplicaciones para Office y SharePoint:   Inicie Visual Studio y cree un proyecto de tipo "Aplicación para Office 2013". Note como el correspondiente asistente permite elegir el tipo de Aplicación de Office que se puede crear: o o o "Panel de Tareas" para Excel, Word, PowerPoint y Project. "De Contenido" para Excel, tanto para la versión Web como la versión de escritorio "De Correo" para Outlook, tanto para la versión Web como la de escritorio.

Figura 3.- Asistente para crear una Aplicación para Office.

Herramientas de Desarrollo 49

Agregue a la solución de Visual Studio un nuevo proyecto de tipo Aplicación para SharePoint 2013. El asistente que se inicia a continuación permite indicar parámetros para la Aplicación como: o o o El nombre de la Aplicación. El Sitio de SharePoint (On-Premise u Online) que se vaya a utilizar para depuración. El tipo de Aplicación para SharePoint que puede ser "Autohospedado", "Hospedado por el proveedor" y "Hospedado por SharePoint".

Figura 4.- Asistente para crear una Aplicación para SharePoint.

3.- NAPA Y EL SITIO DE DESARROLLADOR EN OFFICE 365
Para facilitar la creación de Aplicaciones sin necesidad de instalar Visual Studio, Microsoft ha puesto a disposición de los programadores un entorno de desarrollo accesible a través del navegador conocido con el nombre de NAPA. Se trata de una herramienta de programación ligera, complementaria a Visual Studio que permite crear Aplicaciones tanto para SharePoint Online en Office 365 como para los clientes Office en sus versiones Web y de escritorio.

50 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

Notas: (1) Para poder utilizar NAPA, no es necesario instalar software alguno en el equipo de desarrollo. Es suficiente con acceder al entorno de desarrollo a través del navegador y el Sitio de SharePoint Online. (2) NAPA no está disponible ni puede ser utilizada para crear Aplicaciones para SharePoint 2013 On-Premise. NAPA es en sí misma una Aplicación de SharePoint que únicamente se puede instalar en Colecciones de sitios de SharePoint Online creados con la plantilla "Sitio de desarrollador". Las posibilidades para acceder a una colección creada con esta plantilla son:  A través de una suscripción MSDN de Visual Studio Premium, Professional o Ultimate que incluye como beneficio una suscripción de desarrollador de Office 365 vigente durante un año. Mediante una suscripción de desarrollador de Office 365, que tiene un coste de 6,70 € mensuales (impuestos no incluidos). Adquiriendo un plan de tipo mediana empresa o empresarial, planes E1 o E3 respectivamente, de Office 365.

 

Nota: Las suscripciones de desarrollador, mediana empresa y empresarial de Office 365 se pueden probar de forma gratuita durante un máximo de 30 días. Transcurrido ese tiempo, se puede optar por adquirir la suscripción o dejar que expire si no se va a seguir utilizando. Para más información sobre Office 365, planes disponibles y acceso a una versión de prueba: http://office.microsoft.com/es-es/. A modo de ejemplo, registre un Sitio de desarrollador de Office 365 de prueba accediendo a la URL:
https://portal.microsoftonline.com/Signup/MainSignUp.aspx?OfferId=6881A1 CB-F4EB-4db3-9F18-388898DAF510&DL=DEVELOPERPACK

A continuación realice los siguientes pasos:  En el formulario que se muestra, complete los datos necesarios para crear la versión de prueba y presione el botón "crear mi cuenta". Cuando el proceso concluye, desde la página "centro de Administración de Office 365" se puede

Herramientas de Desarrollo 51

acceder a los distintos servicios de la plataforma una vez que se han provisionado.  En la parte superior de la página, despliegue las opciones disponibles en el menú "Administrador" y utilice el enlace "SharePoint". A continuación se muestra el "Centro de Administración de SharePoint Online" desde donde se puede acceder a la administración de distintos servicios y al listado de Colecciones de sitios creadas por defecto. La primera Colección de sitios que se muestra en la categoría "Colecciones del sitios" del listado es el Sitio de desarrollador, que se crea por defecto con una suscripción de desarrollador de Office 365 (Figura 5).

Figura 5.- Sitio de desarrollador en el listado de colecciones de sitios.

Utilice el enlace correspondiente al Sitio de desarrollador, de manera que se muestre una ventana modal que permite navegar al Sitio.

Para comenzar a usar NAPA, es necesario agregar primero la Aplicación en el Sitio de desarrollador creado:  Haga clic en el tile del Sitio con el texto "Crear una aplicación".

Figura 6.- Sitio de desarrollador y acceso a las herramientas de desarrollo.

52 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

A continuación se muestra la página de detalle de la Aplicación "NAPA" Office 365 Development Tools en la tienda de Aplicaciones de SharePoint o "Almacén de SharePoint". Presione el botón "Agregar" para comenzar el proceso que permite añadir NAPA al Sitio de desarrollador. En la nueva página indique unas credenciales válidas para la tienda de SharePoint, por ejemplo el Windows Live ID que utilice habitualmente. Una vez autenticado, en la página de confirmación que se muestra pulse el botón "Continue". Si el proceso de adquisición de NAPA concluye de forma correcta, aparece una nueva página confirmando que la Aplicación se ha agregado. Presione el botón "Volver al sitio", de manera que se vea una ventana modal en la que se informa sobre los permisos que se necesitan en NAPA para su correcto funcionamiento. Presione el botón "Confiar" para añadir la Aplicación al Sitio de desarrollador.

Figura 7.- Ventana de solicitud de permisos para NAPA.

A continuación se muestra la página "Contenidos del sitio" del Sitio del desarrollador que dispone de acceso directo a todas las Aplicaciones instaladas. Note como el tile correspondiente a la Aplicación "NAPA" aparece inicialmente en un estado deshabilitado que indica que está siendo agregada al Sitio. Una vez la Aplicación "NAPA" está disponible, presione el tile correspondiente a la misma, de esta manera se muestra una página inicial desde la que se pueden crear los tipos de Aplicaciones (Figura 8): o "App for SharePoint", permite crear una Aplicación de tipo "Hospedada por SharePoint" tanto para SharePoint Online en Office 365 como para SharePoint 2013 On-Premise ya que es posible portar las Aplicaciones creadas con NAPA a Visual Studio

Herramientas de Desarrollo 53

2012 de manera que se habilita el despliegue de las mismas en servidores On-Premises. o "Content app for Excel", facilita crear una Aplicación de contenido que se ejecute en las versiones Web y de escritorio de Microsoft Excel. "Task pane app for Office", para crear Aplicaciones que se ejecuten en las versiones de escritorio de Microsoft Excel, Word, PowerPoint y Project y en la versión Web de Excel. "Mail app for Office", permite crear una Aplicación de correo tanto para Microsoft Office Outlook como para su equivalente Web.

o

o

Notas: (1) La URL que hospeda NAPA, https://www.napacloudapp.com/, hace referencia a una Aplicación hospedada en Windows Azure. (2) Las posibilidades de creación de Aplicaciones descritas son las disponibles tras la última actualización de NAPA realizada por Microsoft en junio de 2013.

Figura 8.- Página de creación de un proyecto de Aplicación en NAPA.

54 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

A modo de ejemplo de uso de "NAPA", cree un proyecto de tipo "App for SharePoint":   En la página inicial de "NAPA", seleccione como tipo de Aplicación "App for SharePoint", indique un nombre para el proyecto y presione el botón "Create". A continuación, se muestra en el navegador el entorno de desarrollo de "NAPA" que cuenta con los siguientes áreas: o Una sección "Explore" desde la que se puede acceder a los distintos elementos que forman parte de la Aplicación para SharePoint: archivos .CSS, librerías JavaScript, páginas .aspx, etc. Note como los contenidos están agrupados en carpetas autoexplicativas. No se pueden agregar carpetas en la raíz del árbol, solamente subcarpetas en las creadas por defecto. Un editor de código, con soporte de Intellisense, que permite editar y modificar los elementos que forman parte de la Aplicación. Unos botones de acción para realizar las siguientes funciones:  Ejecutar la Aplicación creada para proceder a evaluar su funcionamiento. Cuando se pulsa el botón "Run Project" se inicia el proceso de empaquetado, despliegue y visualización de la Aplicación que se está desarrollando. Eliminar la Aplicación por medio del botón "Remove app". Realizar configuraciones de la Aplicación utilizando el botón "Properties". Por ejemplo, para una Aplicación de SharePoint se pueden realizar modificaciones relativas a los permisos que necesita para su ejecución. "Open in Visual Studio", que permite exportar el proyecto creado con NAPA para importarlo en Visual Studio. El proceso de exportación genera un archivo ".exe" que al ser ejecutado abre Visual Studio y convierte el proyecto de Aplicación creado en "NAPA" en un proyecto de Aplicación de Visual Studio. El botón "Share" facilita compartir de forma pública el proyecto de Aplicación con otros usuarios generando para ello una copia del mismo y una URL pública desde la que se pueda acceder en modo lectura. Empaquetar en un archivo ".App" la Aplicación creada facilitando de esta forma su distribución y uso en

o o

 

Herramientas de Desarrollo 55

catálogos de Aplicaciones tanto de SharePoint Online como de SharePoint On-Premise.  Presione el botón "Run Project" para empaquetar, desplegar y ejecutar la Aplicación. Note como el proceso de despliegue concluye mostrando una URL desde la que lanzar la Aplicación.

Figura 9.- Entorno de desarrollo proporcionado por "NAPA".

Una vez que se crea la primera Aplicación de "NAPA" el acceso a la ventana de desarrollo es diferente pues la página inicial muestra los tiles relativos a los proyectos creados por el usuario y permite crear nuevas Aplicaciones por medio del tile "Add New Project". El capítulo 15 describe en detalle cómo crear una Aplicación funcional utilizando NAPA.

56 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

4.- VISUAL STUDIO LIGHTSWITCH
Visual Studio LightSwitch incorpora al entorno de desarrollo de Microsoft una serie de plantillas y asistentes que facilitan la creación sin necesidad de desarrollo de Aplicaciones empresariales desde las que se visualizan, añaden y modifican datos diversos. LightSwitch habilita la creación de dos tipos de Aplicaciones empresariales para SharePoint:   Autohospedadas, es decir, Aplicaciones para SharePoint Online en Office 365 que se hospedan y ejecutan en Windows Azure. Hospedadas por el proveedor, Aplicaciones hospedadas en un servidor externo a SharePoint.

Para crear una Aplicación inicial de SharePoint con Visual Studio LightSwitch, se deben seguir los siguientes pasos:  En primer lugar, instalar o bien la actualización de Visual Studio 2012 que incluye las plantillas de proyecto y asistentes necesarios para crear Aplicaciones tal y como se describe en el artículo de la KB de Microsoft http://support.microsoft.com/kb/2797912/es. O bien, instalar Visual Studio LightSwitch si no se dispone de una instalación previa del entorno de desarrollo. Nota: Al igual que sucede con las herramientas de desarrollo de Office para Visual Studio, Visual Studio 2013 Preview dispone de serie de las plantillas de proyecto para crear Aplicaciones LightSwitch por lo que es de esperar que en la versión final del IDE y en versiones futuras se incluyan por defecto y no sea necesario realizar su instalación.  Crear un proyecto de Aplicación de LightSwitch utilizando alguna de las 4 plantillas disponibles en la sección LightSwitch de la ventana "Agregar nuevo proyecto" de Visual Studio (Figura 10). Por ejemplo, seleccione la plantilla "Aplicación HTML de LightSwitch (Visual C#). Familiarizarse con el entorno y forma de creación de Aplicaciones para SharePoint con LightSwitch siguiendo los tutoriales que Microsoft ha creado. Por ejemplo el tutorial disponible en el enlace http://msdn.microsoft.com/eses/library/jj969621.aspx.

Herramientas de Desarrollo 57

Figura 10.- Plantillas de proyecto de LightSwitch.

El Capítulo 18 describe los pasos detallados para crear una Aplicación funcional con LightSwitch.

5.- MICROSOFT OFFICE ACCESS 2013
Microsoft Office Access 2013 permite crear y publicar (a través de los Servicios de Access) Aplicaciones empresariales escalables tanto en SharePoint Server 2013 OnPremise como en SharePoint Online en Office 365. Además pueden ser utilizadas sin necesidad de tener instalado localmente el cliente de Access 2013. Esta herramienta está pensada para que profesionales con buenos conocimientos de un escenario de negocio (como por ejemplo una gestión de pedidos) puedan crear rápidamente una Aplicación para el mismo sin necesidad de tener conocimientos de desarrollo. Los Servicios de Access habilitan la creación y publicación de Aplicaciones de SharePoint a partir de la publicación que se inicia desde Access 2013 en el mismo momento que se crea una Aplicación. El proceso realiza las siguientes conversiones de elementos de Access:  Los formularios Access diseñados se convierten en formularios HTML acompañados por hojas de estilo, código JavaScript y otros elementos necesarios para su funcionamiento.

58 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

 

Las tablas de Access son mapeadas a tablas creadas en una BD SQL Server OnPremise o en SQL Azure. Las macros que definen la lógica de funcionamiento de los formularios se convierten en triggers de SQL. En cambio, las reglas de validación generan restricciones a nivel de SQL. Las consultas sin parámetros se convierten en vistas de SQL Server, mientras que las consultas con parámetros se convierten en "Funciones con valores de tabla".

Para crear una Aplicación con Microsoft Office Access 2013:   Inicie Access 2013 y elija una de las plantillas de Aplicación disponible. Por ejemplo, seleccione "Seguimiento de asuntos". A continuación se abre una ventana modal que muestra una vista previa de la Aplicación base que se va a crear y que permite indicar los parámetros: o o El nombre de la Aplicación, indique "Seguimiento de Asuntos". La ubicación Web (URL) desde la que los usuarios pueden acceder a la Aplicación. En este caso se puede elegir entre alguno de los Sitios listados en la sección "Ubicaciones disponibles", o bien especificar manualmente la URL del Sitio donde se va a publicar la Aplicación.

Tras especificar los parámetros iniciales de configuración, pulse el botón "Crear" de manera que Access 2013 inicie la comunicación con los Servicios de Access y, al mismo tiempo, inicie el proceso de creación de la Aplicación. Tenga en cuenta que es necesario introducir las credenciales de un usuario con los derechos adecuados para crear y publicar la Aplicación.

Una vez concluye el proceso de creación, se muestra la vista de diseño de Access 2013 para modificar los elementos (formularios, tablas, macros, etc.) que se crean por defecto o bien añadir nuevos. Por ejemplo, se puede optar por crear nuevas tablas desde cero o bien utilizar como base alguna de las plantillas disponibles. Cualquiera de las dos opciones supone crear la tabla y los formularios básicos de gestión que se generan de forma automática.

Herramientas de Desarrollo 59

Figura 11.- Ventana modal para crear la Aplicación en Access 2013.

A partir de aquí, es necesario modificar y extender la Aplicación de base utilizando las opciones disponibles en la Cinta de Access y en la propia vista de diseño de la Aplicación:   La vista de diseño inicial muestra las entidades que forman parte de la Aplicación y que se corresponden con una tabla a nivel de SQL Server. Cada entidad dispone de uno o varios formularios que se pueden personalizar utilizando el diseñador de Access y la opción "Modificar". Por ejemplo, la entidad "Problemas" cuenta con formularios como "Problemas Lista" que es un formulario de captura de datos o "Problemas Hoja de Datos" que es un formulario con un formato estilo "Excel" para ver los datos existentes e introducir nuevos. La opción "Iniciar aplicación" permite ver la Aplicación en el explorador. La opción "Panel de navegación" de la Cinta muestra los objetos que forman parte de la Aplicación. Por ejemplo, se muestra el listado de tablas y de formularios que la forman. La opción "Tabla" permite agregar nuevas tablas a la Aplicación. Para cada tabla creada, Access 2013 crea dos vistas: "Lista" y "Hoja de datos".

 

60 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

La opción "Vista" permite crear una vista de información asociada a una entidad existente. Realmente, las "Vistas" de Aplicaciones Access son formularios para que los usuarios puedan interactuar con los datos. Por ejemplo, un listado de problemas agrupados por Estado. La opción "Opciones avanzadas" da acceso a funcionalidad más compleja para la Aplicación como por ejemplo la creación de consultas específicas o la definición de macros.

Figura 12.- Vista de diseño de la Aplicación en Access 2013.

Para publicar y ver la Aplicación en los Servicios de Access con los últimos cambios realizados, use la opción "Iniciar aplicación" de la Cinta. Otra posibilidad para visualizar la Aplicación es guardar los cambios y utilizar el acceso directo disponible en la página "Contenidos del sitio". La Figura 13 muestra el aspecto de la Aplicación publicada. No se muestran todas las entidades disponibles en el diseñador de Access, ya que es posible configurar qué entidades mostrar y cuáles ocultar al usuario.

Figura 13.- Aplicación de Access publicada.

Herramientas de Desarrollo 61

Finalmente, es posible guardar la Aplicación creada como un paquete de Aplicación que facilite su re-utilización en otros despliegues de SharePoint. Para generar el paquete de Aplicación, vaya a "Archivo  Guardar como", especifique en la ventana que se abre el nombre del paquete, y a continuación indique la ruta donde se guardará el correspondiente archivo ".app".

6.- TYPESCRIPT
Además de las distintas herramientas de desarrollo descritas, la creación de Aplicaciones para SharePoint y Office se simplifica mediante el uso de distintos frameworks y utilidades enfocados a facilitar el desarrollo. Un ejemplo es el lenguaje TypeScript desarrollado por Microsoft para facilitar la creación de Aplicaciones multiplataforma, es decir, válido para cualquier navegador y cualquier sistema operativo. TypeScript es un súper-set de JavaScript que permite el desarrollo "tipado" de Aplicaciones. Así, aquellos desarrolladores acostumbrados a programar usando lenguajes de desarrollo como C# o Java pueden utilizar sus conocimientos para la creación de Aplicaciones en los que la lógica se ejecute en el cliente en JavaScript, proporcionando una serie de clases, módulos e interfaces que posteriormente se compilan en código JavaScript. En cuanto a las herramientas, los desarrolladores pueden optar por utilizar el plugin de TypeScript para Visual Studio que incorpora las características de este nuevo lenguaje en el entorno de desarrollo. Nota: Para más información sobre TypeScript, visite la URL del proyecto disponible en http://www.typescriptlang.org/ y el último capítulo de este libro. El capítulo 18 proporciona instrucciones detalladas sobre el uso de TypeScript.

7.- CONCLUSIONES
Las herramientas de desarrollo disponibles para los modelos de Aplicaciones de Office y SharePoint facilitan extender ambas plataformas en distintos niveles creando nuevas soluciones y funciones orientadas tanto al usuario doméstico, como al usuario más profesional y a organizaciones de distinta naturaleza. Microsoft pone a disposición de los desarrolladores y analistas de negocio diferentes entornos para crear, desplegar y evaluar Aplicaciones de Office y SharePoint. Para los primeros, las herramientas de desarrollo van desde Visual Studio a NAPA pasando por Visual Studio LightSwitch. Para los segundos, Microsoft Access 2013 es una utilidad para crear rápidamente Aplicaciones orientadas al negocio con apenas desarrollo.

62 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.

Finalmente, el Sitio de Desarrollo de Office 365 forma parte del juego de herramientas de desarrollo ya que facilita el acceso a "NAPA" y es el entorno definido por defecto para el despliegue y evaluación de Aplicaciones en desarrollo.