Upload
adrian-diaz-cervera
View
249
Download
5
Embed Size (px)
DESCRIPTION
Slides del IT camps de la Comunidad de Office 365 sobe el desarrollo de Apps para la Office Store, sus ventajas e inconvenites sobre la versión on premise. Los tipos de Apps que existen y como podemos sacarle partid
Citation preview
Serv
er
Virtu
aliz
atio
n
http://geeks.ms/blogs/adiazmartin
Alb
ert
o D
íaz
Serv
er
Virtu
aliz
atio
n
http://geeks.ms/blogs/jcgonzalez
J.C. G
onza
lez
Serv
er
Virtu
aliz
atio
n
http://blogs.encamina.com/desarrollandosobresharepoint
http://geeks.ms/blogs/adiazcervera
Adrián D
íaz
Serv
er
Virtu
aliz
atio
n
http://geeks.ms/blogs/santypr/
Santia
go P
orr
as
Introducción al Modelo de Aplicaciones
SitesSitio
s
Temas
PersonasApps
Utilizan OAuth
para
autenticación
Están enfocadas
a solucionar un
problema
puntual
También es posible crear Sistemas “híbridos”...
Alojado por
Proveedor
Alojado por
SharePoint
Any
SP
http://tenant-AppId.dominio.com/NombreApp/...?Parametros
Configuración del DNS
Configuración en SharePoint
Creación del Catalogo de
Aplicaciones
Sitio de Desarrollador
Configuración de
Aplicaciones
Monitoreo de Aplicaciones (solo
en SharePoint Server)
Aplicaciones residen en una Lista en el Sitio de Catalogo
de Apps
Usuarios pueden
solicitar
Aplicaciones
Atención: Use diferentes usuarios en Sistema de
Desarrollo
• Plantilla en Visual Studio 2012/2013
• Paquete de instalación “.app” (.zip con .wsp dentro)
• “Sitio de Desarrollador” para testeo
• Modelo de Objetos de Cliente y REST (+ OData + Oauth)
• Inversión en el futuro: JavaScript, JQuery, JSON, OData, OAuth
• Unificación de conceptos: todo es Apps en SharePoint (incluyendo
Listas, Bibliotecas, Tipos de Contenido, etc.)
• Cualquier desarrollador que pueda usar JScript se convierte en un
desarrollador de SharePoint
• Código no es desplegado al lado de los servidores (ventaja?... Mas que una
ventaja, una obligación debido a 365)
• Aislamiento (ventaja?)
• CSOM y REST usan un sub-set del API de SharePoint
• Herramientas de desarrollo de JScript y REST todavía no suficientemente maduras
(TypeScript?)
• Apps no se pueden instanciar en una plantilla
• Apps no se pueden comunicar entre ellas (“Conectadas”)
• Código JScript ejecuta en cliente disponible localmente Ofuscación
• Problemas con Backups/Restore
• Apps tienen que ser instaladas en el Catalogo por un administrador (no como Site Coll
Admin para SandBox)
• Apps no ejecutan en un SandBox...
• Apps en el MS Almacén son controladas, pero que tan bien?
• Migración?
• Soporte futuro? (Sandbox fatalidad...)
BIPOS 365 V1
2013
20xx
365 V2 365 Vxx
SSOM (Local)
Server Side Object Model
CSOM (Nube)
Client Side Object Model
Visual Studio 2012/2013, que es nuevo, que es diferente
Plantilla
Aplicación para
SharePoint 2013
Manejo
Lenguaje
Dinámico
Mismos Servicios
Versión
OnPremise
WYSIWYG
Colección de Sitios, Webs, Listas, Elementos de Lista,
Vistas, Schemas de listas, Campos y Carpetas
A que puedo Acceder con CSOM
Web Parts, Seguridad, Tipos de Contenidos, Plantillas de
Sitios
Perfiles de usuario, Suministro de Noticias, Búsqueda,
Taxonomía, Publicación
Flujos de Trabajo, E-Discovery, IRM, BCS
Llamadas de domino cruzado
Context.Web.Lists
CSOM
Context.Web.Lists[guid]
Web.Lists.GetByTitle ("Title")
Context.Web.Lists[guid].Fields
Context.web.SiteUsers
/_api/web/lists
REST
/_api/web/lists(‘guid’)
/_api/web/lists/getbytitle(‘Title’)
/_api/web/lists/getbytitle(‘Title’)/Field
/_api/web/siteusers
2007
El código de la GAC se ejecuta en el mismo
proceso (w3wp.ex) que la Aplicación Web
2010
El código se ejecuta en un proceso especial
(SPUCWorkerProcess.exe) o bien llama a client.svc (CSOM)
2013
El código se ejecuta fuerade SharePoint y aprovechalas capacidades expuestas
en _api
App Web
(de WSP)
Sitio
Padre
SharePoint-hosted AppProvisiona un subsitio aislado bajo un
sitio padre
Reutiliza elementos web
(lists, files, out-of-box web parts)
• No se permite código en el lado
del servidor; usar JavaScript
Autohosted App (Azure)Windows Azure + SQL Azure
provisionadas de forma “invisible”
mientras la app se instala
Azure
(desde
WebDeploy
, DacPac)
Sitio
SharePoint
Suscribirse a eventos
remotos de SP
Usar CSOM/REST +
OAuth para operar
con SharePoint
Cloud-based Apps
Provider-Hosted App“Necesitas su propia infraestructura de
hosting”
Los desarrolladores tienen que aislar
los tenants
Sitio
SharePoint Su Sitio de
Hosting
SharePoint Hosted Cloud Hosted
App Scope SharePoint Site Site o Tenancy
Arquitectura Web Site Multi-Tenant App
Skillset Desarrollador SharePoint + HTML/JS Cualquiera
Tecnologias de UI SharePoint + HTML/JS Cualquiera (Web)
Codigo de Servidor No Cualquiera
Storage Listas y Libreriarias de Doc
Cualquiera
Limitaciones No Server Code Experiencia de hosting Requerida
• Son clases, definidas en servicios de Windows Communication Foundation (WCF)
• Permiten a las Aplicaciones responder a eventos que tienen lugar en elementos de
SharePoint (Listas, Elementos de Listas)
• Aplicaciones (en equipos remotos) pueden responder a eventos en la granja de SharePoint
localmente
• También responden a eventos en listas especiales (Listas Externas)
• Manejadores de Eventos Remotos permiten detectar:
• La adición o borrado de un campo de una Lista
• La adición o borrado de un elemento de Lista o de un adjunto de un elemento de
Lista
• Agregar o eliminar un sitio en una colección de sitios
• Use la Plantilla de Aplicaciones de SharePoint en Visual Studio 2012
• Cree la(s) Lista(s) necesarias
• Agregue un elemento de tipo "Receptor de eventos remotos“
• Configure el Evento a capturar
• VS añade carpeta "Services“ al proyecto Web con:
• Un servicio WCF que implementa la lógica del Manejador de
Eventos
• Modulo para código del servicio del proyecto Webpublic class CategoriasRER : IRemoteEventService
{
public SPRemoteEventResult ProcessEvent(RemoteEventProperties
properties)
{
SPRemoteEventResult result = new SPRemoteEventResult();
//Código para eventos síncronos
return result;
}
public void ProcessOneWayEvent(RemoteEventProperties properties)
{
//Código para eventos asíncronos
}
}
• SharePoint 2013 dispone de dos tipos de Flujos de Trabajo: 2010 y 2013
• Apps solo pueden utilizar Flujos de Trabajo de SharePoint 2013
• Flujos son “declarativos”
• Flujos de Trabajo para Aplicaciones se pueden crear con:
• SharePoint Designer 2013
• Visual Studio 2012
• Use la Plantilla de Aplicaciones de SharePoint en Visual Studio 2012
• Cree la(s) Lista(s) necesarias
• Agregue un elemento de tipo “Flujo de trabajo“
• Configure el flujo usando el diseñador grafico
• Usa el “Servicio de Conectividad a Datos Empresariales” (BCS, Business Connectivity
• Services) de SharePoint
• Permite integrar datos disponibles en sistemas externos de información
• Da acceso a datos externos desde una Aplicación
• El sistema externo expone los datos de negocio
• Orígenes de datos de servicios soportados: OData, servicios WCF y BBDD SQL Server
• La Biblioteca de documentos ("BusinessDataMetadataCatalog“) almacena los modelos de
metadatos del BDC
• El "Runtime" de BDC:
• Usa un modelo de metadatos y representar los datos del sistema externo en una Lista
externa
• La Lista externa que proporciona acceso a la información
• Use la Plantilla de Aplicaciones de SharePoint en Visual Studio 2012
• Agregue un elemento de tipo “Tipos de contenido para un origen de datos externo“
• Visual Studio agrega:
• El archivo ".bdcm" que contiene la definición del modelo de metadatos de BDC
• Un elemento del tipo "External Content Types“
• Una Lista Externa
• Motor de Búsqueda totalmente modificado en SharePoint 2013
• Búsquedas funcionan de forma normal en Apps:
• Información dentro de la App es indexada
• Security-trimming
• Resultados de información en la App visibles en la granja
• Motor de Búsqueda funciona cada vez mas como un “agregador”
• WebPart “Búsqueda de Contenido” no esta disponible en O365
• CSOM y REST disponibles para dar resultados de búsquedas
• Usando CSOM y
JavaScript:
• Usando REST
var keywordQuery = new
Microsoft.SharePoint.Client.Search.Query.KeywordQuery(context);
keywordQuery.set_queryText(“SharePoint”);
var searchExecutor = new
Microsoft.SharePoint.Client.Search.Query.SearchExecutor(context);
results = searchExecutor.executeQuery(keywordQuery);
context.executeQueryAsync(onQuerySuccess, onQueryFail)
http://server/_api/search/query?query_parameter=value&query_parameter=‘SharePoin
t’
http://server/_api/search/query?querytext='sharepoint'&sourceid='8413cd39-2156-
4e00-b54d-11efd9abdb89‘
http://server/_api/search/query?querytext='sharepoint'&rankingmodelid=CustomRank
ingModelID
http://server/_api/search/query?querytext='sharepoint'&selectproperties='Title,Autho
r‘
http://server/_api/search/query?querytext='sharepoint'&culture=1044
http://server/_api/search/query?querytext='sharepoint'&refinementfilters='fileExtensi
on:equals("docx")‘
http://server/_api/search/query?querytext='sharepoint'&trimduplicates=false
• El Almacén de Office es la tienda de referencia empresarial de Office y SharePoint
• El Almacén se encargada de validar y certificar las Aplicaciones a publicar en el Panel del
Vendedor
• El Panel del Vendedor permite publicar y administrar las Aplicaciones de SharePoint y
Office
• Para publicar una Aplicación se necesita:
• Cuenta para el Panel de Vendedor
• Información sobre la Aplicación (nombre, descripción, etc.)
• Microsoft valida y aprueba la Aplicación
• Varios modelos para monetización: gratis, con publicidad, de venta
• SDK de SharePoint ofrece un Framework para validar licencias (uso debe ser programado)