Mejorando interfaz de SharePoint 2010 con Silverlight 4

Post on 31-May-2015

549 views 2 download

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

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

gbas@solid.com – jyague@solidq.com

α 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

Silverlight y SharePoint 2007

αRequería modificar Web.Config

αDespliegue más complejo

α Solo posible a través de HTML

En capítulos anteriores…

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

Interacción mejorada

Desarrollando nuestra aplicación

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)

α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

Métodos de despliegue

¿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

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

α El contexto remoto (ClientContext)

Elementos principales

ClientContext ctx;

if (ClientContext.Current == null)

{

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

}

else

{

ctx = ClientContext.Current;

}

αCola de consultas (Load)

Elementos principales

List listaNoticias =

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

itemsNoticias =

listaNoticias.GetItems(CamlQuery.CreateAllItemsQuery());

ctx.Load(itemsNoticias);

α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;

}

Añadiendo Silverlight

α 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

XAML

α Utilizar un modelo de capas como: β ModelViewViewModel

β ModelViewController

α Permite ports sencillos para: β Windows Presentation Foundation

β Silverlight OutOfBrowser

β Windows Phone 7

Desarrollo reutilizable

α Definir el contexto adecuado (ClientContext)

α Configurar Silverlight para OOB

α Listo!

Silverlight OOB O de como usarlo en el escritorio

OutOfBrowser

α 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()

Anónimo

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