Mejorando interfaz de SharePoint 2010 con Silverlight 4

25
Mejorando la interfaz de SharePoint 2010 con Silverlight 4 Guillermo Bas - Javier Yagüe C&B207 SharePoint Developer - DPS MCTS y MCPD en SharePoint 2010 [email protected][email protected]

description

SharePoint 2010 nos ofrece la posibilidad de integrar Silverlight en nuestras WebParts y de ésta forma mejorar considerablemente el modo en el que nuestros usuarios interactúan con los contenidos. En esta sesión mostraremos cómo mejorar la experiencia de usuario en SharePoint a través de una interfaz creada con Silverlight, estudiaremos como podemos mejorar la forma en la que los usuarios acceden a los datos almacenados en listas o bibliotecas de SharePoint 2010.

Transcript of Mejorando interfaz de SharePoint 2010 con Silverlight 4

Page 1: Mejorando interfaz de SharePoint 2010 con Silverlight 4

Mejorando la interfaz de SharePoint 2010 con Silverlight 4

Guillermo Bas - Javier Yagüe

C&B207

SharePoint Developer - DPS MCTS y MCPD en SharePoint 2010

[email protected][email protected]

Page 2: Mejorando interfaz de SharePoint 2010 con Silverlight 4

α Identificar cómo puede ayudarnos Silverlight a mejorar la interfaz de SharePoint 2010

α Identificar el mejor método de despliegue en cada proyecto

α Comprender cómo funciona el acceso a datos desde Silverlight

Objetivos de la sesión Desarrollando aplicaciones Silverlight para SharePoint 2010

Page 3: Mejorando interfaz de SharePoint 2010 con Silverlight 4

Silverlight y SharePoint 2007

αRequería modificar Web.Config

αDespliegue más complejo

α Solo posible a través de HTML

En capítulos anteriores…

Page 4: Mejorando interfaz de SharePoint 2010 con Silverlight 4

Silverlight y SharePoint 2010

α Soportado de serie

α Silverlight WebPart (Solo necesita la ruta del .xap)

αPosibilidad de crear nuestra propia WebPart personalizada

αDespliegue muy sencillo

Ahora

Page 5: Mejorando interfaz de SharePoint 2010 con Silverlight 4

Interacción mejorada

Page 6: Mejorando interfaz de SharePoint 2010 con Silverlight 4

Desarrollando nuestra aplicación

Page 7: Mejorando interfaz de SharePoint 2010 con Silverlight 4

Ubicaciones para el .xap

Sistema físico Sistema virtual

Carpeta Layouts Biblioteca de documentos

Carpeta Layouts/ClientBin

En la raíz o en una subcarpeta

bajo el sitio de SharePoint

(Designer)

Page 8: Mejorando interfaz de SharePoint 2010 con Silverlight 4

αSubir el .xap a una biblioteca de documentos

αEmpaquetar el .xap en un WSP para su despliegue

β Módulo

β Directorio mapeado

αWebPart personalizado de Silverlight (ej. Media WebPart)

Métodos de despliegue

Page 9: Mejorando interfaz de SharePoint 2010 con Silverlight 4

Métodos de despliegue

Page 10: Mejorando interfaz de SharePoint 2010 con Silverlight 4

¿Cómo funciona?

α Encapsulando los Servicios Web WCF de SharePoint 2010

API de Silverlight para SP2010

¿Qué nos proporciona?

αUna capa de abstracción fácil de utilizar

α Integración del modelo de objetos SharePoint con aplicaciones que se ejecutan en el cliente

Page 11: Mejorando interfaz de SharePoint 2010 con Silverlight 4

Ensamblados (Referencias necesarias)

αMicrosoft.SharePoint.Client.Silverlight.dll (265 KB)

αMicrosoft.SharePoint.Client.Silverlight.Runtime.dll (141 KB)

API de Silverlight para SP2010

Espacio de nombres

Using Microsoft.SharePoint.Client;

Ubicación

α 14\TEMPLATE\LAYOUTS\ClientBin

Page 12: Mejorando interfaz de SharePoint 2010 con Silverlight 4

α El contexto remoto (ClientContext)

Elementos principales

ClientContext ctx;

if (ClientContext.Current == null)

{

ctx = new ClientContext("http://mysite");

}

else

{

ctx = ClientContext.Current;

}

Page 13: Mejorando interfaz de SharePoint 2010 con Silverlight 4

αCola de consultas (Load)

Elementos principales

List listaNoticias =

ctx.Web.Lists.GetByTitle("Noticias");

itemsNoticias =

listaNoticias.GetItems(CamlQuery.CreateAllItemsQuery());

ctx.Load(itemsNoticias);

Page 14: Mejorando interfaz de SharePoint 2010 con Silverlight 4

αContexto de ejecución (ExecuteQuery vs ExecuteQueryAsync)

Elementos principales

ctx.ExecuteQueryAsync(NoticiasCargadas,

ErrorCargaNoticias);

void ErrorCargaNoticias(object sender,

ClientRequestFailedEventArgs args)

{

//HasLoaded = true;

string mensajeError = args.Message;

}

void NoticiasCargadas(object sender,

ClientRequestSucceededEventArgs args)

{

HasLoaded = true;

}

Page 15: Mejorando interfaz de SharePoint 2010 con Silverlight 4

Añadiendo Silverlight

Page 16: Mejorando interfaz de SharePoint 2010 con Silverlight 4

α Actualizar la interfaz

β Dispatcher.BeginInvoke

α En XAML, usar Converters

β Convertir objetos antes

α Masificar con controles de usuario

β Posible, pero costoso

Asincronía con Sharepoint O cosas que no se pueden hacer a la vez con Silverlight

Page 17: Mejorando interfaz de SharePoint 2010 con Silverlight 4

XAML

Page 18: Mejorando interfaz de SharePoint 2010 con Silverlight 4

α Utilizar un modelo de capas como: β ModelViewViewModel

β ModelViewController

α Permite ports sencillos para: β Windows Presentation Foundation

β Silverlight OutOfBrowser

β Windows Phone 7

Desarrollo reutilizable

Page 19: Mejorando interfaz de SharePoint 2010 con Silverlight 4

α Definir el contexto adecuado (ClientContext)

α Configurar Silverlight para OOB

α Listo!

Silverlight OOB O de como usarlo en el escritorio

Page 20: Mejorando interfaz de SharePoint 2010 con Silverlight 4

OutOfBrowser

Page 21: Mejorando interfaz de SharePoint 2010 con Silverlight 4

α GetItems restringido de serie para la API de Silverlight

α Permitimos el acceso con PowerShell

Sitios anónimos Silverlight y el usuario anónimo

$webapp = Get-SPWebApplication -Identity

"http://demo.spdev.local"

$webapp.ClientCallableSettings.AnonymousRestrictedTypes

.Remove([Microsoft.SharePoint.SPList], "GetItems")

$webapp.Update()

Page 22: Mejorando interfaz de SharePoint 2010 con Silverlight 4

Anónimo

Page 23: Mejorando interfaz de SharePoint 2010 con Silverlight 4

¿Cómo lo hicimos? Colaboración entre desarrollador y diseñador

Page 24: Mejorando interfaz de SharePoint 2010 con Silverlight 4