48
Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración Juan Carlos González MVP SharePoint Server http://geeks.ms/blogs/ci in jgonzalez@gruposodercan. es @jcgm1978 Gustavo Velez MVP SharePoint Server http:// www.gavd.net [email protected]

Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Embed Size (px)

DESCRIPTION

Presentación del WebCast Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Citation preview

Page 1: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Aplicaciones Autohosted de SharePoint: combinando Azure y

Colaboración

Juan Carlos GonzálezMVP SharePoint Serverhttp://geeks.ms/blogs/[email protected]@jcgm1978

Gustavo VelezMVP SharePoint Serverhttp://www.gavd.net [email protected]

Page 2: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Madrid, 10th

October 2013

Workshops & sesiones organizadas en tracks paralelos: IT PRO, Negocio (BIZ) y Desarrollo(DEV)

+ Información: www.iberiansharepointconfe

rence.com

@IberianSPConf [email protected]

Page 3: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Madrid, Barcelona y Valencia26 y 27 de abril

Hackathon

+ Información en

www.suges.es

Page 4: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Agenda

Introducción

Arquitectura

Programación

Tipos de aplicaciones

Page 5: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Introducción

Page 6: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Evolución del desarrollo en SharePoint

2007

SharePoint

IIS

El código de la GAC se ejecuta en el mismo

proceso (w3wp.ex) que la Aplicación Web

2010

SharePoint

IIS Sandbox

El código se ejecuta en un proceso especial (SPUCWorkerProcess.e

xe) o bien llama a client.svc (CSOM)

2013

SharePoint

IIS with _api App

El código se ejecuta fuera de SharePoint y aprovecha las

capacidades expuestas en _api

Page 7: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Repaso a Tipos de Hosting

App Web (de WSP)

Sitio Padre

SharePoint-hosted AppProvisiona un subsitio aislado bajo un sitio padreReutiliza elementos web(lists, files, out-of-box web parts)• No se permite código en el

lado del servidor; usar JavaScript

Autohosted App (SPO)Windows Azure + SQL Azure provisionadas de forma “invisible” mientras la app se instala

Azure (desde

WebDeploy,

DacPac)

SitioSharePoi

nt

Suscribirse a eventos remotos de SP

Usar CSOM/REST + OAuth para operar con SharePoint

Cloud-based Apps

Provider-Hosted App“Necesitas tu propia infraestructura de hosting”Los desarrolladores tienen que aislar los tenants

SitioSharePoi

nt

Tú Sitio de

Hosting

Page 8: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Capacidades disponibles

Características• Hosting IIS Compartido• BDs Azure SQL• Ciclo de vida de

aplicaciones transaccional• Escalabilidad

Service Level Agreement (SLA)• Almacenamiento

redundante• Recuperación de Desastres• Soporte a cliente

compartido para problemas de Aplicaciones

Modo de pago• En estudio

¡Windows Azure Rules !

Page 9: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Aplicaciones SharePoint-Hosted vs Cloud-Hosted

SharePoint Hosted Cloud HostedApp Scope SharePoint Site Site or TenancyArchitecture Web Site Multi-Tenant AppDeveloper Skillset SharePoint + HTML/JS Full StackUI Technologies SharePoint + HTML/JS Any Web StackServer Code None AnyStorage Lists and Doc Libs AnyKey Limitations No Server Code Hosting Expertise

Required

Page 10: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Repaso a Windows Azure: IaaS + PaaS + SaaS

Page 11: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Repaso a Windows Azure: Flexibilidad

Page 12: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Repaso a Windows Azure: Servicios

http://www.windowsazure.com/en-us/documentation/?fb=es-es

Page 13: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Creación de Aplicaciones con Visual

Studio 2012

Page 14: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Explicación de la demo (Debugging)

Servidor Desarrollo Azure

Webs

SQL

Otros

Office 365

SharePoint Word

Excel

OtrosSolución:- Proyecto de SharePoint- Proyecto Web aspx

Page 15: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Servidor Desarrollo

Explicación de la demo (Publicación)

Azure

Webs

SQL

Otros

Office 365

SharePoint Word

Excel

OtrosProyecto de SharePoint+ Proyecto Web aspx= archivo .app

Page 16: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Arquitectura

Page 17: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Arquitectura

Web Server H

ost

SharePoint

Lógica en el lado del ServidorLenguaje .NET

3rd P

arty

Ser

vice

s

CSOM REST

On-premises

Online

SharePoint

Workflows

Autohosted

SQL AzureSitio Web ASP.NET

Server APIs

Servicios WCF (Manejadores)

Otros Elementos Listas

Page 18: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Arquitectura

Los componentes externos de la aplicación: Se instalan de forma automática cuando la App se

instala:

No es necesario crear lógica de instalación

Se despliegan en Azure: Azure Web Sites & SQL Azure

Cada instancia de la App está aislada de otras instancias

A nivel de tecnologías: Sitios web y aplicaciones web ASP.NET

Componente de BD: sólo SQL Azure

Page 19: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Arquitectura

Los tenants de SharePoint Online tiene asociado: Windows Azure Web Sites

Una cuenta oculta de SQL Azure

No es necesario registrar la aplicación con un STS (Secure Store Server) qué cumpla OAuth: Lo hace automáticamente SharePoint Online por el

desarrollador

Se utiliza ACS

Page 20: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Ciclo de Vida de una App

App Developer Tenant Admin

Site Owner

Site Owner

Site Owner

Site OwnerApp

Catalog

SharePoint Store

(Office Marketplace)

Tenant A

Tenant B

.app .app

.ap

p

Web Site SQL DB

Workflow

Web Site SQL DB

Workflow

Web Site SQL DB

Workflow

Web Site SQL DB

Workflow

Page 21: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Proceso de desarrollo y despliegue

1. El desarrollador crea un paquete de aplicación de SharePoint (*.APP)

2. Se despliega la aplicación a SharePoint Online:– (vía Marketplace)– (vía Catálogo de Aplicaciones)

3. SharePoint Online instala la aplicación

4. SharePoint provisiona componentes de Windows Azure

5. SharePoint provisiona las BD de SQL Azure, ejecuta los scripts para crear los esquemas y los datos de partida necesarios

Page 22: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Ejecución de una aplicación (perspectiva usuario)

1. El usuario hace clic en la App (AP); SharePoint carga la página de la aplicación (B)

2. El área de contenidos (B) carga la página de Windows Azure

3. La aplicación en Azure ejecuta la aplicación web

4. La aplicación de Azure puede interactuar con SharePoint a través del CSOM o bien la API REST

5. La aplicación de Azure puede utilizar BDs SQL Azure

6. La aplicación de Azure puede interactuar con servicios externis u otros recursos disponibles en la red (C)

7. La aplicación de Azure puede interactuar con el sitio que hospeda la aplicación

Page 23: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Opciones de Almacenamiento

Listas de SharePoint:

Requieren el uso de CAML para interactuar

Se puede necesitar un sitio (SPWeb) para la App

SQL Azure:

Empaquetar junto con la App el paquete SQL (.dacpac) o bien referenciar un proyecto de BD

Los componentes de SQL Azure se provisionan de forma transparente (e invisible) cuando la aplicación se instala

La conexión a la BD se realiza a través de APIS especificas (clase SqlConnection)

Otras: ¡Cuidado con la latencia!

Page 24: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Permisos de aplicaciones

Page 25: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Permisos de aplicaciones

Se configuran en el manifiesto de la aplicación Los desarrolladores pueden especificar los permisos que la

aplicación necesita para ejecutarse

Son solicitados durante la instalación de la aplicación: Conceder permisos es una operación de “todo” o “nada”: No

es posible elegir que permisos conceder para una petición

El usuario que ejecuta la aplicación es quien los concede: Sólo se pueden conceder aquellos permisos que se tienen

ACS (Azure Access Control Service) juega el rol de servidor de autorización: Almacena la información básica sobre la App y proporciona

tokens de acceso a las aplicaciones para llamar a las APIs de SharePoint

Page 26: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Modelo de uso y licenciamiento

Cuenta de Azure propiedad de Microsoft: Todas las aplicaciones Autohosted se provisionan en una

cuenta propiedad de Microsoft a la qué solo Microsoft tiene acceso (de momento)

El licenciamiento es a través del Tenant de Office 365: Se supone que los costes de hosting en Azure serán

pasados a través del Tenant de Office 365, el desarrollador no tiene que pagar nada

Catálogo de aplicaciones: Para personalizaciones específicas a una organización

Office Store: Aplicaciones Autohosted no soportadas por el momento

Page 27: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Programación

Page 28: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Tecnologías

Código .NET en todo caso

Para qué las aplicaciones interactúen con SharePoint (acceso a datos, crear listas, editar permisos, etc): CSOM + API REST

Para establecer que qué puede hacer la aplicación: Conceder los permisos adecuados

Uso del modelo de autorización de OAuth

Page 29: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Herramientas

Visual Studio 2012 (Con las tools instaladas)

Visual Studio LightSwitch

Microsoft Access 2013

…y NAPA (de momento para SharePoint-Hosted)

Page 30: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Proceso de desarrollo típico

Crear proyecto(s) de Windows Azure: Sitios Web de Windows Azure

Aplicaciones Web ASP.NET MVC

Craer BDs de SQL Azure

Crear una aplicación de SharePoint usando la plantilla de Visual Studio

Actualizar el manifiesto de la aplicación: Metadatos

Página principal

Page 31: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Chrome Control, dar estilo a una Aplicación

Permite utilizar el estilo del sitio host en la aplicación: Una librería JavaScript en la App devuelve la hoja de estilos

de SharePoint para aplicaciones

El handler http://<sharepointsite>/_layouts/15/defaultcss.ashx es quien devuelve esa hoja de estilos:

La hoja de estilos es corev15app.css

La hoja de estilos se aplica a las páginas de la aplicación

También permite añadir nodos de navegación personalizados: Enlaces a otras páginas

Enlaces a archivos de ayuda

Page 32: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Chrome Control, dar estilo a una Aplicación

Page 33: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Creación de Aplicaciones

con LightSwitch 2012

Page 34: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Explicación de la demo (Debugging)

Servidor Desarrollo Azure

Webs

SQL

Otros

Office 365

SharePoint Word

Excel

OtrosSolución:- Proyecto de SharePoint- Proyecto Web JS- Proyecto Base de Datos

Page 35: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Servidor Desarrollo

Explicación de la demo (Publicación)

Azure

Webs

SQL

Otros

Office 365

SharePoint Word

Excel

OtrosProyecto de SharePoint+ Proyecto Web JS+ Proyecto Base de Datos= archivo .app

Page 36: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Crear una App Autohosted implica

SharePoint Package• Use Visual Studio SharePoint App

Project• Focus on app entry points:

• Custom Actions• Client Web Parts

• Carefully consider AppWeb context:• No app webs for tenant scoped

apps• Debug/test locally or on developer

site

Web App & Database• Add Web app to solution:

• Azure Web site support• Add SQL Azure database:

• *.DACPAC required to create the SQL Azure DB

• Provide data script to seed data• Debug locally

Page 37: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Despliegue de una aplicación Autohosted

SharePoint Package

• OAuth config & SQL Azure connection string auto-generated

• Use ~remoteAppUrl token for references to web app URL

• Publish app package to:• Marketplace • Corporate Catalog

Web App & Database

• Packaged in SharePoint package• Auto-provisioned & deployed to

Windows Azure

Page 38: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Despliegue y depuración

Para testear, en la medida de lo posible, se recomienda desplegar el proyecto de Windows Azure directamente: Permite la depuración directa de proyectos web

Si se interactúa con SharePoint, esta opción no es viable

Cuando se ha acabado de depurar, empaquetar la aplicación completa y desplegar a SharePoint Online: SharePoint Online se encarga de provisionar todos los

componentes cuando se instala la aplicación

Page 39: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Depuración

Mediante Windows Azure Service Bus y configurarlo en las propiedades del proyecto de la aplicación

Page 40: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Tipos de Aplicaciones

Page 41: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Experiecias disponibles

Página completa (Inmersivas): Planificación/Programación de eventos

Elementos de aplicación (App Parts): Widget: Información del tiempo, de la bolsa, …

Acciones personalizadas Navegaciones, acciones a nivel de elemento, …

Page 42: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Otros IDE/ Depuración de

Apps

Page 43: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Referencias Creación de aplicaciones Autohosted:

http://msdn.microsoft.com/en-us/library/fp179885.aspx

Ejemplo de aplicación Autohosted: http://msdn.microsoft.com/en-us/library/fp179902.aspx

Uso del Chrome Control: http://geeks.ms/blogs/santypr/archive/2013/02/08/chrome-de-sharepoint

-en-una-sharepoint-app.aspx

http://msdn.microsoft.com/en-us/library/fp179916.aspx

http://msdn.microsoft.com/en-us/library/jj220046.aspx#UXGuide_Styling

Depuración de aplicaciones Autohosted: http://

geeks.ms/blogs/ciin/archive/2013/04/16/sharepoint-2013-como-depurar-una-aplicaci-243-n-de-tipo-autohosted.aspx

Page 44: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Descuentos Campus MVP

10% de descuentoen todos nuestros cursos y libros hasta el 31 de diciembre

Introduce el cupón PECIIN12SN al realizar tu compraen nuestra tienda online.

Page 45: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Prueba SharePoint a tope CloudShare:

http://www.cloudshare.com/

Disponen de varias plantillas de SharePoint 2013 listas para probar

Page 46: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

Nos vemos en los foros Foro de desarrollo:

http://social.msdn.microsoft.com/Forums/es-es/mossdeves/threads

Foro de IT http://social.technet.microsoft.com/Forums/es-ES/mosses/threads

Foro de Office 365: http://community.office365.com/es-es/default.aspx

Page 47: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración
Page 48: Aplicaciones Autohosted de SharePoint: combinando Azure y Colaboración

GRACIAS POR SU ATENCIÓN