Tutorial: Llamar al modelo de objetos de cliente de SharePoint en una extensión de explorador de servidoresWalkthrough: Calling into the SharePoint client object model in a Server Explorer extension

Este tutorial muestra cómo llamar al modelo de objetos de cliente de SharePoint desde una extensión para el conexiones de SharePoint nodo Explorador de servidores.This walkthrough demonstrates how to call the SharePoint client object model from an extension for the SharePoint Connections node in Server Explorer. Para obtener más información sobre cómo usar el modelo de objetos de cliente de SharePoint, vea llamar a los modelos de objetos de SharePoint.For more information about how to use the SharePoint client object model, see Call into the SharePoint object models.

En este tutorial se muestran las siguientes tareas:This walkthrough demonstrates the following tasks:

  • Creación de un Visual StudioVisual Studio extensión que extiende el conexiones de SharePoint nodo de Explorador de servidores de las maneras siguientes:Creating a Visual StudioVisual Studio extension that extends the SharePoint Connections node of Server Explorer in the following ways:

    • La extensión se agrega un Galería de elementos Web nodo en cada nodo de sitio de SharePoint en Explorador de servidores.The extension adds a Web Part Gallery node under each SharePoint site node in Server Explorer. Este nuevo nodo contiene nodos secundarios que representan cada elemento Web en la Galería de elementos Web en el sitio.This new node contains child nodes that represent each Web Part in the Web Part gallery on the site.

    • La extensión define un nuevo tipo de nodo que representa una instancia del elemento Web.The extension defines a new type of node that represents a Web Part instance. Este nuevo tipo de nodo es la base para los nodos secundarios en la nueva Galería de elementos Web nodo.This new node type is the basis for the child nodes under the new Web Part Gallery node. El nuevo tipo de nodo de elemento Web muestra información en el propiedades ventana acerca del elemento Web que representa el nodo.The new Web Part node type displays information in the Properties window about the Web Part that the node represents.

  • Creación de un paquete de extensión de Visual Studio (VSIX) para implementar la extensión.Building a Visual Studio Extension (VSIX) package to deploy the extension.

  • Depurar y probar la extensión.Debugging and testing the extension.

Note

La extensión que se crea en este tutorial se parece a la extensión que se crea en Tutorial: Extender el Explorador de servidores para mostrar elementos web.The extension that you create in this walkthrough resembles the extension that you create in Walkthrough: Extend Server Explorer to display web parts. En este tutorial usa el modelo de objetos de servidor de SharePoint, pero en este tutorial se lleva a cabo las mismas tareas utilizando el modelo de objetos de cliente.That walkthrough uses the SharePoint server object model, but this walkthrough accomplishes the same tasks by using the client object model.

Requisitos previosPrerequisites

Necesitará los componentes siguientes en el equipo de desarrollo para completar este tutorial:You need the following components on the development computer to complete this walkthrough:

  • Ediciones compatibles de Windows, SharePoint y Visual Studio.Supported editions of Windows, SharePoint, and Visual Studio.

  • Visual Studio SDK.The Visual Studio SDK. Este tutorial utiliza el proyecto VSIX plantilla en el SDK para crear un paquete VSIX para implementar la extensión.This walkthrough uses the VSIX Project template in the SDK to create a VSIX package to deploy the extension. Para obtener más información, consulte extender las herramientas de SharePoint en Visual Studio.For more information, see Extend the SharePoint tools in Visual Studio.

El conocimiento de los siguientes conceptos es útil, aunque no necesario, para completar el tutorial.Knowledge of the following concepts is helpful, but not required, to complete the walkthrough:

Crear los proyectosCreate the projects

Para completar este tutorial, debe crear dos proyectos:To complete this walkthrough, you must create two projects:

  • Un proyecto VSIX para crear el paquete VSIX para implementar la Explorador de servidores extensión.A VSIX project to create the VSIX package to deploy the Server Explorer extension.

  • Un proyecto de biblioteca de clases que implementa el Explorador de servidores extensión.A class library project that implements the Server Explorer extension.

    Comience el tutorial creando ambos proyectos.Start the walkthrough by creating the projects.

Para crear el proyecto VSIXTo create the VSIX project

  1. Inicie Visual StudioVisual Studio.Start Visual StudioVisual Studio.

  2. En la barra de menús, elija Archivo > Nuevo > Proyecto.On the menu bar, choose File > New > Project.

  3. En el nuevo proyecto cuadro de diálogo, expanda el Visual C# o Visual Basic nodos y, a continuación, elija extensibilidad.In the New Project dialog box, expand the Visual C# or Visual Basic nodes, and then choose Extensibility.

    Note

    El extensibilidad nodo está disponible solo si instala el SDK de Visual Studio.The Extensibility node is available only if you install the Visual Studio SDK. Para obtener más información, vea la sección Requisitos previos, anteriormente en este tema.For more information, see the prerequisites section earlier in this topic.

  4. En la parte superior del cuadro de diálogo, elija .NET Framework 4.5 en la lista de versiones de .NET Framework.At the top of the dialog box, choose .NET Framework 4.5 in the list of versions of the .NET Framework.

    Extensiones de herramientas de SharePoint requieren características de esta versión de .NET Framework.SharePoint tool extensions require features in this version of the .NET Framework.

  5. Elija la proyecto VSIX plantilla.Choose the VSIX Project template.

  6. En el nombre , escriba NodoElementoWeby, a continuación, elija el Aceptar botón.In the Name box, type WebPartNode, and then choose the OK button.

    Visual StudioVisual Studio Agrega el NodoElementoWeb proyecto a el Explorador de soluciones. adds the WebPartNode project to Solution Explorer.

Para crear la extensión de proyectoTo create the extension project

  1. En el Explorador de soluciones, abra el menú contextual del nodo de solución, elija agregary, a continuación, elija nuevo proyecto.In Solution Explorer, open the shortcut menu for the solution node, choose Add, and then choose New Project.

  2. En el nuevo proyecto cuadro de diálogo, expanda el Visual C# o Visual Basic nodos y, a continuación, elija Windows.In the New Project dialog box, expand the Visual C# or Visual Basic nodes, and then choose Windows.

  3. En la parte superior del cuadro de diálogo, elija .NET Framework 4.5 en la lista de versiones de .NET Framework.At the top of the dialog box, choose .NET Framework 4.5 in the list of versions of the .NET Framework.

  4. En la lista de plantillas de proyecto, elija biblioteca de clases.In the list of project templates, choose Class Library.

  5. En el nombre , escriba ExtensiónNodoElementoWeby, a continuación, elija el Aceptar botón.In the Name box, enter WebPartNodeExtension, and then choose the OK button.

    Visual StudioVisual Studio Agrega el ExtensiónNodoElementoWeb proyecto a la solución y abre el archivo de código predeterminado Class1. adds the WebPartNodeExtension project to the solution and opens the default Class1 code file.

  6. Elimine el archivo de código Class1 del proyecto.Delete the Class1 code file from the project.

Configurar el proyecto de extensiónConfigure the extension project

Antes de escribir código para crear la extensión, debe agregar los archivos de código y las referencias de ensamblado al proyecto, y debe actualizar el espacio de nombres predeterminado.Before you write code to create the extension, you must add code files and assembly references to your project, and you must update the default namespace.

Para configurar el proyectoTo configure the project

  1. En el ExtensiónNodoElementoWeb del proyecto, agregue dos archivos de código que se denominan SiteNodeExtension y WebPartNodeTypeProvider.In the WebPartNodeExtension project, add two code files that are named SiteNodeExtension and WebPartNodeTypeProvider.

  2. Abra el menú contextual del proyecto ExtensiónNodoElementoWeb y, a continuación, elija Agregar referencia.Open the shortcut menu for the WebPartNodeExtension project, and then choose Add Reference.

  3. En el Administrador de referencias - ExtensiónNodoElementoWeb diálogo cuadro, elija el Framework nodo y, a continuación, seleccione las casillas de verificación para los System.ComponentModel.Composition y System.Windows.Forms ensamblados.In the Reference Manager - WebPartNodeExtension dialog box, choose the Framework node, and then select the check boxes for the System.ComponentModel.Composition and System.Windows.Forms assemblies.

  4. Elija la extensiones nodo, seleccione la casilla de verificación para cada uno de los ensamblados siguientes y, a continuación, elija el Aceptar botón:Choose the Extensions node, select the check box for each of the following assemblies, and then choose the OK button:

    • Nombre Microsoft.SharePoint.ClientMicrosoft.SharePoint.Client

    • Microsoft.SharePoint.Client.RuntimeMicrosoft.SharePoint.Client.Runtime

    • Microsoft.VisualStudio.SharePointMicrosoft.VisualStudio.SharePoint

  5. Abra el menú contextual para el ExtensiónNodoElementoWeb del proyecto y, a continuación, elija propiedades.Open the shortcut menu for the WebPartNodeExtension project, and then choose Properties.

    Se abrirá el Diseñador de proyectos.The Project Designer opens.

  6. Pulse la pestaña Aplicación.Choose the Application tab.

  7. En el espacio de nombres predeterminado cuadro (C#) o espacio de nombres raíz (Visual Basic), escriba ServerExplorer.SharePointConnections.NodoElementoWeb.In the Default namespace box (C#) or Root namespace box (Visual Basic), enter ServerExplorer.SharePointConnections.WebPartNode.

Crear iconos para los nuevos nodosCreate icons for the new nodes

Cree dos iconos para el Explorador de servidores extensión: un icono para el nuevo Galería de elementos Web nodo y otro icono para cada nodo secundario del elemento Web la Galería de elementos Web nodo.Create two icons for the Server Explorer extension: an icon for the new Web Part Gallery node and another icon for each child Web Part node under the Web Part Gallery node. Más adelante en este tutorial, escribirá código que asocie estos iconos a los nodos.Later in this walkthrough, you'll write code that associates these icons with the nodes.

Para crear iconos para los nodosTo create icons for the nodes

  1. En el Diseñador de proyectos para el proyecto ExtensiónNodoElementoWeb, elija el recursos ficha.In the Project Designer for the WebPartNodeExtension project, choose the Resources tab.

  2. Elija el vínculo este proyecto no contiene un archivo de recursos predeterminado. Haga clic aquí para crear uno.Choose the link This project does not contain a default resources file. Click here to create one.

    Visual Studio crea un archivo de recursos y lo abre en el diseñador.Visual Studio creates a resource file and opens it in the designer.

  3. En la parte superior del diseñador, elija la flecha situada en la Agregar recurso menú de comandos y, a continuación, elija Agregar nuevo icono.At the top of the designer, choose the arrow on the Add Resource menu command, and then choose Add New Icon.

  4. Escriba WebPartsNode para el icono nuevo nombre y, a continuación, elija el agregar botón.Enter WebPartsNode for the new icon name, and then choose the Add button.

    El nuevo icono se abre en el Editor de imágenes.The new icon opens in the Image Editor.

  5. Editar la versión 16 x 16 del icono para que tenga un diseño que pueda reconocer fácilmente.Edit the 16x16 version of the icon so that it has a design that you can easily recognize.

  6. Abra el menú contextual para la versión de 32 x 32 del icono y, a continuación, elija Eliminar tipo de imagen.Open the shortcut menu for the 32x32 version of the icon, and then choose Delete Image Type.

  7. Repita los pasos del 3 al 7 para agregar un segundo icono a los recursos del proyecto y el nombre de este icono WebPart.Repeat steps 3 through 7 to add a second icon to the project resources, and name this icon WebPart.

  8. En el Explorador de soluciones, en el recursos carpeta para el ExtensiónNodoElementoWeb del proyecto, elija NodoElementoWeb.ico.In Solution Explorer, in the Resources folder for the WebPartNodeExtension project, choose WebPartsNode.ico.

  9. En el propiedades ventana, abra el acción de compilación lista y, a continuación, elija recurso incrustado.In the Properties window, open the Build Action list, and then choose Embedded Resource.

  10. Repita los dos últimos pasos para ElementoWeb.ico.Repeat the last two steps for WebPart.ico.

Cree una clase que agrega el nuevo Galería de elementos Web nodo para cada nodo de sitio de SharePoint.Create a class that adds the new Web Part Gallery node to each SharePoint site node. Para agregar el nuevo nodo, la clase implementa la IExplorerNodeTypeExtension interfaz.To add the new node, the class implements the IExplorerNodeTypeExtension interface. Implemente esta interfaz cuando desee extender el comportamiento de un nodo existente en Explorador de servidores, como agregar un nuevo nodo secundario a un nodo.Implement this interface whenever you want to extend the behavior of an existing node in Server Explorer, such as adding a new child node to a node.

  1. Pegue el código siguiente en el SiteNodeExtension archivo de código para el ExtensiónNodoElementoWeb proyecto.Paste the following code into the SiteNodeExtension code file for the WebPartNodeExtension project.

    Note

    Tras agregar este código, el proyecto tendrá algunos errores de compilación.After you add this code, the project will have some compile errors. Estos errores desaparecerán al agregar código en pasos posteriores.These errors will go away when you add code in later steps.

    using System.Collections.Generic;
    using System.ComponentModel.Composition;
    using Microsoft.VisualStudio.SharePoint.Explorer;
    
    namespace ServerExplorer.SharePointConnections.WebPartNode
    {
        // Enables Visual Studio to discover and load this extension.
        [Export(typeof(IExplorerNodeTypeExtension))]        
    
        // Indicates that this class extends SharePoint site nodes in Server Explorer.
        [ExplorerNodeType(ExplorerNodeTypes.SiteNode)]
    
        // Represents an extension of SharePoint site nodes in Server Explorer.
        internal class SiteNodeExtension : IExplorerNodeTypeExtension
        {
            public void Initialize(IExplorerNodeType nodeType)
            {
                // The NodeChildrenRequested event is raised when the user expands the
                // SharePoint site node in Server Explorer.
                nodeType.NodeChildrenRequested += NodeChildrenRequested;
            }
    
            // Creates the new Web Part Gallery node with the specified icon.
            private void NodeChildrenRequested(object sender, ExplorerNodeEventArgs e)
            {
                // The CreateWebPartNodes argument is a delegate that Visual Studio calls 
                // to create the child nodes under the Web Part Gallery node.
                e.Node.ChildNodes.AddFolder("Web Part Gallery",
                    Properties.Resources.WebPartsNode.ToBitmap(), CreateWebPartNodes);
            }
    
            // Creates all of the individual Web Part nodes under the new Web Part Gallery node.
            private void CreateWebPartNodes(IExplorerNode parentNode)
            {
                // Call the custom SharePoint command to get items from the Web Part gallery.
                var webParts = parentNode.Context.SharePointConnection.ExecuteCommand<WebPartNodeInfo[]>(
                    WebPartCommandIds.GetWebParts);
    
                if (webParts != null)
                {
                    foreach (WebPartNodeInfo webPart in webParts)
                    {
                        // Create a new annotation object to store the current Web Part item with the new node.
                        var annotations = new Dictionary<object, object>() 
                        { 
                            { typeof(WebPartNodeInfo), webPart } 
                        };
    
                        // Create the new node for the current Web Part item.
                        parentNode.ChildNodes.Add(WebPartNodeTypeProvider.WebPartNodeTypeId,
                            webPart.Name, annotations);
                    }
                }
            }
        }
    }
    
    Imports System.Collections.Generic
    Imports System.ComponentModel.Composition
    Imports Microsoft.SharePoint.Client
    Imports Microsoft.VisualStudio.SharePoint
    Imports Microsoft.VisualStudio.SharePoint.Explorer
    
    Namespace ServerExplorer.SharePointConnections.WebPartNode
    
        ' Export attribute: Enables Visual Studio to discover and load this extension.
        ' ExplorerNodeType attribute: Indicates that this class extends SharePoint site nodes in Server Explorer.
        ' SiteNodeExtension class: Represents an extension of SharePoint site nodes in Server Explorer.
        <Export(GetType(IExplorerNodeTypeExtension))> _
        <ExplorerNodeType(ExplorerNodeTypes.SiteNode)> _
        Friend Class SiteNodeExtension
            Implements IExplorerNodeTypeExtension
    
            Private siteUrl As System.Uri = Nothing
    
            Private Sub Initialize(ByVal nodeType As IExplorerNodeType) _
                Implements IExplorerNodeTypeExtension.Initialize
    
                ' The NodeChildrenRequested event is raised when the user expands the
                ' SharePoint site node in Server Explorer.
                AddHandler nodeType.NodeChildrenRequested, AddressOf NodeChildrenRequested
            End Sub
    
            ' Creates the new Web Part Gallery node with the specified icon.
            Private Sub NodeChildrenRequested(ByVal Sender As Object, ByVal e As ExplorerNodeEventArgs)
    
                ' Get the site URL so that it can be used later to access the site
                ' by using the SharePoint client object model.
                siteUrl = e.Node.Context.SiteUrl
    
                ' The CreateWebPartNodes argument is a delegate that Visual Studio calls 
                ' to create the child nodes under the Web Part Gallery node.
                e.Node.ChildNodes.AddFolder("Web Part Gallery", My.Resources.WebPartsNode.ToBitmap(), _
                    AddressOf CreateWebPartNodes)
            End Sub
    
            ' Creates individual Web Part nodes under the new Web Part Gallery node.
            Private Sub CreateWebPartNodes(ByVal parentNode As IExplorerNode)
    
                ' Use the SharePoint client object model to get items from the Web Part gallery.
                Dim Context As ClientContext = New ClientContext(siteUrl.AbsoluteUri)
                Dim WebPartsGallery As List = Context.Web.GetCatalog(CType(ListTemplateType.WebPartCatalog, Integer))
                Dim WebParts As ListItemCollection = WebPartsGallery.GetItems(New CamlQuery())
    
                ' Request the FieldValuesAsText property values with the Web Part items.
                Context.Load(WebParts, Function(listItems) listItems.Include(Function(i) i.FieldValuesAsText))
                Context.ExecuteQuery()
    
                If WebParts IsNot Nothing Then
                    For Each WebPart As ListItem In WebParts
    
                        ' Create a new annotation object to store the current Web Part item with the new node.
                        Dim Annotations = New Dictionary(Of Object, Object)()
                        Annotations.Add(GetType(ListItem), WebPart)
    
                        ' Create the new node for the current Web Part item.
                        parentNode.ChildNodes.Add(WebPartNodeTypeProvider.WebPartNodeTypeId, _
                            WebPart.FieldValuesAsText.FieldValues("Title"), Annotations)
                    Next
                End If
            End Sub
        End Class
    End Namespace
    

Definir un tipo de nodo que representa un elemento webDefine a node type that represents a web part

Cree una clase que define un nuevo tipo de nodo que representa un elemento Web.Create a class that defines a new type of node that represents a Web Part. Visual Studio usa este nuevo tipo de nodo para mostrar los nodos secundarios bajo el Galería de elementos Web nodo.Visual Studio uses this new node type to display child nodes under the Web Part Gallery node. Cada uno de estos nodos secundarios representa un único elemento Web en el sitio de SharePoint.Each of these child nodes represents a single Web Part on the SharePoint site.

Para definir el nuevo tipo de nodo, la clase implementa la IExplorerNodeTypeProvider interfaz.To define the new node type, the class implements the IExplorerNodeTypeProvider interface. Implemente esta interfaz siempre que desee definir un nuevo tipo de nodo en Explorador de servidores.Implement this interface whenever you want to define a new type of node in Server Explorer.

Para definir el tipo de nodo de elemento webTo define the web part node type

  1. Pegue el código siguiente en el WebPartNodeTypeProvider archivo de código para el ExtensiónNodoElementoWeb proyecto.Paste the following code into the WebPartNodeTypeProvider code file for the WebPartNodeExtension project.

    using System;
    using System.Collections.Generic;
    using System.Windows.Forms;
    using System.ComponentModel.Composition;
    using Microsoft.VisualStudio.SharePoint;
    using Microsoft.VisualStudio.SharePoint.Explorer;
    
    namespace ServerExplorer.SharePointConnections.WebPartNode
    {
        // Enables Visual Studio to discover and load this extension.
        [Export(typeof(IExplorerNodeTypeProvider))]
    
        // Specifies the ID for this new node type.
        [ExplorerNodeType(WebPartNodeTypeProvider.WebPartNodeTypeId)]
    
        // Defines a new node type that represents a Web Part on a SharePoint site.
        internal class WebPartNodeTypeProvider : IExplorerNodeTypeProvider
        {
            internal const string WebPartNodeTypeId = "Contoso.WebPart";
    
            public void InitializeType(IExplorerNodeTypeDefinition typeDefinition)
            {
                typeDefinition.DefaultIcon = Properties.Resources.WebPart.ToBitmap();
                typeDefinition.IsAlwaysLeaf = true;
                typeDefinition.NodePropertiesRequested += NodePropertiesRequested;
            }
    
            // Retrieves properties that are displayed in the Properties window when
            // a Web Part node is selected.
            private void NodePropertiesRequested(object sender,
                ExplorerNodePropertiesRequestedEventArgs e)
            {
                var webPartNodeInfo = e.Node.Annotations.GetValue<WebPartNodeInfo>();
    
                // Call the custom SharePoint command to get the Web Part properties.
                Dictionary<string, string> properties =
                    e.Node.Context.SharePointConnection.ExecuteCommand<
                    WebPartNodeInfo, Dictionary<string, string>>(
                    WebPartCommandIds.GetWebPartProperties, webPartNodeInfo);
    
                object propertySource = e.Node.Context.CreatePropertySourceObject(properties);
                e.PropertySources.Add(propertySource);
            }
        }
    }
    
    Imports System
    Imports System.Collections.Generic
    Imports System.Windows.Forms
    Imports System.ComponentModel.Composition
    Imports Microsoft.SharePoint.Client
    Imports Microsoft.VisualStudio.SharePoint
    Imports Microsoft.VisualStudio.SharePoint.Explorer
    
    Namespace ServerExplorer.SharePointConnections.WebPartNode
    
        ' Export attribute: Enables Visual Studio to discover and load this extension.
        ' ExplorerNodeType attribute: Specifies the ID for this new node type.
        ' WebPartNodeTypeProvider class: Defines a new node type that represents a Web Part on a SharePoint site.
        <Export(GetType(IExplorerNodeTypeProvider))> _
        <ExplorerNodeType(WebPartNodeTypeProvider.WebPartNodeTypeId)> _
        Friend Class WebPartNodeTypeProvider
            Implements IExplorerNodeTypeProvider
    
            Friend Const WebPartNodeTypeId As String = "Contoso.WebPart"
    
            Private Sub InitializeType(ByVal typeDefinition As IExplorerNodeTypeDefinition) _
            Implements IExplorerNodeTypeProvider.InitializeType
                typeDefinition.DefaultIcon = My.Resources.WebPart.ToBitmap()
                typeDefinition.IsAlwaysLeaf = True
    
                AddHandler typeDefinition.NodePropertiesRequested, AddressOf NodePropertiesRequested
                AddHandler typeDefinition.NodeMenuItemsRequested, AddressOf NodeMenuItemsRequested
            End Sub
    
            ' Retrieves properties that are displayed in the Properties window when
            ' a Web Part node is selected.
            Private Sub NodePropertiesRequested(ByVal Sender As Object, _
                ByVal e As ExplorerNodePropertiesRequestedEventArgs)
    
                Dim webPart = e.Node.Annotations.GetValue(Of ListItem)()
                Dim propertySource = e.Node.Context.CreatePropertySourceObject( _
                    webPart.FieldValuesAsText.FieldValues)
                e.PropertySources.Add(propertySource)
            End Sub
    
            Private Sub NodeMenuItemsRequested(ByVal Sender As Object, _
                ByVal e As ExplorerNodeMenuItemsRequestedEventArgs)
                Dim WebPartNodeMenuItem As IMenuItem = e.MenuItems.Add("Display Message")
                AddHandler WebPartNodeMenuItem.Click, AddressOf MenuItemClick
            End Sub
    
            Private Sub MenuItemClick(ByVal Sender As Object, ByVal e As MenuItemEventArgs)
                Dim ParentNode As IExplorerNode = TryCast(e.Owner, IExplorerNode)
                If ParentNode IsNot Nothing Then
                    Dim webPart = ParentNode.Annotations.GetValue(Of ListItem)()
                    MessageBox.Show("You clicked the context menu for the following Web part: " & _
                        webPart.FieldValuesAsText.FieldValues("Title") + ".", "Web Part Menu Command")
                End If
            End Sub
        End Class
    End Namespace
    

Punto de controlCheckpoint

En este punto del tutorial, todo el código para el Galería de elementos Web nodo está en el proyecto.At this point in the walkthrough, all the code for the Web Part Gallery node is now in the project. Compilar el ExtensiónNodoElementoWeb proyecto para asegurarse de que se compila sin errores.Build the WebPartNodeExtension project to make sure that it compiles without errors.

Para compilar el proyectoTo build the project

  1. En el Explorador de soluciones, abra el menú contextual para el ExtensiónNodoElementoWeb del proyecto y, a continuación, elija compilar.In Solution Explorer, open the shortcut menu for the WebPartNodeExtension project, and then choose Build.

Crear un paquete VSIX para implementar la extensiónCreate a VSIX package to deploy the extension

Para implementar la extensión, utilice el proyecto VSIX en la solución para crear un paquete VSIX.To deploy the extension, use the VSIX project in your solution to create a VSIX package. En primer lugar, configure el paquete VSIX modificando el archivo source.extension.vsixmanifest incluido en el proyecto.First, configure the VSIX package by modifying the source.extension.vsixmanifest file that's included in the project. A continuación, crear el paquete VSIX compilando la solución.Then create the VSIX package by building the solution.

Para configurar el paquete VSIXTo configure the VSIX package

  1. En el Explorador de soluciones, en el NodoElementoWeb proyecto, abra source.extension.vsixmanifest archivo en el editor de manifiestos.In Solution Explorer, in the WebPartNode project, open source.extension.vsixmanifest file in the manifest editor.

    El archivo source.extension.vsixmanifest es la base del archivo extension.vsixmanifest que requieren todos los paquetes VSIX.The source.extension.vsixmanifest file is the basis for the extension.vsixmanifest file that all VSIX packages require. Para obtener más información acerca de este archivo, consulte referencia de 1.0 del esquema de extensión de VSIX.For more information about this file, see VSIX Extension Schema 1.0 Reference.

  2. En el Product Name , escriba nodo Galería de elementos Web Explorador de servidores.In the Product Name box, enter Web Part Gallery Node for Server Explorer.

  3. En el autor , escriba Contoso.In the Author box, enter Contoso.

  4. En el descripción , escriba agrega un nodo de la Galería de elementos Web personalizados en el nodo Conexiones de SharePoint en el Explorador de servidores.In the Description box, enter Adds a custom Web Part Gallery node to the SharePoint Connections node in Server Explorer.

  5. En el activos pestaña del editor, elija la New botón.On the Assets tab of the editor, choose the New button.

  6. En el Agregar nuevo activo cuadro de diálogo el tipo elija Microsoft.VisualStudio.MefComponent.In the Add New Asset dialog box, in the Type list, choose Microsoft.VisualStudio.MefComponent.

    Note

    Este valor corresponde al elemento MefComponent del archivo extension.vsixmanifest.This value corresponds to the MefComponent element in the extension.vsixmanifest file. Este elemento especifica el nombre de un ensamblado de extensión en el paquete VSIX.This element specifies the name of an extension assembly in the VSIX package. Para obtener más información, consulte elemento MEFComponent (Esquema VSX).For more information, see MEFComponent Element (VSX Schema).

  7. En el origen elija un proyecto de la solución actual.In the Source list, choose A project in current solution.

  8. En el proyecto elija ExtensiónNodoElementoWeby, a continuación, elija el Aceptar botón.In the Project list, choose WebPartNodeExtension, and then choose the OK button.

  9. En la barra de menús, elija compilar > compilar solucióny, a continuación, asegúrese de que la solución se compila sin errores.On the menu bar, choose Build > Build Solution, and then make sure that the solution compiles without errors.

  10. Asegúrese de que la carpeta de salida de compilación del proyecto NodoElementoWeb contiene ahora el archivo WebPartNode.vsix.Make sure that the build output folder for the WebPartNode project now contains the WebPartNode.vsix file.

    De forma predeterminada, la carpeta de salida de la compilación es \bin\Debug, ubicada bajo la carpeta que contiene el archivo de proyecto.By default, the build output folder is the ..\bin\Debug folder under the folder that contains your project file.

Probar la extensiónTest the extension

Ahora está listo para probar la nueva Galería de elementos Web nodo Explorador de servidores.You are now ready to test the new Web Part Gallery node in Server Explorer. Primero, empiece a depurar el proyecto de extensión en una instancia experimental de Visual Studio.First, start to debug the extension project in an experimental instance of Visual Studio. A continuación, use la nueva Webs nodo en la instancia experimental de Visual Studio.Then use the new Web Parts node in the experimental instance of Visual Studio.

Para comenzar a depurar la extensiónTo start debugging the extension

  1. Reinicie Visual Studio con credenciales administrativas y, a continuación, abra el NodoElementoWeb solución.Restart Visual Studio with administrative credentials, and then open the WebPartNode solution.

  2. En el proyecto ExtensiónNodoElementoWeb, abra el SiteNodeExtension archivo de código y, a continuación, agregue un punto de interrupción en las primeras líneas de código en el NodeChildrenRequested y CreateWebPartNodes métodos.In the WebPartNodeExtension project, open the SiteNodeExtension code file, and then add a breakpoint to the first lines of code in the NodeChildrenRequested and CreateWebPartNodes methods.

  3. Elija la F5 tecla para iniciar la depuración.Choose the F5 key to start debugging.

    Visual Studio instala la extensión a %UserProfile%\AppData\Local\Microsoft\VisualStudio\11.0Exp\Extensions\Contoso\Web extensión del nodo de la Galería de elementos de servidor Explorer\1.0 e inicia una instancia experimental de Visual Studio.Visual Studio installs the extension to %UserProfile%\AppData\Local\Microsoft\VisualStudio\11.0Exp\Extensions\Contoso\Web Part Gallery Node Extension for Server Explorer\1.0 and starts an experimental instance of Visual Studio. Probará el elemento de proyecto en esta instancia de Visual Studio.You'll test the project item in this instance of Visual Studio.

Para probar la extensiónTo test the extension

  1. En la instancia experimental de Visual Studio, en la barra de menús, elija vista > Explorador de servidores.In the experimental instance of Visual Studio, on the menu bar, choose View > Server Explorer.

  2. Compruebe que el sitio de SharePoint que desea usar para las pruebas aparece bajo el conexiones de SharePoint nodo Explorador de servidores.Verify that the SharePoint site that you want to use for testing appears under the SharePoint Connections node in Server Explorer. Si no aparece, siga estos pasos:If it's not listed, follow these steps:

    1. Abra el menú contextual para conexiones de SharePointy, a continuación, elija Agregar conexión.Open the shortcut menu for SharePoint Connections, and then choose Add Connection.

    2. En el Agregar conexión de SharePoint diálogo cuadro, escriba la dirección URL del sitio de SharePoint a la que desea conectarse y, a continuación, elija el Aceptar botón.In the Add SharePoint Connection dialog box, enter the URL for the SharePoint site to which you want to connect, and then choose the OK button.

      Para especificar el sitio de SharePoint en el equipo de desarrollo, escriba http://localhost.To specify the SharePoint site on your development computer, type http://localhost.

  3. Expanda el nodo de conexión de sitio (que muestra la dirección URL del sitio) y, a continuación, expanda un nodo de sitio secundario (por ejemplo, Team Site).Expand the site connection node (which displays the URL of your site), and then expand a child site node (for example, Team Site).

  4. Compruebe que el código de la otra instancia de Visual Studio se detiene en el punto de interrupción que estableció anteriormente en el NodeChildrenRequested método y, a continuación, elija el F5 tecla para continuar depurando el proyecto.Verify that the code in the other instance of Visual Studio stops on the breakpoint that you set earlier in the NodeChildrenRequested method, and then choose the F5 key to continue to debug the project.

  5. En la instancia experimental de Visual Studio, expanda el Galería de elementos Web nodo, que aparece bajo el nodo de sitio de nivel superior.In the experimental instance of Visual Studio, expand the Web Part Gallery node, which appears under the top-level site node.

  6. Compruebe que el código de la otra instancia de Visual Studio se detiene en el punto de interrupción que estableció anteriormente en el CreateWebPartNodes método y, a continuación, elija el F5 tecla para continuar depurando el proyecto.Verify that the code in the other instance of Visual Studio stops on the breakpoint that you set earlier in the CreateWebPartNodes method, and then choose the F5 key to continue to debug the project.

  7. En la instancia experimental de Visual Studio, compruebe que todos los elementos Web en el sitio conectado aparecen bajo el Galería de elementos Web nodo Explorador de servidores.In the experimental instance of Visual Studio, verify that all the Web Parts on the connected site appear under the Web Part Gallery node in Server Explorer.

  8. Abra el menú contextual para un elemento Web y, a continuación, elija propiedades.Open the shortcut menu for a Web Part, and then choose Properties.

  9. En el propiedades ventana, compruebe que aparecen los detalles acerca del elemento Web.In the Properties window, verify that details about the Web Part appear.

  10. En Explorador de servidores, abra el menú contextual para el mismo elemento Web y, a continuación, elija Mostrar mensaje.In Server Explorer, open the shortcut menu for the same Web Part, and then choose Display Message.

    En el cuadro de mensaje que aparece, elija el Aceptar botón.In the message box that appears, choose the OK button.

Desinstale la extensión de Visual StudioUninstall the extension from Visual Studio

Cuando termine de probar la extensión, desinstálelo desde Visual Studio.After you finish testing the extension, uninstall it from Visual Studio.

Para desinstalar la extensiónTo uninstall the extension

  1. En la instancia experimental de Visual Studio, en la barra de menús, elija herramientas > extensiones y actualizaciones.In the experimental instance of Visual Studio, on the menu bar, choose Tools > Extensions and Updates.

    Se abre el cuadro de diálogo Extensiones y actualizaciones.The Extensions and Updates dialog box opens.

  2. En la lista de extensiones, elija nodo Galería de elementos Web Explorador de servidoresy, a continuación, elija el desinstalar botón.In the list of extensions, choose Web Part Gallery Node for Server Explorer, and then choose the Uninstall button.

  3. En el cuadro de diálogo que aparece, elija el botón.In the dialog box that appears, choose the Yes button.

  4. Elija la reiniciar ahora botón para completar la desinstalación.Choose the Restart Now button to complete the uninstallation.

    También se desinstala el elemento de proyecto.The project item is also uninstalled.

  5. Cierre ambas instancias de Visual Studio (la instancia experimental y la instancia de Visual Studio en el que está abierta la solución NodoElementoWeb).Close both instances of Visual Studio (the experimental instance and the instance of Visual Studio in which the WebPartNode solution is open).

Vea tambiénSee also

Llamar a los modelos de objetos de SharePoint Call into the SharePoint object models
Extender el nodo Conexiones de SharePoint en el Explorador de servidores Extend the SharePoint connections node in Server Explorer
Tutorial: Extender el Explorador de servidores para mostrar elementos web Walkthrough: Extend Server Explorer to display web parts
Editor de imágenes para iconos Image Editor for Icons
Crear un icono u otra imagen (Editor de imágenes para iconos)Creating an Icon or Other Image (Image Editor for Icons)