Todo sobre Aplicaciones para
SharePoint, Office y Office 365:
Creacin y publicacin de Apps para
la Office Store desde cero.
Gustavo Velez
Juan Carlos Gonzlez
Fabin Imaz
Alberto Daz
TODO SOBRE APLICACIONES PARA SHAREPOINT, OFFICE Y OFFICE 365: CREACIN Y PUBLICACIN DE APPS PARA LA OFFICE STORE
DESDE CERO.
No est permitida la reproduccin total o parcial de este libro, ni su tratamiento informtico, ni la
transmisin de ninguna forma o por cualquier medio, ya sea electrnico, mecnico, por fotocopia, por registro u otros mtodos, sin el permiso previo y por escrito de los titulares del Copyright. Dirjase a CEDRO (Centro Espaol de Derechos Reprogrficos, www.cedro.org) si necesita fotocopiar o escanear algn fragmento de esta obra.
DERECHOS RESERVADOS 2013, respecto a la primera edicin en espaol, por
Krasis Consulting, S. L.
www.Krasis.com
ISBN: 978-84-941112-2-8
CREATIVIDAD Diseo Cubierta: Pablo Iglesias Francisco Fruta Cubierta: La manzana tipo Royal Gala" es de origen neocelands y tiene la piel con estras rojas y naranjas sobre un fondo amarillo verdoso. Su forma es muy redondeada y su carne es blanca, crujiente y consistente. Muy aromtica y jugosa. Su recoleccin 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 ms 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 tecnolgico, lo mismo que una gran aventura humana. Muchas gracias
a mis compaeros Jos Manuel, Juan Carlos, Fabin y Alberto por su dedicacin 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 slo no dude en
darle un Si, quiero, sino que adems le propuse involucrar a mis otros dos compaeros de batalla en tantas aventuras de comunidad y retos tecnolgicos: Gustavo
y Fabin. Ha sido todo un privilegio trabajar en este equipo formado por encima de
todo por grandes amigos, personas apasionadas por la tecnologa 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 tecnolgica
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 quin se
est convirtiendo en parte esencial de mi vida: Raquel, gracias por estar ah y llenar mis
das.
Finalmente, no me puedo olvidar de mi entorno de toda la comunidad de SharePoint
tan dinmica y llena de gente con ganas de aprender y ensear 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 Gonzlez
iv
Es muy reconfortante alcanzar las metas que nos proponemos, pero lo es ms alcanzar
las mismas siendo parte de este gran equipo. Quiero agradecer a mis compaeros, ms
an, 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 disposicin
esto no hubiera sido posible, gracias lvaro, Diego, y Javier porque desde un principio,
hace 8 aos siempre me han apoyado incondicionalmente y gracias Juan Manuel por
todo tu sostn y respaldo durante estos ltimos aos.
Por ltimo a vos Paula por estar ah siempre apoyndome incondicionalmente,
gracias amor.
Fabin Imaz
All por el final del ao 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 hablbamos de SharePoint y Gustavo era la
eminencia que escriba 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 anfitrin, ser una gran persona y un buen amigo desde esos
das, y a Gustavo, lo sigo considerando el gran maestro, pero que es mucho ms 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 Fabin 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 slo
este libro, sino el aporte que hacemos todos los das a la comunidad.
Mis padres me pusieron un Spectrum ZX en las manos cuando slo tena 5 aos, 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 mrito es para mi mujer, Miriam, que me conoce y
me da toda la libertad que necesito para dedicarme a lo que ms me gusta, la
tecnologa.
Alberto Diaz
v
Contenido
AGRADECIMIENTOS ............................................................................................... III
CONTENIDO .............................................................................................................. V
AUTORES ................................................................................................................ XIII
PRLOGO .................................................................................................................. 15
PRESENTACIN ....................................................................................................... 17
CAPTULO 1: APLICACIONES PARA OFFICE Y SHAREPOINT ................... 21
1.- Introduccin ................................................................................................................................ 21 2.- Aplicaciones para Office 2013 ................................................................................................ 23 3.- Aplicaciones para SharePoint 2013 ....................................................................................... 23
3.1.- Aplicaciones o soluciones? ......................................................................................... 25 3.1.1.- Elementos de decisin .......................................................................................... 26
4.- Conclusiones............................................................................................................................... 28
CAPTULO 2: ARQUITECTURA DE APLICACIONES ...................................... 29
1.- Introduccin ................................................................................................................................ 29 1.1.- El archivo .app ................................................................................................................. 30 1.2.- El archivo de manifiesto ............................................................................................... 32
2.- Arquitectura de Aplicaciones para Office ........................................................................... 35 2.1.- El catlogo 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
CAPTULO 3: HERRAMIENTAS DE DESARROLLO .......................................... 45
1.- Introduccin ................................................................................................................................ 45 2.- Herramientas de desarrollo de Office para Visual Studio 2012 .................................... 46 3.- NAPA y el sitio de desarrollador en Office 365 ............................................................... 49 4.- Visual Studio LightSwitch ......................................................................................................... 56 5.- Microsoft Office Access 2013 ................................................................................................ 57 6.- TypeScript ................................................................................................................................... 61 7.- Conclusiones............................................................................................................................... 61
Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.
vi
CAPTULO 4: TIPOS DE APLICACIONES PARA OFFICE ............................... 63
1.- Introduccin ................................................................................................................................ 63 2.- Aplicaciones de panel de tareas ............................................................................................. 64 3.- Aplicaciones de contenido ...................................................................................................... 66 4.- Aplicaciones de correo ............................................................................................................ 68 5.- API JavaScript para Aplicaciones de Office ......................................................................... 70
5.1.- API para Aplicaciones centradas en el documento ............................................... 71 5.1.1.- Mtodos 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 informacin 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.- Diseo de una Aplicacin de panel de tareas ......................................................... 80 6.2.- Diseo de una Aplicacin de contenido .................................................................. 81 6.3.- Diseo de una Aplicacin de correo ........................................................................ 82
7.- Conclusiones............................................................................................................................... 82
CAPTULO 5: APLICACIONES DE PANEL DE TAREAS PARA OFFICE ...... 85
1.- Introduccin ................................................................................................................................ 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.- Creacin del proyecto de Visual Studio .................................................................. 90 3.2.- Diseo de la interfaz grfica ........................................................................................ 96 3.3.- Implementacin de la lgica de negocio ................................................................ 101
4.- Conclusiones............................................................................................................................. 107
CAPTULO 6: APLICACIONES DE CONTENIDO PARA OFFICE ................109
1.- Introduccin .............................................................................................................................. 109 2.- API Office.js para Aplicaciones de contenido................................................................... 109 3.- Creacin de Aplicaciones de contenido ............................................................................ 111
3.1.- Aplicacin de contenido creada por defecto en Visual Studio ........................ 112 3.2.- Creacin de una Aplicacin de contenido ............................................................ 115
4.- Conclusiones............................................................................................................................. 122
CAPTULO 7: APLICACIONES DE CORREO PARA OFFICE ........................123
1.- Introduccin .............................................................................................................................. 123 2.- Posibilidades de una Aplicacin de correo ....................................................................... 125 3.- El modelo de objetos para aplicaciones de correo......................................................... 126
3.1.- El Objeto Mailbox ........................................................................................................ 128 3.2.- Preservacin de informacin (Roaming) ................................................................ 130 3.3.- Autenticacin de Aplicaciones de correo ............................................................. 130
Contenido vii
3.4.- Permisos para Aplicaciones de correo................................................................... 131 4.- Servicios web de Exchange ................................................................................................... 132 5.- Programacin de una Aplicacin de correo ..................................................................... 134 6.- Conclusiones............................................................................................................................. 139
CAPTULO 8: TIPOS DE APLICACIONES DE SHAREPOINT .......................141
1.- Introduccin .............................................................................................................................. 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.- Eleccin entre una Aplicacin en la nube y una Aplicacin hospedada por SharePoint ................................................................................................................................ 147
3.- Clasificacin por tipo de punto de entrada ...................................................................... 147 3.1.- Aplicacin de pantalla completa ............................................................................... 147 3.2.- Elementos de Aplicacin ............................................................................................ 148 3.3.- Acciones personalizadas............................................................................................. 149
4.- Conclusiones............................................................................................................................. 150
CAPTULO 9: DISEO Y ESTILOS DE UNA APLICACIN ..........................151
1.- Introduccin .............................................................................................................................. 151 2.- Control Chrome...................................................................................................................... 152
2.1.- Cmo usar el control Chrome ................................................................................ 153 3.- Hojas de estilo .......................................................................................................................... 159
3.1.- Cmo usar las hojas de estilo .................................................................................. 159 4.- Elementos de Aplicacin ........................................................................................................ 161
4.1.- Cmo crear elementos de Aplicacin.................................................................... 162 5.- Acciones personalizadas ........................................................................................................ 167
5.1.- Cmo crear acciones personalizadas ..................................................................... 168 6.- Plantilla de Aplicacin ............................................................................................................. 175
6.1.- Cmo crear una plantilla de Aplicacin ................................................................. 175 7.- Conclusiones............................................................................................................................. 179
CAPTULO 10: CSOM, REST, ODATA Y CROSS DOMAIN ...........................181
1.- Introducccin ............................................................................................................................ 181 2.- Modelo de objetos en cliente ............................................................................................... 184
2.1.- Implementacin .NET ................................................................................................. 186 2.2.- Implementacin 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.
viii
CAPTULO 11: PERMISOS, SEGURIDAD Y OAUTH.......................................217
1.- Introduccin .............................................................................................................................. 217 2.- Identidad basada en notificaciones ...................................................................................... 218
2.1.- Conceptos bsicos 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 autenticacin 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.- Autenticacin Server-To-Server (S2S) ................................................................... 231
5.- Proceso de autorizacion de Aplicaciones .......................................................................... 233 5.1.- Polticas de autorizacin ............................................................................................ 233 5.2.- Autorizacin en el archivo AppManifest ................................................................ 233 5.3.- Autorizacin por medio del usuario ....................................................................... 235 5.4.- Acceso annimo en Aplicaciones ............................................................................ 236
6.- Conclusiones............................................................................................................................. 237
CAPTLO 12: APLICACIONES HOSPEDADAS POR SHAREPOINT ...........239
1.- Introduccin .............................................................................................................................. 239 2.- Creacin de una Aplicacin hospedada por SharePoint ............................................... 241 3.- Conclusiones............................................................................................................................. 252
CAPTULO 13: APLICACIONES AUTOHOSPEDADAS .................................253
1.- Introduccin .............................................................................................................................. 253 2.- Arquitectura de una Aplicacin autohospedada .............................................................. 254 3.- Creacin de una Aplicacin autohospeada con Visual Studio ..................................... 255
3.1.- Archivos de manifiesto y web.config de una Aplicacin autohospedada ...... 265 3.2.- Despliegue y prueba de la Aplicacin ..................................................................... 266
4.- Depuracin remota de Aplicaciones con el Service Bus de Windows Azure ......... 268 5.- Modelo de uso y licenciamiento .......................................................................................... 270 6.- Conclusiones............................................................................................................................. 270
CAPTULO 14: APLICACIONES HOSPEDADAS POR UN PROVEEDOR...271
1.- Introduccin .............................................................................................................................. 271 2.- Arquitectura de una Aplicacin hospedada por un proveedor ................................... 272
Contenido ix
3.- Creacin de una Aplicacin hospedada por un proveedor .......................................... 273 3.1.- Aplicacin hospedada por un proveedor de Aplicaciones ASP.NET ............. 273 3.2.- Aplicacin hospedada por un proveedor de Aplicaciones PHP ...................... 279
4.- Conclusiones............................................................................................................................. 287
CAPTULO 15: INTEGRACIN DE DATOS Y LGICA DE NEGOCIO EN APLICACIONES.......................................................................................................289
1.- Introduccin .............................................................................................................................. 289 2.- Manejadores de eventos remotos ....................................................................................... 290
2.1.- Creacin de un manejador de eventos remoto .................................................. 291 3.- Tipos de contenido externo ................................................................................................. 299
3.1.- Creacin de un ECT con Visual Studio .................................................................. 300 4.- Flujos de trabajo ...................................................................................................................... 305
4.1.- Creacin de un flujo de trabajo en una Aplicacin ............................................. 305 4.2.- Despliegue y prueba del flujo de trabajo ............................................................... 310
5.- Integracin mediante el motor de bsquedas .................................................................. 312 6.- Integracin mediante servicios REST ................................................................................. 317 7.- Conclusiones............................................................................................................................. 321
CAPTULO 16: IMPLEMENTACIN DE APLICACIONES .............................323
1.- Introduccin .............................................................................................................................. 323 2.- Configuracin para utilizar el catlogo de Aplicaciones ................................................ 324
2.1.- Configuracin de DNS para Aplicaciones ............................................................. 324 2.2.- Configuracin de SharePoint para Aplicaciones .................................................. 326 2.3.- Creacin catlogo de Aplicaciones para SharePoint Online ............................ 328
3.- Instalacin y monitorizacion de una Aplicacin en SharePoint ................................... 329 3.1.- Distribucin masiva de Aplicaciones desde el catlogo ..................................... 330 3.2.- Instalacin de Aplicaciones utilizando PowerShell .............................................. 333 3.3.- Instalacin de Aplicaciones utilizando el modelo de objetos de servidor .... 334 3.4.- Instalacin de Aplicaciones utilizando el modelo de objetos en cliente ........ 334 3.5.- Actualizacin de Aplicaciones................................................................................... 335
3.5.1.- Actualizacin del paquete de soluciones WSP ............................................. 337 3.5.2.- Actualizacin del sitio Web Host .................................................................... 339
3.6.- Monitorizacin .............................................................................................................. 340 3.7.- Monitorizacin de una Aplicacin en SharePoint Online .................................. 342
4.- Instalacion de una Aplicacin para Microsoft Office ...................................................... 343 4.1.- Configuracin e instalacin de una Aplicacin en un servidor de aplicaciones IIS .................................................................................................................................. 343 4.2.- Configuracin de Microsoft Excel para usar una Aplicacin a travs de una carpeta compartida de red .................................................................................................. 346 4.3.- Configuracin de Microsoft Excel para usar una Aplicacin a travs del catlogo de SharePoint ......................................................................................................... 347
5.- Copias de seguridad y restauracin 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.
x
5.2.- Copia de seguridad para colecciones de sitios..................................................... 350 5.3.- Copia de seguridad para aplicacin web ................................................................ 350 5.4.- Copia de seguridad utilizando las herramientas de SQL Server ...................... 351
6.- Conclusiones............................................................................................................................. 352
CAPTULO 17: LA TIENDA DE OFFICE Y EL LICENCIAMIENTO DE APLICACIONES.......................................................................................................353
1.- Introduccin .............................................................................................................................. 353 2.- Ciclo de publicacin de una Aplicacin ............................................................................. 354
2.1.- Cuenta para el panel del vendedor ......................................................................... 354 2.2.- Prerrequisitos para publicar una Aplicacin en el panel del vendedor .......... 356
2.2.1.- Suscripcin de Office 365 .................................................................................. 356 2.2.2.- Informacin de la Aplicacin ............................................................................. 357
2.3.- Publicar una Aplicacin............................................................................................... 358 2.4.- Proceso de aprobacin de una Aplicacin ............................................................ 359
3.- Monetizacin de Aplicaciones .............................................................................................. 361 4.- Licenciamiento de Aplicaciones ........................................................................................... 364
4.1.- Comprobacin de la licencia en una Aplicacin .................................................. 364 4.1.1.- Validacin en una Aplicacin de Office .......................................................... 364 4.1.2.- Licencia de prueba de una Aplicacin de Office .......................................... 365 4.1.3.- Validacin de una Aplicacin de SharePoint ................................................. 365 4.1.4.- Licencia de prueba de una Aplicacin de SharePoint ................................. 367
5.- Mtricas de la Aplicacin ....................................................................................................... 368 6.- Cmo crear un Id de Aplicacin ......................................................................................... 369 7.- Conclusiones............................................................................................................................. 371
CAPTULO 18: VARIOS .........................................................................................373
1.- Introduccin .............................................................................................................................. 373 2.- Visual Studio LightSwitch para crear Aplicaciones de SharePoint .............................. 374 3.- Uso de TypeScript para crear Aplicaciones...................................................................... 379 4.- Aplicaciones para Microsoft Office PowerPoint.............................................................. 383 5.- Localizacin de Aplicaciones................................................................................................. 388
5.1.- Localizacin de Aplicaciones de SharePoint ......................................................... 388 5.2.- Localizacin de elementos de SharePoint ............................................................. 389
5.2.1.- Localizacin de cdigo de servidor ................................................................. 391 5.2.2.- Localizacin de HTML y JavaScript.................................................................. 392
5.3.- Localizacin de Aplicaciones para Office ............................................................... 393 6.- Logging de Aplicaciones ......................................................................................................... 398 7.- Aplicaciones hbridas .............................................................................................................. 400
7.1.- Creacin de una Aplicacin hbrida ........................................................................ 401 8.- Conclusiones............................................................................................................................. 406
CAPTULO 19: EL FUTURO DE LAS APLICACIONES ...................................407
1.- Introduccin .............................................................................................................................. 407 2.- Limitaciones de Aplicaciones ................................................................................................ 408
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.- Creacin de Aplicaciones con Visual Studio 2013 Preview.......................................... 414 3.1.- Creacin de Aplicaciones para SharePoint ........................................................... 414 3.2.- Publicacin de Aplicaciones para SharePoint y Office........................................ 418
4.- Conclusiones............................................................................................................................. 420
NDICE ANALTICO ...............................................................................................421
xiii
Autores
Gustavo Vlez Gustavo Vlez es Ingeniero Mecnico y Electrnico, trabaja como Group
Manager para Avanade (www.avanade.com), una firma de consultora
global y es MVP de SharePoint. Involucrado con SharePoint desde antes
de que recibiera su nombre (Site Server, en 1998) cuenta con numerosos
aos de experiencia diseando, programando e implementando sistemas de SharePoint.
Autor de siete libros sobre SharePoint y mltiples artculos publicados en revistas del
sector en espaol, ingls, holands y alemn. El autor tambin es webmaster de
www.gavd.net, el primer sitio creado en espaol dedicado exclusivamente a
SharePoint.
Juan Carlos Gonzlez 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 aos de experiencia en
tecnologas 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 ao 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 Espaa (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 artculos en castellano y en ingls sobre la plataforma.
Fabin Imaz Fabin Imaz, MVP de SharePoint Server trabaja en el mundo del desarrollo
de software desde hace ms de 10 aos, teniendo la suerte de trabajar en
distintas arquitecturas y tecnologas 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 Fabin ha trabajado en distintitas comunidades donde organiza y
promueve eventos locales para la difusin de tecnologa 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).
Alberto Diaz
Alberto Daz es Responsable de Proyectos de desarrollo en SharePoint,
.NET, aplicaciones en movilidad y todo lo relacionado con tecnologas
Microsoft en General de Software (GSC). Su labor en GSC es ofrecer
soluciones empresariales a sus clientes y brindar nuevas tecnologas que
ayuden a las empresas a realizar su trabajo ms 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 Espaa, www.suges.es) y co-director de
la revista digital de SharePoint CompartiMOSS. Microsoft MVP de SharePoint Server
desde el ao 2011 y asiduo conferenciante en webcast y conferencias de tecnologa de
habla hispana.
15
Prlogo
Sabas 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, rediseando la manera en la que realizamos nuestro trabajo cada da de
formas que an nadie siquiera se ha atrevido a soar.
Ha llegado el momento de redefinir el concepto de productividad. Se trata de mucho
ms que realizar tareas de la forma ms rpida posible. Se trata de hacer las cosas
adecuadas, hacerlas lo mejor posible y adems hacerlas disfrutando de la experiencia.
Se trata de encontrar la forma de expresar nuestra visin, compartir ideas, aprender
constantemente y sentirnos orgullosos de aquello que hacemos y de cmo lo hacemos.
Para conseguir evolucionar la forma en la que realizamos nuestro trabajo, necesitamos
herramientas cada vez ms intuitivas, que se ajusten a nuestros requisitos de movilidad
y compatibilidad a travs de dispositivos cada vez ms heterogneos, que nos ofrezcan
nuevas funcionalidades para optimizar nuestro tiempo y ayudarnos a tomar mejores
decisiones.
Queremos que t seas parte de esta transformacin. Con el nuevo Office y
SharePoint 2013 ahora podrs disear un nuevo tipo de Aplicaciones que permitirn
extender y personalizar la forma en la que creamos y consumimos informacin. Hemos
introducido un nuevo modelo de Aplicaciones en la nube que te permitir construir
Aplicaciones escalables y flexibles haciendo uso de estndares web, como HTML5 y
CSS3. Tambin hemos creado una Office Store para que puedas publicar tus
Aplicaciones y asegurarte de que llegas a los ms de mil millones de usuarios de Office
en todo el mundo.
Imagina una Aplicacin para Word que permita a un colegio gestionar fcilmente el
proceso de consecucin de permisos parentales creando un documento con firma
digital y automatizando desde el envo a los padres hasta el reporte de cules faltan por
firmar, subiendo los documentos firmados a una biblioteca de SharePoint en lugar del
incesante intercambio de papel que realizamos. Tambin seran tiles Aplicaciones que
conecten Excel con fuentes de informacin que nos permitan realizar mejores anlisis y
tomar mejores decisiones, desde informacin demogrfica hasta informacin sobre
facturacin y nmero de empleados de empresas. Conozco a mucha gente a la que le
encantara tener una Aplicacin para Outlook que facilitase la traduccin de emails en
cualquier idioma con un solo clic. O una Aplicacin para PowerPoint que fuera capaz
de encontrar citas, refranes o historias relacionadas con la presentacin en la que
estuviramos trabajando de forma que nos ayudase a preparar nuestro discurso. Las
posibilidades son infinitas. Supongo que ests preguntndote por dnde empezar. Este libro, escrito por
destacados miembros de la comunidad MVP hispanohablante, es la gua perfecta para
ayudarte a sacar el mximo partido a esta oportunidad. Desde cmo funciona el
Modelo de Aplicaciones de Office y SharePoint hasta cmo publicar tu Aplicacin en
la Office Store, pasando por las herramientas de desarrollo, tipos de Aplicaciones que
puedes desarrollar o dnde puedes hospedar tu aplicacin, encontrars todas las
respuestas entre las pginas que ahora mismo sostienes entre tus manos. Los autores de
este libro son lderes indiscutibles de la comunidad tcnica de Microsoft, profesionales
independientes que, de forma voluntaria, comparten con el mundo su pasin, habilidad
y conocimiento sobre los productos de Microsoft. Puedo asegurarte que no hay mejores
compaeros para este camino que espero que emprendas, tanto en su inicio a travs de
este libro como en el futuro a travs de la comunidad de la que pasars a formar parte.
Estamos impacientes por ver tus creaciones en la Office Store. Bienvenido!.
Ester de Nicols
Product Marketing Manager de Office y Office 365 en Microsoft Espaa
17
Presentacin
Sobre la base y experiencia de los modelos de Aplicaciones para Windows Phone
primero y Windows 8 a continuacin, Microsoft ha diseado e implementado un nuevo
marco de trabajo para la creacin, distribucin y aplicacin de personalizaciones en la
forma de Aplicaciones para dos de sus productos ms exitosos y de mayor
implantacin 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 ms
all de esta simple clasificacin 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 creacin de un documento de propuesta en Word o de un cuadro
de mando en Excel; o Aplicaciones empresariales como una gestin de contactos, de
contabilidad, un pequeo CRM fcilmente accesibles desde un Sitio SharePoint y qu
interacten con informacin almacenada en el mismo. En definitiva, su adaptabilidad y
flexibilidad, as como su evolucin futura, permitir dar respuesta a distintos escenarios
y requerimientos de negocio mediante Aplicaciones de propsito general y/o particular.
Desde el punto de vista de distribucin y uso, las Aplicaciones tanto para Office
como para SharePoint residen en un Almacn, qu puede ser pblico (gestionado por
Microsoft) y/o privado (administrado internamente por una organizacin).
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 versin de evaluacin o
bien mediante el pago de la correspondiente licencia.
Finalmente, desde el punto de vista puramente tecnolgico, el nuevo Modelo de
Aplicaciones para Office y SharePoint extiende el abanico de tecnologas 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 libreras y Frameworks
JavaScript).
A quin 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 informacin
relativa a la arquitectura, buenas prcticas de desarrollo, tipos de Aplicaciones y
posibilidades para su creacin; los desarrolladores disponen de informacin amplia y
ejemplos sobre las APIs disponibles, conceptos de seguridad y permisos, as como las
18 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.
reglas de diseo que se tienen que cumplir y seguir para crear nueva funcionalidad para
Office y SharePoint sobre todo con vistas a su aprobacin y publicacin en la Tienda
de Office; finalmente, los administradores de sistemas y usuarios avanzados pueden
encontrar informacin relativa a las posibilidades existentes para adquirir e instalar
Aplicaciones en ambos productos.
Qu temas se tratan?
Este libro est orientado hacia el diseo, programacin, despliegue y uso de
Aplicaciones para Office y SharePoint 2013, tanto en sus versiones On-Premise como
Online, asumiendo que el lector tiene conocimientos bsicos tanto de desarrollo web
(HTML y JavaScript) como .NET. Toda la informacin en el libro relativa a la creacin
de Aplicaciones para SharePoint es aplicable tanto a SharePoint 2013 On-Premise
como a la versin Online disponible en Office 365. A nivel de entorno de desarrollo,
todos los ejemplos explicados se pueden reproducir y utilizar en la ltima versin
disponible de Visual Studio (versiones Premium, Professional y Ultimate).
El primer captulo describe el nuevo Modelo de Aplicaciones para SharePoint y
Office 2013, comenzando con la motivacin del mismo y centrndose en las
caractersticas especficas a cada producto. En el caso de las Aplicaciones para
SharePoint, se presenta un ejercicio de reflexin relativo a cuando tiene sentido crear
Soluciones y cuando Aplicaciones.
El Captulo 2 describe la Arquitectura y conceptos fundamentales del nuevo
Modelo, poniendo especial nfasis en la importancia del archivo de manifiesto de una
Aplicacin.
Las herramientas necesarias para el desarrollo se introducen en el Captulo 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 Captulos estn dedicados a las Aplicaciones para Office
2013, comenzando con los tipos de Aplicaciones y APIs disponibles, para demostrar de
forma prctica como crear una Aplicacin de cada tipo: Panel de Tareas, de Contenido,
de Correo.
Los Captulos 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 autorizacin 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 Captulos 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 bsquedas y la
llamada a servicios externos en Aplicaciones se detallan en el Captulo 15.
Presentacin 19
El Captulo 16 est dedicado a las posibilidades relativas a la implementacin,
manejo y monitorizacin de Aplicaciones en el entorno de una organizacin. Se
detallan aspectos relativos a la distribucin de Aplicaciones, tanto desde la interfaz de
usuario, como de forma programtica y/o con PowerShell. Adicionalmente, se
describen cuestiones relativas a la configuracin de un entorno On-Premise para
Aplicaciones y se discuten aspectos relativos a la creacin de Copias de Seguridad y
Restauracin de Aplicaciones.
El nuevo Modelo de Aplicaciones como oportunidad de negocio se trata en el
Captulo 17 en el que se discuten cuestiones como el ciclo de publicacin de una
Aplicacin, tipos de licenciamientos disponibles, la monetizacin de Aplicaciones, o
las posibilidades que ofrece el Panel del vendedor tanto para publicar Aplicaciones,
como para obtener informacin relativa a mtricas, crear identificadores de Aplicacin,
etc.
Conceptos muy importantes en la creacin de Aplicaciones profesionales son
descritos en el Captulo 18: Logging en Aplicaciones, Localizacin, LightSwtich como
entorno para crear Aplicaciones con cero desarrollos y TypeScript como tecnologa
emergente para dotar de una mayor productividad al desarrollo.
Finalmente, el Captulo 19 est dedicado al futuro de las Aplicaciones,
identificando y detallando aquellos puntos del modelo qu Microsoft ir evolucionando
en el futuro y una introduccin a las novedades que Visual Studio 2013 Preview
incorpora para la creacin de Aplicaciones.
Herramientas y Entorno
En general, escribir un libro sobre un tema tan novedoso y en constante evolucin
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
instalacin en modo granja de la versin Ready To Manufacture (RTM) en castellano de SharePoint Server 2013 y una suscripcin de Office 365 de tipo "Office 365
Developer Pack". Para los captulos relativos a los distintos tipos de Aplicaciones para
Office, se ha utilizado la versin Professional Plus en castellano de Office 2013. La
mayor parte de los ejemplos de cdigo incluidos se han creado en la versin en
castellano de la RTM de las herramientas de desarrollo de Office para Visual Studio
Ultimate (con la ltima actualizacin aplicada). Finalmente, el resto de ejemplos de
desarrollo del libro se ha implementado mediante las herramientas NAPA, Visual
Studio LightSwitch y la versin Preview de Visual Studio 2013 liberada por Microsoft
en junio de 2013.
21
CAPTULO
Siguiendo con el modelo creado para Windows 8 y Windows Phone,
Microsoft ha concebido un marco de trabajo para la creacin, distribucin y
aplicacin de personalizaciones para Office 2013 y SharePoint 2013: Las
Aplicaciones.
1.- INTRODUCCIN
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 ms exitosos: Office y SharePoint.
El concepto de Aplicacin se ha hecho conocido primero, por la forma en la cual
telfonos inteligentes despliegan software nuevo y, luego, por la aparicin 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 Almacn,
un depsito de software centralizado, que puede ser pblico (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 recoleccin del dinero por las licencias y el pago al fabricante. Las API de
Aplicaciones para Office
y SharePoint
1
22 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.
Aplicaciones tambin 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 tcnicas, tales como
la relativa facilidad para los usuarios de "descubrir" programas desde un sitio central y
no tener que hacer bsquedas 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. Adems, en cierta forma, la monetizacin (cmo ganar
dinero) del software se simplifica para los desarrolladores. Pero, por otro lado, hay que
tener muy presentes las consecuencias:
El propietario del Almacn 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 compaas 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 Aplicacin est en el
Almacn por razones no tcnicas. Hasta el momento de publicacin 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 haban sido oficialmente creadas por esa compaa.
Aunque el propietario de la Tienda asegura que controla la calidad de las Aplicaciones antes de hacerlas disponibles pblicamente, el proceso de cmo es
el control y qu es lo que se controla no es, en absoluto, transparente. Esto
significa que el propietario puede rechazar una Aplicacin por cualquier
motivo, y el programador no tiene ninguna forma de obligarlo a publicarla.
Tcnicamente hablando, el nuevo modelo de Aplicaciones tambin supone un
cambio en la forma de programacin. Mientras en Aplicaciones "tradicionales" el
diseador y programador deciden qu tipo de tecnologa se debe aplicar (Escritorio,
Web), para Aplicaciones de Office y SharePoint la gama de tcnicas que se puede
utilizar es ms 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 ms 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 propsitos especficos, 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 ningn tipo de instalacin local. En el momento de publicacin de este libro ya ha
aparecido la primera versin beta de Visual Studio 2013, que incluye algunas mejoras
con respecto a la programacin de Aplicaciones, como se explica en el ltimo captulo.
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 versin
Office 97, aunque ha cambiado mltiples veces de tecnologa bsica. Los "Plugins" y
"Addins" para Office han estado basados tcnicamente en DLLs estndar 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 versin 2013 de Office las tecnologas a utilizar son
HTML 5, XML, CSS 3 y JavaScript.
Mientras que los modelos de extensibilidad existentes hasta Office 2013 estaban
diseados 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 accin, y en donde las Aplicaciones mismas forman
parte del contenido. Al contrario que los Addins tradicionales de Office, las
Aplicaciones de la versin 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 contina soportando los modelos de
programacin utilizados anteriormente basados en VBA, COM y VSTO. Los Addins
creados para versiones anteriores de Office tambin continan funcionando en Office
2013, aunque Microsoft no ha liberado informacin sobre el soporte de ellos en futuras
versiones.
De forma simplificada, una Aplicacin para Office 2013 es una pgina Web alojada
en una Aplicacin cliente de Office (Word, Excel, PowerPoint, Outlook). Los usuarios
pueden modificar o ampliar la forma en que un documento, e-mail, hoja de clculo,
etc., funciona por medio de las Aplicaciones, y ellas pueden ejecutarse en mltiples
sistemas y por mltiples tipos de clientes, como por ejemplo programas de Office,
navegadores para telfonos, 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 Aplicacin
puede funcionar sin problemas en Word y en Excel, por ejemplo, sin necesidad de
modificar el cdigo fuente. Adems, 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
Tambin nuevo en SharePoint 2013 es el modelo de Aplicaciones para extender su
funcionalidad. Aunque tcnicamente ms 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.
Utilizacin de estndares Web para la programacin: HTML 5, JavaScript, REST, OAuth y OData. De esta forma las Aplicaciones no solo utilizan las
posibilidades de programacin ms usadas mundialmente, sino tambin permiten la integracin con tecnologas diversas y no solamente de Microsoft.
Software independiente de la implementacin. El Modelo de Objetos de Cliente substituye cada vez ms el Modelo de Objetos de Servidor en SharePoint. La
extensibilidad ocurre ms y ms utilizando el API del Modelo de Objetos de
Cliente y REST y menos y menos instalando el software directamente en los
servidores.
Simplificacin de instalacin. Aunque la instalacin de nueva funcionalidad comenz a simplificarse en SharePoint 2010 con las soluciones Sandbox,
utilizando el nuevo modelo de Aplicaciones se va un paso ms 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 ms 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 instalacin es muy similar al de
SharePoint (y al de Windows 8) para los usuarios, logrando que cuando
aprenden cmo hacerlo para un sistema, puedan hacerlo en todos los dems.
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 teora) 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 teora) 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 tambin cmo se le ha podido
agregar funcionalidad adicional a la que no dispone por defecto. En la versin 2003
esta ltima extensibilidad se realizaba construyendo ensamblados manejados por .NET
Framework que se instalaban directamente (y manualmente) en los servidores. Con la
aparicin de las "Soluciones de SharePoint" en la versin 2007, los desarrolladores y
administradores contaban con un mecanismo de instalacin mucho ms confiable y que
se poda automatizar fcilmente, pero el software continuaba siendo full trusted, es decir, el software agregado segua ejecutndose en el contexto fsico de la granja de
SharePoint, por lo que no haba 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 separacin 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 separacin no es total. El Sandbox de SharePoint
2010 contina 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 programacin "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 versin 2013 dispone de una versin mejorada y
ampliada del Modelo de Objetos de Cliente, en especial con la posibilidad para acceder
al sistema utilizando REST, un estndar internacional y abierto que ofrece la capacidad
para crear software para SharePoint utilizando cualquier tipo de tecnologa, aunque no
sea especfica de Microsoft.
3.1.- Aplicaciones o soluciones?
SharePoint 2013 (On-Premise y Online) se puede personalizar y extender mediante
desarrollo utilizando dos tcnicas 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
administracin de SharePoint.
Figura 1.- Opciones de personalizacin de SharePoint.
Como se muestra en la Figura 1, el cdigo de una Solucin de SharePoint se ejecuta
siempre en su ambiente de ejecucin lo que puede implicar un impacto negativo en el
entorno del Portal, en el caso en el que la Solucin introduzca penalizaciones en el
26 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.
rendimiento o malas prcticas que puedan afectar su ejecucin normal. En cambio, el
cdigo de una Aplicacin de SharePoint siempre se ejecuta de forma aislada respecto al
ambiente de SharePoint, bien porque la lgica 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 decisin
La decisin sobre si crear Aplicaciones o Soluciones viene determinada por dos
factores principales. El primero tiene que ver con las capacidades y posibilidades
especficas de cada tipo de personalizacin. El segundo, con el escenario de negocio al
que se trata de dar respuesta. Algunos aspectos que se pueden tener en cuenta en la
decisin 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
prcticamente sin restricciones a contenidos y la administracin de SharePoint.
El principal inconveniente del uso del API de servidor viene dado por su
ejecucin en el mismo contexto de SharePoint. Por ello hay que asegurarse de
seguir buenas prcticas de programacin 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 cdigo 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
Aplicacin que lo utiliza, pero no al ambiente de SharePoint. Evidentemente, si
el cdigo de la Aplicacin contiene errores de programacin, como por ejemplo
el uso de un bucle infinito, puede afectar tambin al rendimiento del servidor.
Ambiente de ejecucin. Dependiendo de si la lgica 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 ms especficos, en SharePoint Online se
recomienda la creacin de Aplicaciones frente a Soluciones Sandbox. En SharePoint On-Premise, ambas opciones son posibles.
Despliegue. La personalizacin de SharePoint mediante Soluciones requiere, adems del proceso de diseo y desarrollo, definir una planificacin para su
despliegue en el momento adecuado para tener un impacto mnimo 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 diseo. Por un lado, las Soluciones restringen los patrones de diseo que se pueden utilizar a formularios Web. Por otro, las Aplicaciones
estn ms preparadas para el uso de patrones de diseos 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 especficos del
API de SharePoint. Adicionalmente, es necesario tener un dominio y
conocimiento mnimo de buenas prcticas de desarrollo en el uso del SSOM
que aseguren que el cdigo 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 liberacin de memoria descritas
en la documentacin disponible en MSDN y en el API mismo. Frente a las
restricciones propias de las Soluciones, el modelo de Aplicaciones ampla
notablemente las posibilidades a nivel de tecnologas y APIs que se pueden
utilizar, de manera que no slo desarrolladores de SharePoint pueden crear
Aplicaciones, sino en general desarrolladores de Aplicaciones Web sobre plataformas y tecnologas diversas.
Como desventaja en relacin con los conocimientos necesarios, los
desarrolladores de Soluciones tienen que adquirir nuevas destrezas para poder
crear Aplicaciones: HTML 5, JavaScript, OAuth, OData, etc.
Diseo. En los ltimos aos SharePoint se ha convertido en una plataforma empresarial utilizada de forma extensa por muchas organizaciones las cuales,
en lo referente a diseo, han aadido 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 organizacin. En cambio, aunque
tcnicamente es posible, las Aplicaciones no estn pensadas por el momento
para aplicar personalizaciones de diseo en todos los sitios y colecciones de
sitios de una organizacin. Por otro lado, el nuevo modelo de Aplicaciones
incorpora mecanismos propios, como se ver en el captulo correspondiente, para aadir personalizaciones de aspecto en su mbito.
Integracin de datos de negocio. Las Aplicaciones ofrecen un mecanismo de integracin 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 estn 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
informacin empresariales.
28 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.
Escenarios. Aunque no existe una recomendacin o gua oficial de cundo crear Soluciones y cundo crear Aplicaciones, s es cierto que los
requerimientos de negocio a satisfacer decantarn la balanza en uno u otro
sentido. Por ejemplo, si se necesita desplegar elementos de diseo que apliquen
en toda la granja lo ms adecuado es hacerlo en la forma de una Solucin. En
cambio, si se necesita disponer de una forma especfica para realizar una
gestin de contactos, la creacin de la correspondiente Aplicacin puede ser
una opcin ms interesante.
Disponibilidad y despliegue. El nuevo modelo de Aplicaciones facilita el uso de las mismas a travs del despliegue a un Catlogo de Aplicaciones
corporativo o a la Tienda de Microsoft. En el primer caso, las Aplicaciones
estn disponibles para ser instaladas en todas las colecciones de sitios y sitios
de un tenant (Office 365) o de una Aplicacin Web (On-Premise). En el segundo, las Aplicaciones adems de ser aprobadas y certificadas por
Microsoft, se pueden utilizar en cualquier coleccin de sitios y sitios de un
tenant de SharePoint Online o de una granja On-Premise. En cambio, las
Soluciones nicamente estn 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 solucin Sandbox se tiene que cargar y
activar en la galera de soluciones de cada coleccin de sitios donde se vaya a
utilizar. Una solucin 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 tambin 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 telfonos 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 fcil y unificada y para que los desarrolladores puedan ofrecer y
monetizar (si se desea) sus creaciones desde un punto centralizado.
Tcnicamente 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 ejecucin, ni que representen un peligro para los servidores.
Las Aplicaciones utilizan todas las tcnicas modernas de sistemas Web y pueden ser desarrolladas con las herramientas que Microsoft ofrece.
29
CAPTULO
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.- INTRODUCCIN
Hablando de una forma muy general, el mundo del software se est moviendo
rpidamente 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 informacin.
Microsoft sigue esta tendencia, y desde el ao 2008, cuando lanz la primera versin
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, adems 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 compaa que
ofrece servicios y dispositivos.
Por el momento, y como no solo es muy difcil tcnicamente mover todo el
software de Microsoft hacia la nube, sino que tambin es necesario un cambio de
comportamiento de los usuarios para que acepten y utilicen las nuevas tecnologas, se
est pasando por una etapa hibrida, en la que existen tanto versiones en la nube como
On-Premise: el caso tpico es SharePoint, con sus versiones de servidor y online como
parte de Office 365.
Arquitectura de
Aplicaciones
2
30 Todo sobre Aplicaciones para SharePoint, Office y Office 365: Apps para la Office Store.
Como consecuencia de este movimiento, es necesario cambiar tambin 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 diseado originalmente para telfonos
mviles.
Debido a que no es tcnicamente 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 tecnologas que funcionen en clientes menos "inteligentes", tales
como navegadores Web.
Esto significa un cambio en muchos aspectos tcnicos: la arquitectura de los
sistemas cambia radicalmente, la autorizacin y autenticacin son muy diferentes, las
herramientas para desarrollo son tambin 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 caractersticas en comn en su
arquitectura, como, por ejemplo, el hecho de que consisten fsicamente de, al menos,
un archivo de instalacin y un archivo de Manifiesto.
1.1.- El archivo .app
El archivo de instalacin de Aplicaciones tanto para Office como para SharePoint tiene
la extensin ".app". Es un paquete unificado para todo tipo de software que se deba
desplegar en diferentes tecnologas 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 especfico o en una combinacin de ellos. Por
ejemplo, un archivo ".app" puede contener un archivo ".wsp" para instalar alguna
personalizacin de SharePoint junto con un archivo ".dacpac" para crear una Base de
Datos en SQL Azure. Todos los paquetes de instalacin ".app" tienen que tener
obligatoriamente un archivo de Manifiesto tal y como se describe en la siguiente
seccin. El archivo ".app" para una Aplicacin de Office es generalmente ms sencillo
y contiene bsicamente los archivos HTML necesarios y el Manifiesto, que siempre es
obligatorio.
Es importante destacar que aunque la misma extensin se utiliza para otras
plataformas tecnolgicas 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
tecnologas de Microsoft.
Un archivo ".app" no es ms que un archivo comprimido ".zip". Es posible cambiar
la extensin a un paquete de instalacin 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 estndar pblico ratificado por ISO (International Organization for Standardization) y ECMA
(European Computer Manufacturers Association). Combina las ventajas de mantener los archivos necesarios independientemente, pero comprimindolos en un solo fichero,
resultando en paquetes que normalmente son ms pequeos que el uso de archivos
XML complejos. Este es el mismo estndar utilizado por software tan diverso como
todos los programas de Office, Hyper-V, Autodesk y programas de otras compaas. 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 tpico de un archivo ".app" para una Aplicacin Hospedada por
SharePoint.
Figura 2.- Contenido del archivo ".app" de una Aplicacin Hospedada por SharePoint.
_rels es el directorio raz 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 jerarqua 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 tambin 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 generacin del archivo ".app", pues Visual
Studio lo crea automticamente (funcin "Publicar" desde el men contextual del
proyecto en el "Explorador de soluciones", adems de cuando se depura la solucin).
Para Aplicaciones de SharePoint Hospedadas por el Proveedor, el desarrollador se debe
encargar de crear todos los paquetes de instalacin necesarios si no se estn utilizando
tecnologas de Microsoft y/o Visual Studio.
1.2.- El archivo de manifiesto
Aunque el archivo ".app" para Office y/o SharePoint puede contener mltiples 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
ttulo y los permisos para ejecutar la Aplicacin. Note que adems del Manifiesto para
la Aplicacin (el archivo AppManifest.xml), cada componente dentro de la Aplicacin
puede tener su propio Manifiesto: por ejemplo, si la Aplicacin es para SharePoint, el
archivo de instalacin de SharePoint ".wsp" tiene tambin su propio Manifiesto.
En el Manifiesto de la Aplicacin se especifican elementos como (aunque no todos
son obligatorios):
El nombre interno, identificador del producto y versin de la Aplicacin.
La URL de la pgina inicial, es decir, la pgina que abre cuando se inicia la Aplicacin. La URL puede contener parmetros en la Cadena de Consulta
(QueryString), que deben ser codificados utilizando "&" en lugar de "&".
o Propiedades de la Aplicacin como su ttulo, localizaciones, las URLs de servicios a manejar despus de la instalacin, eventos
que pueden ocurrir antes de la instalacin y (para SharePoint), la plantilla a utilizar cuando se crea la Aplicacin.
o Permisos requeridos en Aplicaciones de SharePoint.
o Identificacin para autenticacin y autorizacin del actor principal, excepto para Aplicaciones Hospedadas por SharePoint.
o Una lista de prerrequisitos, si es que son necesarios, para que la Aplicacin se pueda instalar (por ejemplo, Caractersticas para Aplicaciones de SharePoint).
Arquitectura de Aplicaciones 33
La Figura 3 muestra el contenido del archivo inicial AppManifest.xml de una
Aplicacin 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 descripcin completa del esquema de Manifiesto, con todos los
parmetros 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 Aplicacin Hospedada por SharePoint.
El elemento "StartPage" para Manifiestos de Aplicaciones de SharePoint puede
contener uno o ms tokens que se reemplazan dinmicamente en tiempo de ejecucin y que representan informacin 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 carcter "~" y los que se pueden usar en el QueryString,
que estn encerrados entre llaves "{ }". Las dos tablas siguientes describen los tokens disponibles y en qu tipo de Aplicaciones: inmersiva o de pgina completa (I), accin
personalizada (AC) y App Part o Aplicaciones de Partes (AP).
Tabla 1.- Tokens de URL para el Manifiesto de Aplicaciones de SharePoint.
Token Descripcin I AC AP
~appWebUrl La URL del sitio Web. X X X
~hostUrl Direccin del sitio Web host. X
~remoteAppUrl Direccin de un sitio Web remoto usado. X X X
~site URL del sitio Web actual. X
~siteCollection Direccin de la Coleccin de Sitios padre. 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 Descripcin I AC AP
{AppWebUrl} La URL del sitio Web. X X X
{ClientTag} Nmero de control de cacheo. X X X
{HostLogoUrl} URL del logo del sitio Web host. X X X
{HostTitle} Ttulo
Recommended