sharepoint para desarrolladores

93
Página 1 Tutoriales para programadores Este documento se proporciona "tal cual". Es posible que la información y las vistas mencionadas en este documento, incluidas la dirección URL y otras referencias de sitio web de Internet, cambien si previo aviso. El usuario asume el riesgo de su uso. Algunos ejemplos descritos en este documento se proporcionan únicamente con fines ilustrativos y son ficticios. No se pretende indicar ni debe deducirse ninguna asociación ni conexión real. Este documento no proporciona derecho legal alguno sobre cualquier propiedad intelectual de un producto de Microsoft. Este documento puede copiarse y usarse para fines internos y de referencia. © 2010 Microsoft. Reservados todos los derechos. Microsoft, SharePoint, Visual Studio, InfoPath y Visio son marcas comerciales del grupo de compañías de Microsoft. Todas las demás marcas comerciales pertenecen a sus respectivos propietarios.

Upload: carlos-vijil

Post on 08-Aug-2015

79 views

Category:

Documents


3 download

DESCRIPTION

Documento para programadores

TRANSCRIPT

Page 1: SharePoint para desarrolladores

Página 1

Tutoriales para

programadores

Este documento se proporciona "tal cual". Es posible que la información y las vistas mencionadas en este

documento, incluidas la dirección URL y otras referencias de sitio web de Internet, cambien si previo aviso.

El usuario asume el riesgo de su uso.

Algunos ejemplos descritos en este documento se proporcionan únicamente con fines ilustrativos y son

ficticios. No se pretende indicar ni debe deducirse ninguna asociación ni conexión real.

Este documento no proporciona derecho legal alguno sobre cualquier propiedad intelectual de un

producto de Microsoft. Este documento puede copiarse y usarse para fines internos y de referencia.

© 2010 Microsoft. Reservados todos los derechos.

Microsoft, SharePoint, Visual Studio, InfoPath y Visio son marcas comerciales del grupo de compañías de

Microsoft. Todas las demás marcas comerciales pertenecen a sus respectivos propietarios.

Page 2: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 2

Contenido Ejercicio 1: tutorial sobre elementos web y LINQ .................................................................................................. 4

Tarea 1: creación de un nuevo proyecto de SharePoint ................................................................................... 4 Tarea 2: generación de la clase de proxy LINQ-to-SharePoint para obtener acceso a datos de listas ............ 7 Tarea 3: acceso a datos de listas de SharePoint en el elemento web visual ................................................... 9 Tarea 4: creación e implementación del elemento web visual ........................................................................ 11

Ejercicio 2: creación de un tipo de contenido externo de BCS ............................................................................ 16 Tarea 1: creación de un proyecto de modelo de conectividad a datos empresariales ................................... 16 Tarea 2: actualización del esquema de la clase de entidad ............................................................................ 18 Tarea 3: actualización del código del servicio ................................................................................................. 28 Tarea 4: creación e implementación ................................................................................................................ 30

Ejercicio 3: creación de una aplicación de Silverlight para el modelo de objetos de cliente de SharePoint ....... 34 Tarea 1: creación de un proyecto de aplicación de Silverlight ........................................................................ 34 Tarea 2: escritura de código para obtener acceso a datos de listas de SharePoint y representarlos ............ 36 Tarea 3: implementación y prueba mediante el elemento web de Silverlight de SharePoint ......................... 40

Ejercicio 4: creación de un gráfico mediante el modelo de objetos de SharePoint y los controles de gráficos de Silverlight .............................................................................................................................................................. 42

Tarea 1: creación de un proyecto de aplicación de Silverlight ........................................................................ 42 Tarea 2: escritura de código para obtener acceso a datos de la lista Employee de SharePoint y mostrarlos en un control de gráficos de Silverlight ............................................................................................................ 46 Tarea 3: implementación y prueba mediante el elemento web de Silverlight de SharePoint ......................... 49

Ejercicio 5: creación de un elemento web para una solución de espacio aislado ............................................... 53 Tarea 1: creación de un proyecto de solución de espacio aislado con un elemento web .............................. 53 Tarea 2: adición de código para proporcionar la funcionalidad de consulta y presentación ........................... 55 Tarea 3: generación e implementación de la solución de espacio aislado ..................................................... 58

Ejercicio 6: creación de una actividad para su uso en un flujo de trabajo de SharePoint Designer.................... 63 Tarea 1: creación y preparación del proyecto ................................................................................................. 63 Tarea 2: creación de una actividad de flujo de trabajo para su uso por el flujo de trabajo reutilizable ........... 64 Tarea 3: adición de código para crear una biblioteca de documentos basada en los parámetros pasados a la actividad ........................................................................................................................................................... 66 Tarea 4: configuración de la actividad para la implementación ....................................................................... 69 Tarea 5: adición de la actividad SPDActivityDemo para su implementación con SPCHOL305Ex1. .............. 73 Tarea 6: configuración de una característica mediante el diseñador de características ................................ 75 Tarea 7: adición y codificación de un receptor de características ................................................................... 75 Tarea 8: creación de un flujo de trabajo reutilizable mediante SharePoint Designer...................................... 76 Tarea 9: importación del flujo de trabajo reutilizable a Visual Studio .............................................................. 84 Tarea 10: asociación del flujo de trabajo con una lista en SharePoint ............................................................ 91

Resumen del tutorial ............................................................................................................................................ 93

Page 3: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 3

A continuación se incluyen seis tutoriales de C# sobre escenarios exclusivos que los programadores profesionales pueden llevar a cabo en SharePoint 2010 con Visual Studio 2010. Observará que en estos tutoriales se proporcionan las instantáneas suficientes para leer el documento sin que sea necesario el acceso al software. Estos tutoriales para programadores también se encuentran disponibles como laboratorios prácticos como parte de este curso de eLearning en línea: http://msdn.microsoft.com/es-es/sharepoint/ee513147.aspx. También se ofrecen laboratorios adicionales, vídeos, entornos de laboratorio virtuales en línea y ejemplos de código, y los laboratorios prácticos se encuentran disponibles en C# y VB.NET. Para proporcionar comentarios sobre esta guía, envíe un mensaje de correo electrónico a [email protected].

Page 4: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 4

Ejercicio 1: tutorial sobre elementos web y LINQ

Tiempo estimado para completar este ejercicio: 10 minutos

En este ejercicio, desarrollará e implementará un elemento web visual que leerá los datos de una lista y los mostrará en una cuadrícula de datos. En este ejercicio:

1. Creará un elemento web visual.

2. Generará código proxy de LINQ.

3. Usará un proveedor LINQ para leer datos de una lista de SharePoint.

4. Representará los datos mediante el control web SPDataGrid.

Tarea 1: creación de un nuevo proyecto de SharePoint

En esta tarea, se creará una solución y un proyecto. Se incluirá el resto del trabajo de desarrollo del Ejercicio 1 de esta práctica.

1. Abra Visual Studio 2010; para ello, vaya a Menú Inicio | Todos los programas | Microsoft Visual Studio 2010 | Microsoft Visual Studio 2010.

2. En el menú, seleccione Archivo | Nuevo | Proyecto.

3. En el cuadro de diálogo Nuevo proyecto, elija Visual C# | SharePoint | 2010 en Plantillas instaladas.

4. Seleccione Elemento web visual en los elementos del proyecto.

Figura 1 - Proyecto de elemento web visual de SharePoint 2010

5. Escriba SPCHOL200-Ex1 en el cuadro de texto Nombre.

Page 5: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 5

6. Escriba C:\SPHOLS\SPCHOL200\CS\Ex1 en el cuadro de texto Ubicación.

7. Desactive Crear directorio para la solución.

8. Haga clic en Aceptar.

9. En el Asistente para personalizar SharePoint:

Escriba http://intranet.contoso.com/ para el sitio local.

Establezca el nivel de confianza en Implementar como solución de granja de servidores.

Haga clic en el botón Finalizar.

Figura 2 - Asistente para personalizar SharePoint

10. Visual Studio creará el nuevo proyecto SPCHOL200-Ex1 y agregará los archivos necesarios.

Page 6: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 6

Figura 3 - Proyecto SPCHOL200-Ex1

11. Observe que Visual Studio también creará un elemento web denominado VisualWebPart1. En el Explorador de soluciones, expanda VisualWebPart1 y abra VisualWebPart1.webpart.

Figura 4 - Elemento web visual

12. Cambie el valor del elemento de propiedad con el valor de atributo de nombre Title por SPLinqDemoTitle y el valor del elemento de propiedad con el valor de atributo de nombre Description por SPLinqDemoPart Description. Se cambiarán las propiedades Title y Description del elemento web visual una vez implementado. Guarde el archivo.

<properties> <property name="Title" type="string">SPLinqDemoTitle</property> <property name="Description" type="string">SPLinqDemoPart Description</property> </properties>

Page 7: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 7

Tarea 2: generación de la clase de proxy LINQ-to-SharePoint para obtener acceso a datos de listas

En esta tarea, usará la nueva utilidad de generación de código spmetal.exe y generará el código proxy de LINQ-to-SharePoint.

1. En el Explorador de soluciones, haga clic con el botón secundario en SPCHOL200-Ex1 y seleccione Abrir carpeta en el Explorador de Windows.

2. Mantenga presionada la tecla Mayúsculas y haga clic con el botón secundario en cualquier lugar de la ventana del Explorador y seleccione Abrir ventana de comandos aquí para abrir la ventana del símbolo del sistema en el directorio del proyecto actual:

Figura 5 - Abrir ventana de comandos aquí

3. Escriba el siguiente comando en el símbolo del sistema y presione ENTRAR para establecer la ruta de acceso a la carpeta de SharePoint 2010:

set path=%path%;c:\archivos de programa\common files\microsoft shared\web server extensions\14\bin

4. Escriba el siguiente comando en el símbolo del sistema y presione ENTRAR para generar el código proxy de LINQ-to-SharePoint.

spmetal.exe /web:http://intranet.contoso.com /namespace:SPCHOL200_Ex1.VisualWebPart1 /code:SPLinq.cs

Nota: es posible que reciba advertencias sobre tipos de contenido de plantillas de formulario de listas. Puede pasar por alto esta advertencia sin ningún riesgo y continuar.

5. Cierre la ventana Comandos y vuelva a Visual Studio.

6. En Visual Studio, haga clic con el botón secundario en el proyecto SPCHOL200-Ex1 y seleccione Agregar | Elemento existente.

Page 8: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 8

Figura 6 - Agregar elemento existente

7. Seleccione SPLinq.cs en la ventana de diálogo Agregar elemento existente y haga clic en Agregar:

Figura 7 - Adición del archivo SPLinq.cs

8. En el Explorador de soluciones, haga clic con el botón secundario en References y seleccione Agregar referencia.

9. Cambie a la ficha Examinar y escriba C:\Archivos de programa\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI en el cuadro de texto Nombre. Presione ENTRAR

Page 9: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 9

para cambiar el directorio. La ventana Agregar referencia debería mostrarse ahora como la figura 8.

10. Seleccione Microsoft.SharePoint.Linq.dll.

Figura 8 - Adición de referencia

11. Haga clic en Aceptar para agregar la referencia al proyecto.

Tarea 3: acceso a datos de listas de SharePoint en el elemento web visual

En esta tarea, agregará código a la solución que permitirá al elemento web visual recuperar datos de listas de SharePoint.

1. En el Explorador de soluciones, expanda VisualWebPart1 y haga doble clic en VisualWebPart1UserControl.ascx.

2. Visual Studio abrirá el control de usuario del elemento web visual.

3. Agregue el siguiente código al control de usuario para crear la vista de cuadrícula.

Page 10: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 10

<%@ Import Namespace="Microsoft.SharePoint.WebControls" %>

<SharePoint:SPGridView id="spGridView" runat="server"

AutoGenerateColumns="false">

<HeaderStyle HorizontalAlign="Left" ForeColor="Navy" Font-Bold="true" />

<Columns>

<SharePoint:SPBoundField DataField="Title"

HeaderText="Title"></SharePoint:SPBoundField>

<SharePoint:SPBoundField DataField="JobTitle"

HeaderText="JobTitle"></SharePoint:SPBoundField>

<SharePoint:SPBoundField DataField="ProjectTitle"

HeaderText="ProjectTitle"></SharePoint:SPBoundField>

<SharePoint:SPBoundField DataField="DueDate"

HeaderText="DueDate"></SharePoint:SPBoundField>

</Columns>

</SharePoint:SPGridView>

Fragmentos de código: ASP.NET | spchol200_ex1_spgridview

4. El control de usuario del elemento web visual debería verse así una vez agregado el código anterior:

Figura 9 - Control de usuario del elemento web visual

5. En el Explorador de soluciones, haga clic con el botón secundario en VisualWebPart1UserControl.ascx y seleccione Ver código.

6. Agregue las siguientes instrucciones using al código subyacente:

using Microsoft.SharePoint.Linq; using Microsoft.SharePoint; using System.Linq;

Fragmento de código: Mis fragmentos de código | spchol200_ex1_namespaces

7. Inserte el siguiente código en el método Page_Load:

var dc = new SPLinqDataContext(SPContext.Current.Web.Url); var Employees = dc.GetList<EmployeesItem>("Employees");

Page 11: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 11

var empQuery = from emp in Employees where emp.Project.DueDate < DateTime.Now.AddMonths(6) select new { emp.Title, emp.JobTitle, ProjectTitle = emp.Project.Title, DueDate = emp.Project.DueDate.Value.ToShortDateString() }; spGridView.DataSource = empQuery; spGridView.DataBind();

Fragmento de código: Mis fragmentos de código | spchol200_ex1_pageload

Tarea 4: creación e implementación del elemento web visual

1. En el Explorador de soluciones, haga clic con el botón secundario en SPCHOL200-Ex1 y seleccione Implementar. Se creará e implementará el elemento web visual en el sitio local de SharePoint: http://intranet.contoso.com

Figura 10 - Implementación del elemento web visual

2. Abra Internet Explorer y busque el siguiente sitio:

http://intranet.contoso.com

3. Si se le pide autenticación, escriba los siguientes detalles.

Nombre de usuario: Administrator

Contraseña: pass@word1

4. Haga clic en el icono Editar del menú principal para abrir la cinta de SharePoint para las herramientas de edición.

Page 12: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 12

Figura 11 – Icono Editar en SharePoint

Figura 12 - Cinta de SharePoint - Página Editar

5. Cambie a la ficha Insertar de la cinta de opciones y haga clic en Elemento web para insertar un elemento web en la página.

Page 13: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 13

Figura 13 - Cinta de SharePoint - Insertar Elemento web

6. En Categorías, seleccione Personalizado.

7. En Elementos web, seleccione el elemento web SPLinqDemoTitle.

Figura 14 - Selección del elemento web SPlinqDemoTitle

Coloque el cursor en el área de la página donde desea que aparezca el elemento web. Esta debe ser una zona que acepte elementos web. En este caso, coloque el cursor en la zona situada

Page 14: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 14

debajo del control Documentos compartidos.

Figura 15 - Zonas de diseño

8. Haga clic en Agregar para agregar el elemento web a la página. Se agregará el elemento web SPLinqDemoTitle a la zona de diseño seleccionada.

Page 15: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 15

Figura 16 - Elemento web SPLinqDemoTitle agregado a la zona de diseño

9. Haga clic en Página, haga clic en la flecha abajo del botón "Guardar y cerrar" y seleccione Detener la edición para guardar la página y detener la edición. Haga clic en Sí cuando se le pregunte si desea guardar los cambios realizados.

Figura 17 - Cinta de SharePoint - Detener la edición

10. Cierre Internet Explorer.

11. Cierre Visual Studio 2010.

En el ejercicio anterior, creó e implementó un elemento web visual que usa LINQ to SharePoint para recuperar datos de una lista de SharePoint.

Page 16: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 16

Ejercicio 2: creación de un tipo de contenido externo de BCS

Este ejercicio le guiará en la creación de un tipo de contenido externo mediante la plantilla de proyecto

del modelo BDC de Visual Studio 2010 y en la extensión del tipo de contenido externo.

Tarea 1: creación de un proyecto de modelo de conectividad a datos empresariales

1. Abra Visual Studio 2010; para ello, vaya a Menú Inicio | Todos los programas | Microsoft Visual Studio 2010 | Microsoft Visual Studio 2010 y, en el menú, seleccione Archivo | Nuevo | Proyecto.

2. Seleccione la plantilla de proyecto Modelo de conectividad a datos profesionales de Visual C# | SharePoint | 2010.

3. Escriba BDCEx1 en el cuadro de texto Nombre.

Figura 18 - Cuadro de diálogo Nuevo proyecto

4. Escriba C:\SPHOLS\SPCHOL304\CS\Ex1 en el cuadro de texto Ubicación.

5. Haga clic en Aceptar.

Page 17: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 17

6. Cambie la dirección URL a http://intranet.contoso.com.

7. Seleccione el botón de radio Implementar como solución de granja de servidores.

Figura 19 - Asistente para personalizar SharePoint

8. Haga clic en Finalizar.

Page 18: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 18

Tarea 2: actualización del esquema de la clase de entidad

1. En el menú principal, seleccione Ver | Explorador de soluciones. En el Explorador de soluciones, cambie el nombre de Entity1.cs por Customer.cs y Entity1Service.cs por CustomerService.cs. Haga clic en Sí cuando se le pida mediante el siguiente aviso:

Figura 20 - Aviso de cambio de nombre del archivo de Visual Studio

2. Si todavía no se abrió, haga doble clic en Customer.cs en el Explorador de soluciones. Reemplace el código del cuerpo de la clase Customer por el siguiente código. Se agregarán dos propiedades adicionales y se cambiará el tipo de una tercera propiedad como una asignación para los descriptores de tipo agregados y modificados en la definición de BDC. Tenga en cuenta que al cambiar Identifier1 por CustomerId, puede usar el glifo que aparece en el editor para cambiar el nombre de todas las referencias a Identifier1 del campo. Esto no lo ayudará en este caso, pero es una buena práctica.

public Int32 CustomerId { get; set; }

public string Message { get; set; }

public string FirstName { get; set; }

public string LastName { get; set; }

Fragmento de código: Mis fragmentos de código | spchol304_ex1_customer

Figura 21 - Clase Customer después de los cambios en el cuerpo

Page 19: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 19

Tarea 3: extensión de los metadatos de BCS para el tipo de contenido externo 1. En el Explorador de soluciones, abra BdcModel1.bdcm si todavía no se abrió el Diseñador de

BDC.

Figura 22 - Explorador de soluciones mostrando BDCModel1.bdcm en el Diseñador de BDC

2. En el diseñador, seleccione la entidad Entity1; para ello, haga clic en el título.

Figura 23 - Entidad Entity1

3. Cambie el nombre de Entity1 por Customer; para ello, haga clic en el nombre Entity1 en el diseñador y presione F2 (como alternativa, puede cambiar el nombre en la cuadrícula Propiedades).

4. Resalte Identifier1 en el diseñador de entidades y presione F4 para abrir la cuadrícula de propiedades. Use la cuadrícula Propiedades para cambiar el nombre Identifier1 por CustomerId y cambiar su nombre de tipo por System.Int32.

Page 20: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 20

Figura 24 - Panel Propiedades después de cambiar el nombre de tipo

5. En el Explorador de BDC en Visual Studio, expanda Modelo | BdcModel1 | BdcModel1 | Customer | ReadList | returnParameter. Haga clic en Entity1List para abrir su cuadrícula de propiedades.

Figura 25 - Explorador de BDC resaltando Entity1List

6. Mediante la cuadrícula Propiedades, cambie el nombre de Entity1List por CustomerList.

Page 21: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 21

7. En el Explorador de BDC, expanda CustomerList.

Figura 26 - Explorador de BDC resaltando Entity1

8. Mediante la cuadrícula Propiedades, cambie el nombre de Entity1 a Customer.

En el Explorador de BDC, expanda Customer y, mediante la cuadrícula Propiedades, cambie el nombre de Identifier1 a CustomerId y establezca el nombre de tipo en System.Int32.

Figura 27 - Cuadrícula Propiedades después de los cambios en Identifier1

Page 22: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 22

9. En el Explorador de BDC, haga clic con el botón secundario en Customer y seleccione Agregar descriptor de tipo.

Figura 28 - Menú contextual de la entidad Customer

10. Seleccione TypeDescriptor y, mediante la cuadrícula Propiedades, cambie Nombre a FirstName.

11. En el Explorador de BDC, haga clic con el botón secundario en Customer y seleccione Agregar descriptor de tipo.

12. Seleccione TypeDescriptor y, mediante la cuadrícula Propiedades, cambie Nombre a LastName.

Figura 29 - Entidad Customer en el Explorador de BDC después de la adición de los descriptores de tipo FirstName y LastName

13. En el Explorador de BDC, haga clic con el botón secundario en Customer y seleccione Copiar.

Figura 30 - Menú contextual de la entidad Customer

14. En el Explorador de BDC, expanda el método ReadItem , haga clic con el botón secundario en returnParameter y seleccione Pegar.

Page 23: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 23

Figura 31 – Menú contextual de returnParameter

15. Haga clic en Sí.

Figura 32 - Aviso de reemplazo del descriptor de tipo

16. Expanda returnParameter | Customer y confirme que los descriptores de tipo FirstName y LastName se copiaron correctamente.

Page 24: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 24

Figura 33 - Explorador de BDC después de los cambios realizados en los pasos 1 a 18 de la Tarea 1

Page 25: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 25

17. En el Explorador de BDC, expanda ReadItem | id y seleccione Identifier1.

18. Mediante la cuadrícula Propiedades, cambie el nombre Identifier1 a CustomerId y establezca el nombre de tipo en System.Int32.

Figura 34 - Cuadrícula Propiedades después de los cambios en Identifier1

19. Mediante el panel Detalles de métodos de BDC, agregue un método Update

Figura 35 - Detalles de métodos de BDC agregando el método Update

Page 26: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 26

20. Agregue un parámetro y denomínelo id

.

Figura 36 - Adición del parámetro id al método Update

Page 27: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 27

21. Abra el nuevo método Update en la ventana Explorador de BDC.

22. Copie el descriptor de tipo de la descripción de tipo CustomerId del parámetro @id del método ReadItem al parámetro @id del método Update.

23. Cambie la propiedad Campo Pre-Updater del parámetro id para que sea True.

Figura 37 - Actualización del campo Pre-Updater a True

Page 28: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 28

Tarea 3: actualización del código del servicio

1. En el Explorador de soluciones, abra CustomerService.cs.

2. Reemplace el cuerpo de la clase CustomerService por el siguiente código. Se devolverá un cliente en función de un identificador determinado, y una matriz de clientes si se le solicita.

public static Dictionary<Int32, Customer> d = null;

public static Customer ReadItem(Int32 id)

{

// take a copy for SharePoint

Customer c = new Customer();

Customer e = d[id];

c.CustomerId = e.CustomerId;

c.FirstName = e.FirstName;

c.LastName = e.LastName;

c.Message = e.Message;

return c;

}

public static IEnumerable<Customer> ReadList()

{

// this is usually the first method called so check for null

if (d == null)

{

d = new Dictionary<Int32, Customer>();

for (int i = 0; i < 10; i++)

{

Customer e = new Customer();

e.CustomerId = i;

e.Message = i + " Item Data";

e.FirstName = i + " First Name";

e.LastName = i + " Last Name";

d.Add(i, e);

}

}

return d.Values;

}

public static void Update(Customer customer, Int32 id)

{

d[id].FirstName = customer.FirstName;

d[id].LastName = customer.LastName;

d[id].Message = customer.Message;

}

Fragmento de código: Mis fragmentos de código | spchol304_ex1_customerservice

Page 29: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 29

Figura 38 - Clase CustomerService después de los cambios

3. En el Explorador de soluciones, expanda la carpeta Features y haga doble clic en el nodo

Feature1.feature. Se abrirá el diseñador de características.

4. Haga clic en la pestaña Manifiesto en la parte inferior del diseñador de características.

5. Haga clic en el glifo + situado junto a Editar opciones para abrir el editor de plantillas.

6. Agregue una nueva propiedad para la dirección URL del sitio.

<Property Key="SiteUrl" Value="http://intranet.contoso.com" />

Page 30: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 30

El diseñador de características ahora debería verse como la Figura 39.

Figura 39 – Diseñador de características con la propiedad SiteUrl agregada

Tarea 4: creación e implementación

1. En el menú, seleccione Generar | Implementar BDCEx1.

2. Abra http://intranet.contoso.com en una sesión del explorador.

3. Haga clic en Listas en la navegación izquierda

.

Figura 40 - Vínculo Listas

4. Haga clic en Crear.

Figura 41 - Vínculo Crear

Page 31: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 31

En el cuadro de diálogo Crear, seleccione Lista externa y, a continuación, seleccione Crear.

Figura 42 – Cuadro de diálogo de creación de una lista externa

5. Escriba Mis contactos en el cuadro de texto Nombre.

6. Haga clic en el segundo botón a la derecha del cuadro de texto Tipo de contenido externo (el botón en cuya información sobre herramientas se lee "Seleccionar tipo de contenido externo").

Figura 43 – Página de creación de nueva lista externa

Page 32: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 32

7. Seleccione BDCModel1 y haga clic en Aceptar.

Figura 44 - Selector de tipo de datos profesionales -- Cuadro de diálogo Página web

Figura 45 - Página de la nueva lista externa

Page 33: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 33

8. Haga clic en Crear.

9. Ya ha creado un tipo de contenido externo y una lista para hospedar el tipo de contenido.

Figura 46 - Tipo de contenido externo (modelo BDC) mostrado en la lista

Page 34: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 34

Ejercicio 3: creación de una aplicación de Silverlight para el modelo de objetos de cliente de SharePoint

En este ejercicio, crearemos una aplicación de Silverlight básica que muestre una lista de SharePoint dentro de una cuadrícula de datos. Los datos de la lista se recuperan desde el servidor para que estén disponibles en Silverlight mediante el modelo de objetos de cliente de SharePoint. Usaremos una solución de Visual Studio 2010 y la implementaremos en el servidor local de SharePoint.

Tarea 1: creación de un proyecto de aplicación de Silverlight

Comenzaremos con la creación de un proyecto de aplicación de Silverlight estándar. 1. Abra Visual Studio 2010 desde Inicio | Todos los programas | Microsoft Visual Studio 2010 |

Microsoft Visual Studio 2010.

2. En el menú, seleccione Archivo | Nuevo | Proyecto.

3. En el cuadro de diálogo Nuevo proyecto, expanda el menú izquierdo Plantillas instaladas para mostrar Otros tipos de proyectos | Soluciones de Visual Studio | Solución en blanco.

4. Seleccione .NET Framework 3.5.

5. Denomine a la solución Begin.

6. Escriba C:\SPHOLS\SPCHOL306\CS\Ex1\ en el cuadro de texto Ubicación.

Figura 47 - Cuadro de diálogo Nuevo proyecto

7. Haga clic en Aceptar para continuar.

8. En el menú, seleccione Archivo | Agregar | Nuevo proyecto.

Page 35: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 35

9. En el cuadro de diálogo Nuevo proyecto, expanda el menú izquierdo Plantillas instaladas para mostrar Visual C# | Silverlight y elija el tipo de proyecto Aplicación de Silverlight en la lista de tipos de proyecto que aparece en la parte central de la pantalla.

10. Seleccione .NET Framework 3.5.

11. Denomine al proyecto SPSilverlightExample.

12. No cambie la ubicación.

Figura 48 - Cuadro de diálogo Agregar nuevo proyecto

13. Haga clic en Aceptar para continuar.

Figura 49 - Cuadro de diálogo de adición de una aplicación de Silverlight

14. Haga clic en Aceptar para crear el proyecto.

Page 36: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 36

15. En el proyecto SPSilverlightExample, agregaremos los ensamblados de referencia al modelo de objetos de cliente de Silverlight de SharePoint. Haga clic con el botón secundario en References en el proyecto SPSilverlightExample y seleccione Agregar referencia.

16. Busque la carpeta “C:\Archivos de programa\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin”.

17. Seleccione Microsoft.SharePoint.ClientSilverlight.dll y Microsoft.SharePoint.Client.Silverlight.Runtime.dll (mantenga presionado CTRL para seleccionar varios archivos).

18. Haga clic en Aceptar para agregar las referencias dll seleccionadas.

Figura 50 - Agregar referencias

Tarea 2: escritura de código para obtener acceso a datos de listas de SharePoint y representarlos

1. En Visual Studio, abra el Cuadro de herramientas y expanda Controles de Silverlight comunes.

2. Arrastre un control DataGrid a la cuadrícula existente en el diseñador de Silverlight de Page.xaml.

Page 37: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 37

Figura 51 - Cuadro de herramientas de controles de Silverlight

3. Expanda la cuadrícula de datos para que ocupe toda la página; para ello, vaya a la cuadrícula de propiedades y establezca las propiedades Width y Height en Auto, las propiedades HorizontalAlignment y VerticalAlignment en Stretch y Margin en 0.

Figura 52 - Propiedades de la cuadrícula de datos

Page 38: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 38

4. También asegúrese de activar AutoGenerateColumns (o de establecer su valor en true en el XAML).

Figura 53 - Propiedad AutoGenerateColumns

5. Abra App.xaml.cs y agregue las siguientes instrucciones using al principio del archivo:

using Microsoft.SharePoint.Client;

using System.Threading;

Fragmento de código: Mis fragmentos de código | spchol306_ex1_app_namespaces

6. Agregue el siguiente código al principio del método Application_Startup.

ApplicationContext.Init(e.InitParams, SynchronizationContext.Current);

Fragmento de código: Mis fragmentos de código | spchol306_ex1_ application_startup

7. Abra MainPage.xaml.cs y agregue la siguiente instrucción using al principio del archivo:

using Microsoft.SharePoint.Client;

Fragmento de código: Mis fragmentos de código | spchol306_ex1_page_namespaces

8. Agregue la siguiente clase antes de la clase MainPage:

public class Project

{

public string Title { get; set; }

public DateTime DueDate { get; set; }

public string Description { get; set; }

}

Fragmento de código: Mis fragmentos de código | spchol306_ex1_ classes

9. Agregue la siguiente variable a la clase MainPage:

private ListItemCollection _projects;

Fragmento de código: Mis fragmentos de código | spchol306_ex1_ property

10. Agregue el siguiente código al constructor Page antes de la llamada a InitializeComponent:

Page 39: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 39

ClientContext context = new ClientContext(ApplicationContext.Current.Url);

context.Load(context.Web);

List Projects = context.Web.Lists.GetByTitle("Projects");

context.Load(Projects);

CamlQuery query = new Microsoft.SharePoint.Client.CamlQuery();

string camlQueryXml = "<View><Query><Where><Gt>" +

"<FieldRef Name='Due_x0020_Date' />" +

"<Value Type='DateTime'>2008-01-1T00:00:00Z</Value>" +

"</Gt></Where></Query><ViewFields>" +

"<FieldRef Name=\"Title\" /><FieldRef Name=\"Description\" />" +

"<FieldRef Name=\"Due_x0020_Date\" />" +

"</ViewFields></View>";

query.ViewXml = camlQueryXml;

_projects = Projects.GetItems(query);

context.Load(_projects);

context.ExecuteQueryAsync(new

ClientRequestSucceededEventHandler(OnRequestSucceeded), null);

Fragmento de código: Mis fragmentos de código | spchol306_ex1_initializecomponent

11. Agregue el siguiente código después del constructor:

private void OnRequestSucceeded(Object sender, ClientRequestSucceededEventArgs

args)

{

// this is not called on the UI thread

Dispatcher.BeginInvoke(BindData);

}

private void BindData()

{

List<Project> projects = new List<Project>();

foreach (ListItem li in _projects)

{

projects.Add(new Project()

{

Title = li["Title"].ToString(),

DueDate = Convert.ToDateTime(li["Due_x0020_Date"].ToString()),

Description = li["Description"].ToString()

});

}

dataGrid1.ItemsSource = projects; // must be on UI thread

}

Fragmento de código: Mis fragmentos de código | spchol306_ex1_methods

El código inicializa el contexto del modelo de objetos de cliente de Silverlight de SharePoint (ClientContext). Posteriormente, obtiene una referencia a la lista de proyectos y ejecuta una consulta CAML simple en la lista para extraer todos los proyectos que tengan una fecha de vencimiento posterior a 1/1/2008. Los resultados se convierten en una lista de proyectos y se enlazan con el control DataGrid de Silverlight.

Page 40: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 40

Tarea 3: implementación y prueba mediante el elemento web de Silverlight de SharePoint

Para implementar la solución en SharePoint, es necesario que el archivo .xap resultante creado por el proyecto de Silverlight se encuentre en la carpeta C:\Archivos de programa\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin.

1. Haga clic con el botón secundario en el proyecto SPSilverlightExample, seleccione las propiedades y, a continuación, la pestaña Generar.

2. Cambie la ruta de acceso de los resultados a C:\Archivos de programa\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin.

Figura 54 - Propiedades del proyecto

3. Genere la solución. El archivo .xap se ha copiado al directorio de SharePoint apropiado y el usuario ya está preparado para agregar el elemento web de Silverlight al sitio web de SharePoint.

4. Abra Internet Explorer y busque http://intranet.contoso.com.

5. Seleccione el icono Editar en la parte superior de la página.

6. Seleccione la pestaña Insertar y, a continuación, haga clic en Elemento web.

7. En la lista de categorías, seleccione Medios y contenido, elija el Elemento web de Silverlight en la lista de elementos web y haga clic en Agregar.

8. En el cuadro de diálogo Elemento web de Silverlight que aparecerá, escriba /_layouts/ClientBin/SPSilverlightExample.xap como la dirección URL.

Page 41: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 41

Figura 55 - Cuadro de diálogo de la dirección URL del elemento web de Silverlight

9. Haga clic en Aceptar para guardar el elemento web de Silverlight.

10. Salga del modo de edición.

11. El elemento web final se verá así en la página de SharePoint:

Figura 56 - Elemento web de Silverlight finalizado

En este ejercicio, ha creado una aplicación de Silverlight básica que muestra una lista de SharePoint dentro de una cuadrícula de datos. Los datos de la lista se recuperan desde el servidor para que estén disponibles en Silverlight mediante el modelo de objetos de cliente de SharePoint.

Page 42: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 42

Ejercicio 4: creación de un gráfico mediante el modelo de objetos de SharePoint y los controles de gráficos de Silverlight

En este ejercicio, volveremos a usar el modelo de objetos de SharePoint para obtener acceso a datos de listas de SharePoint, pero esta vez usaremos LINQ y los controles de gráficos de Silverlight para mostrar los datos en un gráfico.

Tarea 1: creación de un proyecto de aplicación de Silverlight

1. Abra Visual Studio 2010 desde Inicio | Todos los programas | Microsoft Visual Studio 2010 | Microsoft Visual Studio 2010.

2. En el menú, seleccione Archivo | Nuevo | Proyecto.

3. En el cuadro de diálogo Nuevo proyecto, expanda el menú izquierdo Plantillas instaladas para mostrar Otros tipos de proyectos | Soluciones de Visual Studio | Solución en blanco.

4. Denomine a la solución Begin.

5. Cambie la ubicación a C:\SPHOLS\SPCHOL306\CS\Ex2\.

Figura 57 - Cuadro de diálogo Nuevo proyecto

6. Haga clic en Aceptar para continuar.

Page 43: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 43

7. En el menú, seleccione Archivo | Agregar | Nuevo proyecto.

8. En el cuadro de diálogo Nuevo proyecto, expanda el menú izquierdo Plantillas instaladas para mostrar Visual C# | Silverlight y elija el tipo de proyecto Aplicación de Silverlight en la lista de tipos de proyecto que aparece en la parte central de la pantalla.

9. Denomine al proyecto SilverlightEmployeeContributionsGraph.

10. No cambie la ubicación.

Figura 58 - Cuadro de diálogo Agregar nuevo proyecto

Page 44: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 44

11. Haga clic en Aceptar.

Figura 59 - Cuadro de diálogo de adición de una aplicación de Silverlight

12. Haga clic en Aceptar para crear el proyecto.

13. En el proyecto SilverlightEmployeeContributionsGraph, agregaremos los ensamblados de referencia al modelo de objetos de cliente de Silverlight de SharePoint. Haga clic con el botón secundario en References en el proyecto SilverlightEmployeeContributionsGraph y seleccione Agregar referencia.

14. Busque la carpeta C:\Archivos de programa\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin.

15. Seleccione Microsoft.SharePoint.ClientSilverlight.dll y Microsoft.SharePoint.Client.Silverlight.Runtime.dll (mantenga presionado CTRL para seleccionar varios archivos).

16. Haga clic en Aceptar para agregar las referencias dll seleccionadas.

Page 45: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 45

Figura 60 - Agregar referencias

12. Agregue una referencia al ensamblado Controles de gráficos de Silverlight. Se encuentra disponible en la ficha .NET y se denomina System.Windows.Controls.DataVisualization.Toolkit.

Figura 61 - Agregar referencia DataVisualization

Page 46: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 46

Tarea 2: escritura de código para obtener acceso a datos de la lista Employee de SharePoint y mostrarlos en un control de gráficos de Silverlight

1. En el Explorador de soluciones, haga clic con el botón secundario en el archivo App.xaml y seleccione Ver código. Abra App.xaml.cs y agregue las siguientes instrucciones using al principio del archivo:

using Microsoft.SharePoint.Client;

using System.Threading;

Fragmento de código: Mis fragmentos de código | spchol306_ex2_app_namespaces

2. Agregue el siguiente código al principio del método Application_Startup.

ApplicationContext.Init(e.InitParams, SynchronizationContext.Current);

Fragmento de código: Mis fragmentos de código | spchol306_ex2_application_startup

3. En la vista XAML del archivo MainPage.xaml, agregue el siguiente espacio de nombres XML al elemento UserControl:

xmlns:chartingToolkit="clr-

namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Wind

ows.Controls.DataVisualization.Toolkit"

4. Agregue el siguiente control de gráficos de Silverlight al elemento Grid:

<chartingToolkit:Chart x:Name="chart" Width="350" Height="250" Title="Team

Contributions">

<chartingToolkit:Chart.Series>

<chartingToolkit:ColumnSeries ItemsSource="{Binding}"

DependentValuePath="Contributions"

IndependentValuePath="Name"

AnimationSequence="FirstToLast"

Title="Contributions" IsSelectionEnabled="True" />

</chartingToolkit:Chart.Series>

</chartingToolkit:Chart>

Page 47: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 47

Figura 62 - XAML del gráfico de Silverlight

5. Abra MainPage.xaml.cs y agregue la siguiente instrucción using al principio del archivo:

using Microsoft.SharePoint.Client;

Fragmento de código: Mis fragmentos de código | spchol306_ex2_page_namespaces

6. Agregue las siguientes clases antes de la clase MainPage:

public class EmployeeContributions

{

public string Name { get; set; }

public string TeamName { get; set; }

public decimal Contributions { get; set; }

}

public class TeamContributions

{

public string Name { get; set; }

public decimal Contributions { get; set; }

}

Fragmento de código: Mis fragmentos de código | spchol306_ex2_classes

7. Agregue la siguiente variable a la clase MainPage:

private ListItemCollection _employees;

Fragmento de código: Mis fragmentos de código | spchol306_ex2_property

8. Agregue el siguiente código al constructor Page antes de la llamada a InitializeComponent:

Page 48: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 48

ClientContext context = new ClientContext(ApplicationContext.Current.Url);

context.Load(context.Web);

List employees = context.Web.Lists.GetByTitle("Employees");

context.Load(employees);

CamlQuery query = new CamlQuery();

string camlQueryXml = null;

query.ViewXml = camlQueryXml;

_employees = employees.GetItems(query);

context.Load(_employees);

context.ExecuteQueryAsync(new

ClientRequestSucceededEventHandler(OnRequestSucceeded), null);

Fragmento de código: Mis fragmentos de código | spchol306_ex2_initializecomponent

9. Agregue el siguiente código después del constructor:

private void OnRequestSucceeded(Object sender, ClientRequestSucceededEventArgs

args)

{

// this is not called on the UI thread

Dispatcher.BeginInvoke(BindData);

}

private void BindData()

{

List<EmployeeContributions> employees = new List<EmployeeContributions>();

// get list item values into a strongly typed class

foreach (ListItem li in _employees)

{

employees.Add(new EmployeeContributions

{

Name = li["Title"].ToString(),

TeamName = li["Team"].ToString(),

Contributions =

Convert.ToDecimal(li["Contribution_x0020__x0028_in_x00"])

});

}

// use linq to group employees on team name and then total team

contributions

List<TeamContributions> teams = employees

.GroupBy(e => e.TeamName)

.Select(t => new TeamContributions

{

Name = t.Key,

Contributions = t.Sum(e => e.Contributions)

}).ToList();

chart.DataContext = teams; // must be on UI thread

}

Fragmento de código: Mis fragmentos de código | spchol306_ex2_methods

Page 49: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 49

10. Como en el caso del ejercicio anterior, el modelo de objetos de cliente de Silverlight de

SharePoint se usa para recuperar datos de una lista de SharePoint. Después de rellenar los elementos de las contribuciones de los empleados en una lista, se usa LINQ para agrupar los empleados y sumar sus contribuciones. Posteriormente, las contribuciones de los grupos se establecen como el origen de datos del gráfico.

Tarea 3: implementación y prueba mediante el elemento web de Silverlight de SharePoint

Para implementar la solución en SharePoint, es necesario que el archivo .xap resultante creado por el proyecto de Silverlight se encuentre en la carpeta C:\Archivos de programa\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin.

1. Haga clic con el botón secundario en el proyecto SilverlightEmployeeContributionsGraph, seleccione las propiedades y, a continuación, seleccione la pestaña Generar.

2. Cambie la ruta de acceso de los resultados a C:\Archivos de programa\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin.

Figura 63 - Propiedades del proyecto de Silverlight

3. Genere la solución. El archivo .xap se ha copiado al directorio de SharePoint apropiado y el usuario ya está preparado para agregar el elemento web de Silverlight al sitio web de SharePoint.

4. Abra Internet Explorer y busque http://intranet.contoso.com.

Page 50: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 50

5. Actualizaremos el elemento web de Silverlight agregado en el ejercicio anterior para que apunte al nuevo control de gráficos de Silverlight recién creado. Haga clic en el icono desplegable situado en la esquina superior derecha del elemento web de Silverlight y seleccione Editar elemento web.

Figura 64 - Propiedades del elemento web de Silverlight

6. Haga clic en el botón Configurar (es posible que tenga que desplazar la ventana hacia la derecha para verlo) y, a continuación, escriba /_layouts/ClientBin/SilverlightEmployeeContributionsGraph.xap en el cuadro de diálogo Elemento web de Silverlight.

Page 51: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 51

Figura 65 - Dirección URL del elemento web de Silverlight

7. Haga clic en Aceptar.

8. Haga clic en Aceptar en la parte inferior de la barra lateral del elemento web de Silverlight.

Page 52: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 52

9. El elemento web final se verá así:

Figura 66 - Elemento web gráfico de Silverlight finalizado

Page 53: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 53

Ejercicio 5: creación de un elemento web para una solución de espacio aislado

En este ejercicio, crearemos un elemento web que represente y actualice datos de listas implementados como una solución de espacio aislado.

Tarea 1: creación de un proyecto de solución de espacio aislado con un elemento web

Comenzaremos con la creación de un proyecto de aplicación de Silverlight estándar. 1. Abra Visual Studio 2010 desde Inicio | Todos los programas | Microsoft Visual Studio 2010 |

Microsoft Visual Studio 2010.

2. En el menú, seleccione Archivo | Nuevo | Proyecto.

3. En el cuadro de diálogo Nuevo proyecto, expanda el menú izquierdo Plantillas instaladas para mostrar Visual C# | SharePoint | 2010 | Proyecto de SharePoint vacío.

4. Denomine al proyecto SPSolutionDemo.

5. Cambie la ubicación a C:\SPHOLS\SPCHOL307\CS\Ex1\.

Figura 67 - Cuadro de diálogo Nuevo proyecto

Page 54: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 54

6. Haga clic en Aceptar para continuar.

7. En el Asistente para personalizar SharePoint, cambie el sitio local que se va a usar para la depuración a http://intranet.contoso.com/.

8. Deje el nivel de confianza para la solución de SharePoint en Implementar como solución de espacio aislado.

Figura 68 - Paso 1 del Asistente para personalizar SharePoint

9. Haga clic en Finalizar para continuar. Visual Studio creará el nuevo proyecto y agregará los archivos necesarios.

10. Haga clic con el botón secundario en el proyecto SPSolutionDemo en el Explorador de soluciones y seleccione Agregar | Nuevo elemento.

11. Asegúrese de que Visual C# | SharePoint | 2010 | esté seleccionado en el panel Plantillas instaladas.

12. En el cuadro de diálogo Agregar nuevo elemento, seleccione la opción para agregar un nuevo Elemento web y denomínelo SBWebPart.

Page 55: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 55

Figura 69 - Cuadro de diálogo Agregar nuevo elemento

13. Haga clic en Agregar para agregar el elemento web al proyecto.

Tarea 2: adición de código para proporcionar la funcionalidad de consulta y presentación

1. Abra SBWebPart.cs y agregue la siguiente instrucción using después de las demás instrucciones using:

using System.Web.UI.HtmlControls;

Fragmento de código: Mis fragmentos de código | spchol307_ex1_webpart_namespaces

2. Agregue las siguientes variables a la clase SBWebPart:

DropDownList _ddlProjects = new DropDownList();

TextBox _tbDescription = new TextBox();

TextBox _tbDueDate = new TextBox();

Fragmento de código: Mis fragmentos de código | spchol307_ex1_webpart_variables

3. Agregue los siguientes métodos nuevos a la clase SBWebPart:

Page 56: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 56

protected override void OnLoad(EventArgs e)

{

base.OnLoad(e);

if (!Page.IsPostBack)

GetProjectDetails();

}

/* Populate the text boxes with the selected project details */

private void GetProjectDetails()

{

EnsureChildControls();

if (_ddlProjects.SelectedValue != "-- Select a Project --")

{

SPList pList = SPContext.Current.Web.Lists["Projects"];

int nProjectID = Convert.ToInt32(_ddlProjects.SelectedValue);

SPListItem spliProject = pList.GetItemById(nProjectID);

_tbDescription.Text = spliProject["Description"].ToString();

DateTime dueDate = Convert.ToDateTime(spliProject["Due_x0020_Date"]);

_tbDueDate.Text = dueDate.ToShortDateString();

}

else

{

_tbDescription.Text = String.Empty;

_tbDueDate.Text = String.Empty;

}

}

Fragmento de código: Mis fragmentos de código | spchol307_ex1_webpart_getprojectdetails

Page 57: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 57

4. Reemplace el método CreateChildControls existente por el siguiente código:

protected override void CreateChildControls()

{

base.CreateChildControls();

Panel parent = new Panel();

parent.Style.Add("border", "solid 1px Navy");

parent.Style.Add("background-color", "#EEEEEE");

parent.Style.Add("width", "250px");

_ddlProjects.ID = "ddlProjects";

_ddlProjects.AutoPostBack = true;

_ddlProjects.SelectedIndexChanged += new

EventHandler(ddlProjects_SelectedIndexChanged);

PopulateProjects();

parent.Controls.Add(_ddlProjects);

Panel panel = new Panel();

Label label = new Label();

label.Text = "Description";

panel.Controls.Add(label);

parent.Controls.Add(panel);

panel = new Panel();

panel.Controls.Add(_tbDescription);

parent.Controls.Add(panel);

label = new Label();

label.Text = "Due Date";

panel = new Panel();

panel.Controls.Add(label);

parent.Controls.Add(panel);

panel = new Panel();

panel.Controls.Add(_tbDueDate);

parent.Controls.Add(panel);

panel = new Panel();

Button bUpdateProject = new Button();

bUpdateProject.Text = "Update Project";

bUpdateProject.Click += new EventHandler(bUpdateProject_Click);

panel.Controls.Add(bUpdateProject);

parent.Controls.Add(panel);

Controls.Add(parent);

}

Fragmento de código: Mis fragmentos de código | spchol307_ex1_webpart_createchildcontrols

Page 58: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 58

5. Agregue los siguientes métodos debajo de CreateChildControls:

private void PopulateProjects()

{

SPList splProjects = SPContext.Current.Web.Lists["Projects"];

_ddlProjects.Items.Add("-- Select a Project --");

foreach (SPListItem spli in splProjects.Items)

{

_ddlProjects.Items.Add(new ListItem(spli.Title, spli.ID.ToString()));

}

}

void ddlProjects_SelectedIndexChanged(object sender, EventArgs e)

{

GetProjectDetails();

}

/* Update the current project */

void bUpdateProject_Click(object sender, EventArgs e)

{

EnsureChildControls();

int nProjectID = Convert.ToInt32(_ddlProjects.SelectedValue);

SPListItem spliProject =

SPContext.Current.Web.Lists["Projects"].GetItemById(nProjectID);

spliProject["Description"] = _tbDescription.Text;

spliProject["Due_x0020_Date"] = _tbDueDate.Text;

spliProject.Update();

}

Fragmento de código: Mis fragmentos de código | spchol307_ex1_webpart_populateprojects

Tarea 3: generación e implementación de la solución de espacio aislado

Las soluciones de espacio aislado se implementan mediante el sitio web de SharePoint.

1. Haga clic con el botón secundario en el proyecto SBSolutionDemo y seleccione el Paquete para crear un archivo .wsp.

2. Abra Internet Explorer y busque http://intranet.contoso.com.

3. Haga clic en el menú Acciones del sitio y seleccione Configuración del sitio.

4. En la sección Galerías, seleccione Soluciones.

Page 59: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 59

Figura 70 - Galería de soluciones

5. Seleccione la pestaña Soluciones.

6. En la ficha Soluciones, seleccione Cargar solución.

7. En el cuadro de diálogo Cargar solución que aparecerá, busque el archivo .wsp en C:\SPHOLs\SPCHOL307\CS\Ex1\SPSolutionDemo\SPSolutionDemo\bin\Debug\SPSolutionDemo.wsp.

8. Haga clic en Aceptar para cargar SPSolutionDemo.wsp en SharePoint. Deje el cuadro Sobrescribir los archivos existentes activado.

9. Haga clic en Activar en el cuadro de diálogo Activar solución de la Galería de soluciones. El elemento web de solución de espacio aislado ya está listo para usarse.

10. Haga clic en el menú Acciones del sitio y seleccione Más opciones.

11. En la sección Página del cuadro de diálogo Crear, seleccione Página de elementos web. Haga clic en Crear.

12. Denomine a la nueva página de elementos web SBSolutionDemoPage y establezca el Diseño como Página completa, vertical. Establezca la Ubicación en la que desea guardar como Documentos compartidos.

Page 60: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 60

Figura 71 - Nueva página de elementos web

13. Haga clic en Crear para crear la nueva página de elementos web.

14. Seleccione el área central de la nueva página de elementos web y haga clic en la nueva pestaña Insertar que aparecerá en la barra de herramientas superior.

15. Seleccione Elemento web y, a continuación, seleccione Personalizado en las categorías y elija SBWebPart en los elementos web.

16. Haga clic en Agregar para agregar el elemento web de solución de espacio aislado a la página.

17. En la cinta de opciones, haga clic en Página. A continuación, haga clic en Detener la edición en la barra de herramientas

.

Figura 72 - SBWebPart

Page 61: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 61

18. Seleccione Cuenta del sistema en la barra de herramientas en la esquina superior derecha de

la página y elija Iniciar sesión como usuario diferente.

19. Escriba andyj como nombre de usuario y pass@word1 como contraseña.

Figura 73 - Cuadro de diálogo de inicio de sesión de Windows

20. Haga clic en Aceptar.

21. El elemento web de solución de espacio aislado ya está listo para usarse. Seleccione lo que desee ver en la lista desplegable. Cuando finalice, cierre Internet Explorer.

Page 62: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 62

Figura 74 - Elemento web de solución de espacio aislado

Page 63: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 63

Ejercicio 6: creación de una actividad para su uso en un flujo de trabajo de SharePoint Designer

En este ejercicio se muestra cómo crear una actividad personalizada de flujos de trabajo que usa un

flujo de trabajo reutilizable de SharePoint Designer y cómo implementarlos juntos como un único

*.WSP. También se muestra cómo importar ese flujo de trabajo a Visual Studio 2010.

Tarea 1: creación y preparación del proyecto

En esta tarea, creará una solución de proyecto vacío y usará los controles de usuario de SharePoint.

1. Abra Visual Studio 2010; para ello, vaya a Inicio | Todos los programas | Microsoft Visual Studio 2010 | Microsoft Visual Studio 2010.

2. En Visual Studio 2010, cree un proyecto nuevo; para ello, vaya a Archivo | Nuevo | Proyecto.

3. Seleccione la plantilla de proyecto Proyecto de SharePoint vacío de Visual C# | SharePoint | 2010.

4. Escriba SPCHOL305Ex1 en el cuadro de texto Nombre y C:\SPHOLS\SPCHOL305\CS\Ex1 en el cuadro de texto Ubicación.

Figura 75 - Cuadro de diálogo Nuevo proyecto

5. Haga clic en Aceptar.

Page 64: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 64

6. En el Asistente para personalizar SharePoint, cambie la dirección URL a http://intranet.contoso.com y seleccione Implementar como solución de granja de servidores. A continuación, haga clic en Finalizar.

Figura 76 - Asistente para personalizar SharePoint

7. Visual Studio creará el nuevo proyecto SPCHOL305Ex1 y agregará los archivos necesarios.

Tarea 2: creación de una actividad de flujo de trabajo para su uso por el flujo de trabajo reutilizable

1. En Visual Studio 2010, agregue un proyecto nuevo; para ello, vaya a Archivo | Agregar | Nuevo

proyecto.

2. Cambie .NET Framework por .NET Framework 3.5

.

Figura 77 - Establecimiento de la versión de .NET Framework

Page 65: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 65

3. Seleccione la plantilla de proyecto Visual C# | Workflow | Biblioteca de actividades de flujo de trabajo.

4. Escriba SPDActivityDemo en el cuadro de texto Nombre y haga clic en Aceptar.

Figura 78 - Cuadro de diálogo Nuevo proyecto

5. En el Explorador de soluciones, haga clic con el botón secundario en el proyecto

SPDActivityDemo y seleccione Agregar referencia.

6. Cambie a la ficha Examinar. Escriba C:\Archivos de programa\Common Files\Microsoft

Shared\Web Server Extensions\14\ISAPI en el cuadro de texto Nombre de archivo y presione

ENTRAR.

7. Seleccione Microsoft.SharePoint.dll y Microsoft.SharePoint.WorkflowActions.dll y, a

continuación, haga clic en Aceptar.

Page 66: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 66

Figura 79 - Cuadro de diálogo Agregar referencia

8. Haga clic con el botón secundario en Activity1.cs en el Explorador de soluciones y seleccione

Cambiar nombre.

9. Cambie el nombre de Activity1.cs por CreateDocumentLibrary.cs.

Tarea 3: adición de código para crear una biblioteca de documentos basada en los parámetros pasados a la actividad

1. Haga clic con el botón secundario en el archivo CreateDocumentLibrary.cs del Explorador de

soluciones y seleccione Ver código.

2. Cambie la clase base de CreateDocumentLibrary de SequenceActivity a Activity, como se

muestra a continuación.

public partial class CreateDocumentLibrary : Activity

3. Agregue las siguientes instrucciones using al principio del archivo debajo de las instrucciones

using existentes:

Page 67: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 67

using Microsoft.SharePoint; using Microsoft.SharePoint.Workflow; using Microsoft.SharePoint.WorkflowActions;

Fragmento de código: Mis fragmentos de código | spchol305_ex1_createdoclib_namespace

4. Agregue una nueva propiedad de dependencia denominada UrlProperty a la clase

CreateDocumentLibrary.

Esta será la ubicación donde se creará la biblioteca de documentos.

public static DependencyProperty UrlProperty = DependencyProperty.Register("Url",

typeof(string), typeof(CreateDocumentLibrary), new PropertyMetadata(""));

[DescriptionAttribute("Url of base site")]

[BrowsableAttribute(true)]

[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible

)]

[ValidationOption(ValidationOption.Optional)]

public string Url

{

get

{

return ((string)(base.GetValue(CreateDocumentLibrary.UrlProperty)));

}

set

{

base.SetValue(CreateDocumentLibrary.UrlProperty, value);

}

}

Fragmento de código: Mis fragmentos de código | spchol305_ex1_createdoclib_urlproperty

5. Agregue una nueva propiedad de dependencia a la clase CreateDocumentLibrary

denominada DocLibNameProperty.

Este será el nombre de la biblioteca de documentos creada por la actividad.

Page 68: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 68

public static DependencyProperty DocLibNameProperty =

DependencyProperty.Register("DocLibName", typeof(string),

typeof(CreateDocumentLibrary), new PropertyMetadata(""));

[DescriptionAttribute("Used as doc lib name")]

[BrowsableAttribute(true)]

[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible

)]

[ValidationOption(ValidationOption.Optional)]

public string DocLibName

{

get

{

return ((string)(base.GetValue(CreateDocumentLibrary.DocLibNameProperty)));

}

set

{

base.SetValue(CreateDocumentLibrary.DocLibNameProperty, value);

}

}

Fragmento de código: Mis fragmentos de código | spchol305_ex1_createdoclib_doclibproperty

6. Agregue el siguiente código debajo del constructor CreateDocumentLibrary:

protected override ActivityExecutionStatus Execute(ActivityExecutionContext

executionContext)

{

CreateDocLib();

return ActivityExecutionStatus.Closed;

}

private void CreateDocLib()

{

using (SPSite sps = new SPSite(Url))

{

using (SPWeb spw = sps.RootWeb)

{

Guid ID = spw.Lists.Add(DocLibName, DocLibName + " Document Library",

SPListTemplateType.DocumentLibrary);

SPList spdl = spw.Lists[ID];

spdl.OnQuickLaunch = true;

spdl.Update();

}

}

}

Fragmento de código: Mis fragmentos de código | spchol305_ex1_createdoclib_execute

Page 69: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 69

Tarea 4: configuración de la actividad para la implementación

1. Configure la actividad para un nombre seguro. Agregue SPDActivityDemo.snk de la carpeta

Resources (ubicación al principio de este manual) al proyecto SPDActivityDemo.

Figura 80 - Agregar elemento existente

2. Haga clic con el botón secundario en el proyecto SPDActivityDemo en el Explorador de

soluciones y seleccione Propiedades.

3. Haga clic en la pestaña Firma, active Firmar el ensamblado y, a continuación, seleccione

SPDActivityDemo.snk.

Figura 81 - Firma

4. Genere el proyecto (CTRL-MAYÚS-B) y solucione los errores.

5. Haga clic con el botón secundario en el proyecto SPCHOL305Ex1 y, a continuación, en

Agregar, Carpeta asignada de SharePoint

Page 70: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 70

.

Figura 82 - Carpeta asignada de SharePoint

6. Seleccione Template\3082\Workflow en el cuadro de diálogo Agregar carpeta asignada de

SharePoint y seleccione Aceptar.

Page 71: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 71

Figura 83 - Cuadro de diálogo Agregar carpeta asignada de SharePoint

7. En el Explorador de soluciones, expanda la carpeta Workflow agregada recientemente.

8. Haga clic con el botón secundario en la carpeta SPCHOL305Ex1 (si existe) y seleccione Eliminar.

9. Haga clic con el botón secundario en la carpeta Workflow y seleccione Agregar | Nuevo elemento.

10. Seleccione la plantilla Archivo XML, denomine al archivo SPDActivityDemo.ACTIONS y, a continuación, haga clic en Agregar.

Page 72: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 72

Figura 84 - Cuadro de diálogo Agregar nuevo elemento

Page 73: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 73

7. Reemplace el contenido de SPDActivityDemo.ACTIONS por lo siguiente:

<?xml version="1.0" encoding="utf-8"?> <WorkflowInfo> <Actions Sequential="then" Parallel="and"> <Action Name="Create Document Library" ClassName="SPDActivityDemo.CreateDocumentLibrary" Assembly="SPDActivityDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a66e91d2ee2fa8f8" AppliesTo="all" Category="Labs"> <RuleDesigner Sentence="Document Library Name %1 to site %2."> <FieldBind Field="DocLibName" Text="Document Library Name" DesignerType="TextArea" Id="1"/> <FieldBind Field="Url" Text="Url of base site" Id="2" DesignerType="TextArea"/> </RuleDesigner> <Parameters> <Parameter Name="DocLibName" Type="System.String, mscorlib" Direction="In" /> <Parameter Name="Url" Type="System.String, mscorlib" Direction="In" /> </Parameters> </Action> </Actions> </WorkflowInfo>

Fragmento de código: Mis fragmentos de código | spchol305_ex1_workflowactions_xml

8. Genere el proyecto SPDActivityDemo.

Tarea 5: adición de la actividad SPDActivityDemo para su implementación con SPCHOL305Ex1.

1. En el Explorador de soluciones, expanda la carpeta Package en el proyecto SPCHOL305Ex1.

2. Haga doble clic en el archivo Package.package para abrir el diseñador de paquetes.

3. Haga clic en la pestaña Avanzadas en la parte inferior del diseñador.

Figura 85 - Pestaña Avanzadas del paquete

Page 74: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 74

4. Haga clic en el botón Agregar y seleccione Agregar ensamblado desde la salida del

proyecto.

5. En el cuadro de diálogo Agregar ensamblado desde la salida del proyecto, haga clic en el

cuadro combinado Proyecto de origen y seleccione SPDActivityDemo\bin.

Figura 86 - Agregar ensamblado existente desde resultados del proyecto

6. Haga clic en el botón situado debajo de Controles seguros. Dentro de Controles seguros

agregue lo siguiente:

Nombre de ensamblado: SPDActivityDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken= a66e91d2ee2fa8f8 Espacio de nombres: SPDActivityDemo Seguro: Activado Nombre de tipo: *

7. Una vez rellenados los detalles del control seguro, presione ENTRAR para confirmarlos. 8. Haga clic en Aceptar.

Page 75: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 75

Tarea 6: configuración de una característica mediante el diseñador de características

1. Haga clic con el botón secundario en la carpeta Features en el Explorador de soluciones

debajo del proyecto SPCHOL305Ex1 y seleccione Agregar característica.

2. Haga clic con el botón secundario en Feature1 y cambie el nombre a

SPCHOL305Ex1Feature.

3. En el diseñador de características, cambie el ámbito del ámbito SPCHOL305Ex1Feature a

WebApplication.

Figura 87 - Diseñador de características

Tarea 7: adición y codificación de un receptor de características

1. Haga clic con el botón secundario en la característica SPCHOL305Ex1Feature en el Explorador de soluciones y seleccione Agregar receptor de eventos.

2. Agregue una instrucción using al principio del código:

using Microsoft.SharePoint.Administration;

Page 76: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 76

3. Agregue el siguiente código a la declaración de clases de FeatureReceiver: public override void FeatureActivated(SPFeatureReceiverProperties properties) { SPWebApplication wappCurrent = (SPWebApplication)properties.Feature.Parent; SPWebConfigModification modAuthorizedType = new SPWebConfigModification(); modAuthorizedType.Name = "AuthType"; modAuthorizedType.Owner = "SPDActivityDemo"; modAuthorizedType.Path = "configuration/System.Workflow.ComponentModel.WorkflowCompiler/authorizedTypes"; modAuthorizedType.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode; modAuthorizedType.Value = "<authorizedType Assembly=\"SPDActivityDemo, " + "Version=1.0.0.0, Culture=neutral, PublicKeyToken=a66e91d2ee2fa8f8\" " + "Namespace=\"SPDActivityDemo\" TypeName=\"*\" Authorized=\"True\" />"; wappCurrent.WebConfigModifications.Add(modAuthorizedType); wappCurrent.WebService.ApplyWebConfigModifications(); }

Fragmento de código: Mis fragmentos de código | spchol305_ex1_spchol305feature_receiver

4. Genere e implemente el proyecto SPCHOL305Ex1; para ello, haga clic con el botón

secundario en el nombre del proyecto y seleccione Implementar.

Figura 88 - Implementación de la solución

Tarea 8: creación de un flujo de trabajo reutilizable mediante SharePoint Designer

1. Abra SharePoint Designer 2010; para ello, vaya a Inicio | Todos los programas | SharePoint | Microsoft SharePoint Designer 2010

Page 77: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 77

2. Haga clic en Sitios y, a continuación, en Abrir sitio.

Figura 89 - Botón de menú Sitios en SharePoint Designer 2010

Si se le solicitan credenciales, use: Nombre de usuario: Administrator Contraseña: pass@word1

Page 78: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 78

3. Cambie el Nombre de sitio a http://intranet.contoso.com y seleccione Abrir

.

Figura 90 - Cuadro de diálogo Abrir sitio

Page 79: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 79

5. Haga clic en el botón Flujo de trabajo reutilizable y, cuando se le pida, asigne el nombre

SPDWorkflow al flujo de trabajo y, a continuación, haga clic en el botón Aceptar para crear el

flujo de trabajo reutilizable.

Figura 91 - Creación de un flujo de trabajo reutilizable

6. Haga clic en el botón Acción de la cinta de opciones y desplácese hacia abajo hasta Labs y

haga clic en Create Document Library. Nota: esta es la actividad que realizamos previamente

Page 80: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 80

en Visual Studio.

Figura 92 - Adición de acción Crear biblioteca de documentos

Page 81: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 81

7. Haga clic en el Paso 1. En el cuadro situado junto a Nombre de la biblioteca de documentos,

haga clic en el botón Fx.

8. Seleccione Elemento actual como Origen de datos y Título como Campo del origen. A

continuación, haga clic en Aceptar.

Figura 93 - Cuadro de diálogo Búsqueda de cadena

9. Escriba http://intranet.contoso.com como la dirección URL del sitio base.

10. Haga clic en Guardar en la cinta de opciones.

Figura 94 - Configuración de la acción de flujo de trabajo

Page 82: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 82

11. Después de guardar, haga clic en el botón Publicar de la cinta de opciones. Espere hasta que

se publique el flujo de trabajo.

Figura 95 - Publicación del flujo de trabajo

12. Después de guardar, haga clic en Flujos de trabajo en la navegación izquierda.

13. Vuelva a hacer clic en el flujo de trabajo debajo de Flujo de trabajo reutilizable para abrir las

propiedades del flujo de trabajo. Haga clic en Guardar como plantilla para guardar el archivo

.WSP en la lista Biblioteca de activos del sitio de SharePoint.

Figura 96 - Guardar como plantilla

14. Abra un explorador web en http://intranet.contoso.com.

Page 83: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 83

15. Haga clic en Acciones del sitio -> Ver todo el contenido del sitio -> Biblioteca de activos del sitio.

Figura 97 - Biblioteca de activos del sitio

16. Haga clic en el menú desplegable SPDWorkflow y, a continuación, en Enviar a -> Descargar

una copia.

Figura 98 - Descarga del WSP

Page 84: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 84

17. Guarde el WSP en una ubicación a la que pueda obtener acceso en un paso siguiente (como el

escritorio).

Figura 99 - Cuadro de diálogo Guardar como

Tarea 9: importación del flujo de trabajo reutilizable a Visual Studio

1. En Visual Studio 2010, haga clic con el botón secundario en la solución SPCHOL305Ex1 de

la ventana Explorador de soluciones y seleccione Agregar | Nuevo proyecto.

2. Seleccione la plantilla de proyecto Importar flujo de trabajo reutilizable de Visual C# | SharePoint | 2010.

Page 85: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 85

3. Cambie el Nombre a SPDWorkflowImport.

Figura 100 - Cuadro de diálogo Nuevo proyecto

4. Haga clic en Aceptar.

Page 86: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 86

5. Asegúrese de que la dirección URL sea http://intranet.contoso.com. Haga clic en Siguiente.

Figura 101 - Asistente para personalizar SharePoint

Page 87: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 87

6. Cuando se le pregunte qué archivo .WSP desea importar, busque el archivo SPDWorkflow.wsp

que guardó anteriormente. Haga clic en Siguiente.

Figura 102 - Asistente para personalizar SharePoint

7. Haga clic en Finalizar.

Page 88: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 88

Figura 103 - Asistente para personalizar SharePoint

Page 89: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 89

8. Haga doble clic en el paquete del proyecto SPCHOL305Ex1 y agregue la característica Flujos

de trabajo convertidos al paquete.

Figura 104 - Explorador de paquetes de SharePoint

Page 90: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 90

9. Haga clic con el botón secundario en el proyecto SPDWorkflowImport y seleccione Agregar

referencia.

10. Seleccione la referencia de proyecto SPDActivityDemo y haga clic en Aceptar.

Figura 105 - Adición de referencia de ensamblado

11. En el proyecto SPDWorkflowImport , expanda el nodo Workflows\SPDWorkflowFT.

12. Abra Elements.xml.

13. Cambie el nombre del flujo de trabajo a SPDWorkflowFT

.

Figura 106 - Configuración del nombre del flujo de trabajo importado

Page 91: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 91

14. Guarde el proyecto, genere la solución e implemente el proyecto SPCHOL305Ex1.

Tarea 10: asociación del flujo de trabajo con una lista en SharePoint

1. Busque http://intranet.contoso.com.

2. Haga clic en Acciones del sitio | Más opciones.

3. Seleccione Lista personalizada en la lista de elementos.

4. Asigne el nombre Customers a la lista y haga clic en Crear.

5. Abra la Configuración de la lista

.

Figura 107 - Configuración de la lista

6. En Permisos y administración, haga clic en Configuración del flujo de trabajo.

7. Configure el flujo de trabajo de la lista del siguiente modo:

Seleccione una plantilla de flujo de trabajo: SPDWorkflowFT

Escriba un nombre único para este flujo de trabajo: Create Doc Lib for Customer

Seleccione una lista de tareas: Tareas

Seleccione un historial: Historial del flujo de trabajo

Opciones de inicio: Iniciar este flujo de trabajo cuando se cree un nuevo elemento

Page 92: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 92

Figura 108 - Configuración del flujo de trabajo

8. Haga clic en Aceptar.

9. Navegue a la lista Customers y seleccione Elementos | Nuevo elemento.

Figura 109 - Creación de un nuevo elemento

Page 93: SharePoint para desarrolladores

Tutoriales para programadores de SharePoint 2010

Página 93

10. Escriba Northwind como el nombre del cliente y haga clic en Guardar cuando aparezca el

cuadro de diálogo Customers – Nuevo elemento.

Figura 110 - Cuadro de diálogo Nuevo elemento

11. Espere mientras se crea automáticamente una nueva biblioteca de documentos con el mismo

nombre.

Resumen del tutorial

En este tutorial, se repasaron seis escenarios para programadores de SharePoint 2010. Puede practicar en los laboratorios en los que se basaron estos tutoriales en http://msdn.microsoft.com/es-es/sharepoint/ee513147.aspx.