Introducción para el programador de SharePoint Laboratorio práctico Manual del laboratorio SPCHOL307 - Desarrollar soluciones de espacio aislado de SharePoint 2010 en Visual Studio 2010 - VB
Este documento se proporciona tal cual. Es posible que la información y los puntos de vista reflejados en este documento, incluidas la dirección URL y otras referencias a sitios web de Internet, cambien sin previo aviso. El usuario asume el riesgo de su uso. Este documento no proporciona derecho legal alguno sobre ninguna propiedad intelectual de ningún producto de Microsoft. Este documento puede copiarse y usarse para fines internos y de referencia. 2010 Microsoft. Todos los derechos reservados.
Contenido SPCHOL307 - DESARROLLAR SOLUCIONES DE ESPACIO AISLADO DE SHAREPOINT 2010 EN VISUAL STUDIO 2010... 2 Objetivo del laboratorio... 2 Recursos adicionales... 2 Introducción... 2 Iniciar sesión en la máquina virtual... 2 Ubicaciones... 2 Requisitos previos para el laboratorio... 3 Copiar las muestras de código desde un documento de Word... 3 Fragmentos de código... 4 Ejercicio 1: crear un elemento web para una solución de espacio aislado... 5 Tarea 1: crear un proyecto de solución de espacio aislado con un elemento web... 5 Tarea 2: agregar código para proporcionar la funcionalidad de consulta y presentación... 7 Tarea 3: generar e implantar la solución de espacio aislado... 10 Ejercicio 2: crear un elemento web de solución de espacio aislado con código para sobrecargar... 15 Tarea 1: crear un proyecto de solución de espacio aislado con un elemento web... 15 Tarea 2: agregar código para sobrecargar el elemento web de la solución de espacio aislado... 18 Tarea 3: establecer cuotas y límites en SharePoint... 19 Tarea 4: generar e implantar la solución de espacio aislado... 22 Resumen del laboratorio... 25 Página 1
SPCHOL307 - Desarrollar soluciones de espacio aislado de SharePoint 2010 en Visual Studio 2010 Tiempo estimado para completar este laboratorio: 30 minutos Objetivo del laboratorio El objetivo de este laboratorio es aprender a crear un elemento web que represente y actualice datos de lista que se hayan implementado como una solución de espacio aislado. El administrador del sitio puede implementar una solución de espacio aislado en un sitio sin que sea necesaria la intervención del administrador de la granja de servidores. La solución tiene acceso total al sitio inmediato y acceso restringido a los recursos del sistema y demás sitios. Recursos adicionales Este laboratorio incluye los siguientes recursos adicionales: Este manual del laboratorio. Código fuente. SPCHOL307_Manual_VB.docx \Supporting Files\SPCHOL307\Completed\VB\Ex1\ \Supporting Files\SPCHOL307\Completed\VB\Ex2\ Este documento. Código fuente del laboratorio completado en VB. Recursos \Supporting Files\SPCHOL307\Resources\VB\ Recursos varios usados a lo largo de este laboratorio. Introducción Iniciar sesión en la máquina virtual Inicie sesión en la máquina virtual como el usuario siguiente: Nombre de usuario: Administrator Contraseña: pass@word1 Ubicaciones Este laboratorio práctico contiene diversos recursos adicionales en ubicaciones establecidas.de forma predeterminada, se asume que el directorio HOL base es \Supporting Files\SPCHOL307\Resources. La carpeta de trabajo predeterminada para este laboratorio es \SPHOLS\SPCHOL307. Página 2
Requisitos previos para el laboratorio Vaya al directorio HOL base Supporting Files\SPCHOL307\Resources y ejecute el script de PowerShell optimize.ps1: 1. Haga clic con el botón secundario en optimize.ps1 y seleccione Ejecutar con PowerShell: Figura 1 - Ejecutar el script de PowerShell 2. De esta forma se abrirá la ventana de PowerShell para ejecutar el script. Espere mientras PowerShell completa la ejecución del script y cierra la ventana de PowerShell (esto puede tardar varios minutos): Figura 2 - Ventana de PowerShell donde se ejecuta el script Copiar las muestras de código desde un documento de Word Solo será seguro copiar y pegar código desde este documento de Word en Visual Studio para las secciones de código con formato, por ejemplo: Console.WriteLine ( Esto es código seguro! ) Página 3
Es posible que el código que no se encuentre en estas secciones contenga Unicode o caracteres invisibles que no sean código XML o C#/VB válido, por ejemplo: Console.WriteLine ( Esto NO es código seguro!! ) Fragmentos de código También se pueden usar fragmentos de código para insertar el código apropiado en el laboratorio. Para usar el fragmento de código necesario para este laboratorio: Haga clic con el botón secundario en el archivo de código donde desea insertar el fragmento de código. Seleccione Insertar fragmento de código...: Figura 3 - Menú contextual para el código de Visual Studio. Seleccione fragmentos de código en la galería Mis fragmentos de código. Página 4
Ejercicio 1: crear un elemento web para una solución de espacio aislado En este ejercicio, crearemos un elemento web que represente y actualice datos de lista implementados como una solución de espacio aislado. Tarea 1: crear 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 en 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 Plantillas instaladas, en el menú izquierdo, para mostrar Visual Basic SharePoint 2010 Proyecto de SharePoint vacío. 4. Denomine al proyecto SPSolutionDemo. 5. Cambie la ubicación a C:\SPHOLS\SPCHOL307\VB\Ex1\. Figura 4 - Cuadro de diálogo Nuevo proyecto 6. Haga clic en Aceptar para continuar. Página 5
7. En la ventana 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 en espacio aislado. Figura 5 - Paso 1 del Asistente para personalizar SharePoint 9. Haga clic en Finalizar para continuar. 10. Haga clic con el botón secundario en el proyecto SPSolutionDemo y seleccione Agregar Nuevo elemento. Página 6
11. En el cuadro de diálogo Agregar nuevo elemento, seleccione la opción para agregar un nuevo Elemento web y denomínelo SBWebPart. Figura 6 - Cuadro de diálogo Agregar nuevo elemento 12. Haga clic en Agregar para agregar el elemento web al proyecto. Tarea 2: agregar código para proporcionar la funcionalidad de consulta y presentación 1. En el archivo SBWebPart.vb, agregue la siguiente la instrucción Imports después del resto de instrucciones Imports: Imports 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: Private _ddlprojects As DropDownList = New DropDownList() Private _tbdescription As TextBox = New TextBox() Private _tbduedate As TextBox = New TextBox() Fragmento de código: Mis fragmentos de código spchol307_ex1_webpart_variables Página 7
3. Agregue los siguientes métodos nuevos a la clase SBWebPart: Protected Overrides Sub OnLoad(ByVal e As EventArgs) MyBase.OnLoad(e) If Not Page.IsPostBack Then GetProjectDetails() End If End Sub Private Sub GetProjectDetails() EnsureChildControls() If _ddlprojects.selectedvalue <> "-- Seleccionar un proyecto --" Then Dim list As SPList = SPContext.Current.Web.Lists.Item("Proyectos") Dim id As Integer = Convert.ToInt32(_ddlProjects.SelectedValue) Dim itembyid As SPListItem = list.getitembyid(id) _tbdescription.text = itembyid.item("descripción").tostring _tbduedate.text = Convert.ToDateTime(itemById.Item("Due_x0020_Date")).ToShortDateString Else _tbdescription.text = String.Empty _tbduedate.text = String.Empty End If End Sub Fragmento de código: Mis fragmentos de código spchol307_ex1_webpart_getprojectdetails Página 8
4. Reemplace el método CreateChildControls existente por el siguiente código: Protected Overrides Sub CreateChildControls() MyBase.CreateChildControls() Dim parent As 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 AddHandler _ddlprojects.selectedindexchanged, New EventHandler(AddressOf ddlprojects_selectedindexchanged) PopulateProjects() parent.controls.add(_ddlprojects) Dim panel As New Panel Dim label As New Label label.text = "Descripción" panel.controls.add(label) parent.controls.add(panel) panel = New Panel panel.controls.add(_tbdescription) parent.controls.add(panel) label = New Label label.text = "Fecha de vencimiento" 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 Dim button As New Button button.text = "Actualizar proyecto" AddHandler button.click, New EventHandler(AddressOf bupdateproject_click) panel.controls.add(button) parent.controls.add(panel) Controls.Add(parent) End Sub Fragmento de código: Mis fragmentos de código spchol307_ex1_webpart_createchildcontrols Página 9
5. Agregue los siguientes métodos debajo de CreateChildControls: Private Sub PopulateProjects() Dim splprojects As SPList = SPContext.Current.Web.Lists.Item("Proyectos") _ddlprojects.items.add("-- Seleccionar un proyecto --") Dim item As SPListItem For Each item In splprojects.items _ddlprojects.items.add(new ListItem(item.Title, item.id.tostring)) Next End Sub Private Sub ddlprojects_selectedindexchanged(byval sender As Object, ByVal e As EventArgs) GetProjectDetails() End Sub Private Sub bupdateproject_click(byval sender As Object, ByVal e As EventArgs) EnsureChildControls() Dim nprojectid As Integer = Convert.ToInt32(_ddlProjects.SelectedValue) Dim spliproject As SPListItem = SPContext.Current.Web.Lists.Item("Proyectos").GetItemById(nProjectID) spliproject.item("descripción") = _tbdescription.text spliproject.item("due_x0020_date") = _tbduedate.text spliproject.update() End Sub Fragmento de código: Mis fragmentos de código spchol307_ex1_webpart_populateprojects Tarea 3: generar e implantar 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 vaya a http://intranet.contoso.com. 3. Haga clic en el menú Acciones del sitio y seleccione Configuración del sitio. Página 10
4. En la sección Galerías, seleccione Soluciones. Figura 7 - Galería de soluciones 5. Seleccione la pestaña Soluciones. 6. En la pestaña Soluciones, seleccione Cargar solución. 7. En el cuadro de diálogo Cargar documento que aparecerá, busque el archivo.wsp en C:\SPHOLs\SPCHOL307\VB\Ex1\SBSolutionDemo\SBSolutionDemo\bin\Debug\SBSolutionDe mo.wsp. 8. Haga clic en Aceptar para cargar SPSolutionDemo.wsp en SharePoint. 9. Haga clic en Activar en el cuadro de diálogo Activar solución. 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. Página 11
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 en Documentos compartidos. Figura 8 - 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, Varios, en las categorías y elija SBWebPart en elementos web. 16. Haga clic en Agregar para agregar el elemento web de solución de espacio aislado a la página. Página 12
17. Haga clic en Detener la edición en la barra de herramientas. Figura 9 - SBWebPart 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 10 - Cuadro de diálogo de inicio de sesión de Windows 20. Haga clic en Aceptar. Página 13
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. Figura 11 - Elemento web de solución de espacio aislado Página 14
Ejercicio 2: crear un elemento web de solución de espacio aislado con código para sobrecargar En el ejercicio dos, volveremos a crear un elemento web de solución de espacio aislado. Este elemento web se diseñará para que use gran cantidad de recursos de la CPU con el fin de probar el sistema de cuota de recursos de SharePoint. Tarea 1: crear 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 en 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 Plantillas instaladas, en el menú izquierdo, para mostrar Visual Basic SharePoint 2010 Proyecto de SharePoint vacío. 4. Asigne al proyecto el nombre SBSolutionOverload. 5. Cambie la ubicación a C:\SPHOLS\SPCHOL307\VB\Ex2\. Figura 12 - Cuadro de diálogo Nuevo proyecto 6. Haga clic en Aceptar para continuar. Página 15
7. Cambie el sitio local que se usa 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 en espacio aislado. Figura 13 - Paso 1 del Asistente para personalizar SharePoint 9. Haga clic en Finalizar para continuar. 10. Haga clic con el botón secundario en el proyecto SBSolutionOverload y seleccione Agregar Nuevo elemento. Página 16
11. En el cuadro de diálogo Agregar nuevo elemento, seleccione la opción para agregar un nuevo Elemento web y denomínelo SBWebPart. Figura 14 - Cuadro de diálogo Agregar nuevo elemento 12. Haga clic en Agregar para agregar el elemento web al proyecto. Página 17
Tarea 2: agregar código para sobrecargar el elemento web de la solución de espacio aislado El elemento web que se va a crear tendrá un botón, un cuadro de texto y una etiqueta. Si se hace clic en el botón SharePoint comenzará a funcionar durante el número de segundos que se especifique en el cuadro de texto. 1. Abra SBWebPart.vb y reemplace el método CreateChildControls con el código siguiente: Private _lbl As New Label Private _txt As New TextBox Private _child As New Button Protected Overrides Sub CreateChildControls() MyBase.CreateChildControls() _child.text = "Mostrar todas las listas" AddHandler _child.click, New EventHandler(AddressOf child_click) Controls.Add(_txt) Controls.Add(_child) Controls.Add(_lbl) End Sub Private Sub child_click(byval sender As Object, ByVal e As EventArgs) Dim dt As DateTime = DateTime.Now Do Dim allwebs As SPWebCollection = SPContext.Current.Site.AllWebs Dim web As SPWeb For Each web In allwebs Dim lists As SPListCollection = web.lists Dim list As SPList For Each list In lists _lbl.text = (_lbl.text & "<br>" & list.title) Next Next Loop While (dt.addseconds(cdbl(integer.parse(_txt.text))).compareto(datetime.now) > 0) End Sub Fragmento de código: Mis fragmentos de código spchol307_ex2_webpart_createchildcontrols Página 18
Tarea 3: establecer cuotas y límites en SharePoint Con SharePoint, puede configurar cuotas y límites en las soluciones de espacio aislado. Vamos a entrar en el sitio de Administración central y a configurar una cuota para aplicaciones web. 1. Abra Internet Explorer y vaya a http://demo2010a:2010/. Figura 15 - Página de Administración central 2. En la página principal de Administración central, seleccione Administración de aplicaciones. 3. En la sección Colecciones de sitios, seleccione Especificar plantillas de cuota. 4. Seleccione el botón de opción Crear una nueva plantilla de cuota y asigne a la plantilla nueva el nombre SBSolutionOverloadTemplate. 5. Establezca el límite de almacenamiento del sitio en un máximo de 200 megabytes y el correo de advertencia sobre almacenamiento en 10. 6. Active la casilla de verificación en la sección Soluciones de espacio aislado con límites de código. Página 19
7. Establezca el límite de uso máximo por día en 5 puntos y el correo electrónico de advertencia en 5 puntos. Figura 16 - Página Plantillas de cuota 8. Haga clic en Aceptar para crear la plantilla de cuota. 9. En la página Administración de aplicaciones, en la sección Colecciones de sitios, seleccione Configurar cuotas y bloqueos. 10. Haga clic en el vínculo desplegable Colección de sitios y seleccione Cambiar colección de sitios. 11. Haga clic en el vínculo desplegable Aplicación web y seleccione Cambiar aplicación web. Página 20
12. En el cuadro de diálogo Seleccionar aplicación web, seleccione http://intranet.contoso.com. Figura 17 - Cuadro de diálogo Seleccionar aplicación web 13. En el cuadro de diálogo Seleccionar aplicación web, seleccione http://intranet.contoso.com y haga clic en Aceptar. 14. En la lista desplegable Plantilla de cuota actual, elija SBSolutionOverloadTemplate. Figura 18 - Página Bloqueos y cuotas de colección de sitios 15. Haga clic en Aceptar para establecer la información sobre la cuota de la colección de sitios. Página 21
Tarea 4: generar e implantar la solución de espacio aislado Las soluciones de espacio aislado se implementan mediante el sitio web de SharePoint. 1. Vuelva a Visual Studio, haga clic con el botón secundario en el proyecto SBSolutionOverload y seleccione el Paquete para crear un archivo.wsp. 2. Abra Internet Explorer y vaya a 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. En la parte superior izquierda, haga clic en Soluciones (aunque ya se encuentra en esa página, se abrirá una cinta de opciones adicional). Figura 19 - Página Galería de soluciones 5. En la página Soluciones, seleccione Cargar solución. 6. En el cuadro de diálogo Cargar documento que aparecerá, busque el archivo.wsp en C:\SPHOLs\SPCHOL307\VB\Ex2\SBSolutionOverload\SBSolutionOverload\bin\Debug\SBSolu tionoverload.wsp. 7. Haga clic en Aceptar para cargar SBSolutionOverload.wsp en SharePoint. Página 22
8. Haga clic en Activar en el cuadro de diálogo Activar solución. El elemento web de solución de espacio aislado ya está listo para usarse. 9. Haga clic en el menú Acciones del sitio y seleccione Más opciones. 10. En la sección Página seleccione Página de elementos web. 11. Asigne a la nueva página de elementos web el nombre SBSolutionOverloadPage y establezca el Diseño como Página completa, vertical. Establezca la Ubicación en la que desea guardar en Documentos compartidos. Figura 20 - Nueva página de elementos web 12. Haga clic en Crear para crear la nueva página de elementos web. 13. 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. 14. Seleccione Elemento web y, a continuación, seleccione Personalizado en las categorías y elija SBWebPart en los elementos web. 15. Haga clic en Agregar para agregar el elemento web de solución de espacio aislado a la página. 16. Haga clic en Detener la edición en la barra de herramientas. Página 23
17. El elemento web de solución de espacio aislado ya está listo para usarse. Figura 21 - Elemento web de sobrecarga para la solución de espacio aislado 18. Especifique en el cuadro de texto el número de segundos durante los que desea que funcione el elemento web y, a continuación, haga clic en Mostrar todas las listas. Si se especifica una cifra elevada en el cuadro de texto, SharePoint detendrá la ejecución del elemento web. Figura 22 - Tiempo de espera del elemento web de sobrecarga Página 24
Resumen del laboratorio En este laboratorio, ha realizado los ejercicios siguientes: Crear un elemento web de solución de espacio aislado que leyera desde el sitio web local y se actualizara en el mismo. Desarrollar un elemento web de solución de espacio aislado. Configurar cuotas y límites para un elemento web de SharePoint. Crear una elemento web de solución de espacio aislado que sobrepasara las cuotas y se deshabilitara por ello. Página 25