Tutorial: Agregar receptores de eventos de características

Los receptores de eventos de características son métodos que se ejecutan cuando se produce uno de los siguientes eventos relacionados con características en SharePoint:

  • Se instala una característica.

  • Se activa una característica.

  • Se desactiva una característica.

  • Se elimina una característica.

En este tutorial se muestra cómo agregar un receptor de eventos a una característica en un proyecto de SharePoint. Se explican las tareas siguientes:

  • Creación de un proyecto vacío con un receptor de eventos de características.

  • Manejo del método FeatureDeactivating.

  • Uso del modelo de objetos de proyecto de SharePoint para agregar un anuncio a la lista Anuncios.

    Nota:

    Es posible que tu equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las siguientes instrucciones. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, vea Personalizar el IDE.

Requisitos previos

Necesitará los componentes siguientes para completar este tutorial:

  • Ediciones compatibles de Microsoft Windows y SharePoint.

  • Visual Studio.

Creación de un proyecto de receptor de eventos de características

En primer lugar, cree un proyecto para que contenga el receptor de eventos de características.

Creación de un proyecto con un receptor de eventos de características

  1. En la barra de menús, elija Archivo>Nuevo>Proyecto para mostrar el cuadro de diálogo Nuevo proyecto.

  2. Expanda el nodo SharePoint en Visual C# o Visual Basic y, a continuación, seleccione el nodo 2010.

  3. En el panel Plantillas, seleccione la plantilla Proyecto de SharePoint 2010.

    Este tipo de proyecto se usa para receptores de eventos de características porque no tienen ninguna plantilla de proyecto.

  4. En el cuadro Nombre, escriba FeatureEvtTest y a continuación elija el botón Aceptar para mostrar el Asistente para personalizar SharePoint.

  5. En la página Especifique el sitio y el nivel de seguridad de la depuración, escriba la dirección URL del servidor de SharePoint al que desea agregar el nuevo elemento de campo personalizado o use la ubicación predeterminada (http://<SystemName>/).

  6. En la sección ¿Cuál es el nivel de confianza de esta solución de SharePoint?, active el botón de opción Implementar como solución de granja.

    Para obtener más información sobre las soluciones en espacio aislado frente a las soluciones de granja, consulte Consideraciones sobre las soluciones en espacio aislado.

  7. Elija el botón Finalizar y observe que aparece una característica denominada Feature1 en el nodo Características.

Adición de un receptor de eventos a la característica

A continuación, agregue un receptor de eventos a la característica y agregue código que se ejecute cuando se desactive la característica.

Agregación de un receptor de eventos a la característica

  1. Para crear una característica, vaya al menú contextual del nodo Características y, elija Agregar característica.

  2. En el nodo Características, abra el menú contextual de Feature1 y elija Agregar receptor de eventos para agregar un receptor de eventos a la característica.

    Esto agrega un archivo de código en Feature1. En este caso, se denomina Feature1.EventReceiver.cs o Feature1.EventReceiver.vb, según el lenguaje de desarrollo del proyecto.

  3. Si el proyecto está escrito en Visual C#, agregue el código siguiente en la parte superior del receptor de eventos si aún no está ahí:

    using System;
    
  4. La clase receptora de eventos contiene varios métodos de salida comentados que actúan como eventos. Reemplace el método existente FeatureDeactivating por:

    public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
    {
        try
        {
            // Get reference to SharePoint site.
            SPSite site = new SPSite("http://localhost");
            SPWeb web = site.OpenWeb("/");
            // Get reference to Announcements list.
            SPList announcementsList = web.Lists["Announcements"];
    
            // Add new announcement to Announcements list.
            SPListItem oListItem = announcementsList.Items.Add();
            oListItem["Title"] = "Deactivated Feature: " + properties.Definition.DisplayName;
            oListItem["Body"] = properties.Definition.DisplayName + " was deactivated on: " + DateTime.Now.ToString();
            oListItem.Update();
    
        }
    
        catch (Exception e)
        {
            Console.WriteLine("Error: " + e.ToString());
        }
        
    }
    

Prueba del receptor de eventos de características

A continuación, desactive la característica para probar si el método FeatureDeactivating genera un anuncio en la lista Anuncios de SharePoint.

Prueba del receptor de eventos de características

  1. Establezca el valor de la propiedad Configuración de implementaciones activas del proyecto a Sin activación.

    Establecer esta propiedad impide que la característica se active en SharePoint y le permite depurar receptores de eventos de características. Para obtener más información, consulte Depuración de soluciones de SharePoint.

  2. Elija la tecla F5 para ejecutar el proyecto e implementarlo en SharePoint.

  3. En la parte superior de la página web de SharePoint, abra el menú Acciones del sitio y elija Configuración del sitio.

  4. En la sección Acciones del sitio de la página Configuración del sitio, elija el vínculo Administrar características del sitio.

  5. En la página Características, elija el botón Activar situado junto a la característica FeatureEvtTest Feature1.

  6. En la página Características, elija el botón Desactivar situado junto a la característica FeatureEvtTest Feature1 y elija el vínculo Desactivar esta característica para desactivar la característica.

  7. Elija el botón Inicio.

    Observe que después de desactivar la característica en la lista Anuncios aparece un anuncio.