![Page 1: Mejorando interfaz de SharePoint 2010 con Silverlight 4](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/1.jpg)
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
![Page 2: Mejorando interfaz de SharePoint 2010 con Silverlight 4](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/2.jpg)
α 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](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/3.jpg)
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](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/4.jpg)
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](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/5.jpg)
Interacción mejorada
![Page 6: Mejorando interfaz de SharePoint 2010 con Silverlight 4](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/6.jpg)
Desarrollando nuestra aplicación
![Page 7: Mejorando interfaz de SharePoint 2010 con Silverlight 4](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/7.jpg)
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](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/8.jpg)
α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](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/9.jpg)
Métodos de despliegue
![Page 10: Mejorando interfaz de SharePoint 2010 con Silverlight 4](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/10.jpg)
¿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](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/11.jpg)
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](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/12.jpg)
α 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](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/13.jpg)
α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](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/14.jpg)
α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](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/15.jpg)
Añadiendo Silverlight
![Page 16: Mejorando interfaz de SharePoint 2010 con Silverlight 4](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/16.jpg)
α 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](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/17.jpg)
XAML
![Page 18: Mejorando interfaz de SharePoint 2010 con Silverlight 4](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/18.jpg)
α 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](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/19.jpg)
α 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](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/20.jpg)
OutOfBrowser
![Page 21: Mejorando interfaz de SharePoint 2010 con Silverlight 4](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/21.jpg)
α 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](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/22.jpg)
Anónimo
![Page 23: Mejorando interfaz de SharePoint 2010 con Silverlight 4](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/23.jpg)
¿Cómo lo hicimos? Colaboración entre desarrollador y diseñador
![Page 24: Mejorando interfaz de SharePoint 2010 con Silverlight 4](https://reader037.vdocuments.mx/reader037/viewer/2022103115/556aba92d8b42a89038b525f/html5/thumbnails/24.jpg)