Implementación de personalizaciones de elementos de sitio desarrollados

En este artículo:

  • Implementación de elementos de sitio desarrollados mediante paquetes de soluciones

  • Implementación de elementos de sitio desarrollados mediante características

En este artículo se proporciona una guía sobre la implementación de personalizaciones de elementos de sitio desarrollados mediante el uso de Microsoft Office SharePoint Server 2007, incluidos procedimientos de implementación, consideraciones generales y procedimientos recomendados relacionados con la implementación de código personalizado.

Los elementos de sitio desarrollados son aplicaciones y archivos que proporcionan funcionalidad a un sitio; por ejemplo, un flujo de trabajo que implementa un proceso de negocio o una plantilla de sitio que permite a los usuarios crear sitios con un diseño determinado. Los elementos de sitio desarrollados se implementan en los servidores web de la granja o, en algunos casos, en servidores de aplicaciones dedicados en el nivel intermedio de la granja.

En las secciones de este artículo se describe cómo trabajar con los distintos métodos de implementación de elementos de sitio desarrollados en Office SharePoint Server 2007, incluidos los procedimientos en que se explica cómo importar, exportar y crear paquetes de soluciones y características.

En este artículo no se describe la implementación de elementos de sitio creados, como páginas web, hojas de estilos en cascada y páginas de diseño. Para obtener más información acerca de la implementación de elementos de sitio creados, vea Implementación de personalizaciones de elementos de sitio creados. Para obtener más información acerca de las diferencias entre los elementos de sitio creados y los elementos de sitio desarrollados, vea Revisión de los elementos del sitio.

Antes de leer este artículo, debe estar familiarizado con los conceptos relacionados con el diseño y la creación de sitios. Para obtener más información, vea Acerca del diseño y la generación de sitios.

Los procedimientos de este están basados en las topologías descritas en el artículo Escenarios de personalización y puede que no se ajusten exactamente a su entorno.

Es posible que estos procedimientos requieran la colaboración de varias funciones distintas. Asimismo, en este artículo se da por supuesto que se usarán trabajos de implementación programados para migrar contenido entre algunas capas de la topología.

Nota

Para eliminar los problemas de sincronización que puedan producirse, a menudo, los elementos de sitio desarrollados deben implementarse antes que los elementos de sitio creados. Para obtener más información acerca de los elementos de sitio creados y desarrollados, vea Revisión de los elementos del sitio. Además, recuerde que todos los paquetes de idiomas en uso en el servidor de origen también deben estar instalados en el servidor de destino o se producirá un error en la implementación del contenido.

En la siguiente tabla se resumen los métodos de implementación descritos en este artículo.

Método Notas

Paquetes de soluciones

Los paquetes de soluciones son paquetes de distribución que entregan el trabajo de desarrollo de Office SharePoint Server 2007 y Windows SharePoint Services 3.0 personalizado a los servidores web o los servidores de aplicaciones de la granja de servidores.

Mediante los paquetes de soluciones, puede:

  • Implementar los elementos de sitio desarrollados en entornos conectados y desconectados.

  • Implementar artefactos y elementos de sitio desarrollados en el mismo paquete.

No se pueden usar paquetes de soluciones para implementar elementos de sitio desarrollados que no sean artefactos.

Características

Las características son conjuntos empaquetados de archivos XML que se implementan en servidores web. Las características se pueden agrupar en soluciones y definiciones de sitio, o activar de forma individual en sitios de Office SharePoint Server.

Mediante las características, puede:

  • Implementar los elementos de sitio desarrollados en entornos conectados y desconectados.

  • Activar y desactivar personalizaciones en el sitio web de Administración central o mediante la herramienta de línea de comandos Stsadm.

  • Controlar el ámbito de la implementación.

  • Incluir características en un paquete de soluciones junto con otras características, elementos de sitio desarrollados y artefactos.

No se pueden usar características para implementar elementos de sitio creados.

En las siguientes secciones se describe cada uno de estos métodos de implementación con más detalle.

Implementación de elementos de sitio desarrollados mediante paquetes de soluciones

En esta sección:

  • ¿Qué es un paquete de soluciones?

  • Cuándo se deben usar paquetes de soluciones

  • Implementación de una solución mediante Administración central

  • Creación de un paquete de soluciones

  • Importación de un paquete de soluciones mediante la herramienta de línea de comandos Stsadm

  • Implementación de un paquete de soluciones mediante la herramienta de línea de comandos Stsadm

¿Qué es un paquete de soluciones?

Un paquete de soluciones es un paquete de distribución que entrega el trabajo de desarrollo de Office SharePoint Server 2007 y Windows SharePoint Services 3.0 personalizado a los servidores web o los servidores de aplicaciones de la granja de servidores. Un paquete de soluciones es un archivo CAB con una extensión de nombre de archivo .wsp y un archivo de manifiesto. Los paquetes de soluciones se pueden crear manualmente con herramientas como Makecab.exe o se pueden crear con Solution Generator, una aplicación independiente incluida con las herramientas de Windows SharePoint Services 3.0: Visual Studio 2005 Extensions (https://go.microsoft.com/fwlink/?linkid=107267&clcid=0xC0A).

Los componentes que se pueden empaquetar en una solución incluyen:

  • Ensamblados de .NET Framework que encapsulan el código que proporciona la solución.

  • Archivos de implementación, como archivos de recursos, imágenes u otros archivos auxiliares.

  • Nuevas plantillas y definiciones para sitios, listas, bibliotecas, campos, tipos de contenido, etc. Estas definiciones tienen el formato de archivos XML basados en CAML.

  • Características que permiten activar y desactivar código en un sitio web.

  • Configuraciones que se deben realizar en el nivel del servidor web, como por ejemplo, los archivos Web.config para el registro de elementos web.

Para obtener más información, vea Componentes del paquete de soluciones.

Cuándo se deben usar paquetes de soluciones

Se pueden usar paquetes de soluciones para proporcionar elementos de sitio desarrollados y artefactos (que se describen en Implementación de personalizaciones de elementos de sitio creados). También se pueden usar los paquetes de soluciones para implementar elementos de sitio desarrollados en entornos desconectados o para guardar elementos de sitio desarrollados en un sistema de administración de la configuración del software.

Los paquetes de soluciones se pueden usar para implementar elementos de sitio desarrollados si se aplican una o varias de las siguientes condiciones:

  • **Entornos desconectados  ** Si las granjas de servidores están desconectadas, se debe crear un paquete de soluciones para realizar una transferencia asincrónica a la granja de integración.

  • Entornos de administración de la configuración del software   Se puede consolidar el trabajo de desarrollo en un paquete de soluciones para su entrega a un sistema de administración de la configuración del software.

  • Inclusión de características y otros elementos de sitio desarrollados   Se pueden incluir características junto con otras personalizaciones en un paquete de soluciones. Si algunas de las personalizaciones están empaquetadas como características y otras no, se pueden usar paquetes de soluciones como medio de implementación estándar.

  • Entrega conjunta de artefactos y elementos de sitio desarrollados   Se puede usar un paquete de soluciones si se desea implementar tanto artefactos como elementos de sitio desarrollados en un único paquete de implementación.

  • Implementaciones mediante scripts   Se pueden usar paquetes de soluciones para escribir un script con el que automatizar el proceso de implementación de elementos de sitio desarrollados.

Tal como se muestra en los diagramas de implementación en el artículo Escenarios de personalización, se pueden usar paquetes de soluciones para implementar personalizaciones de elementos de sitio desarrollados entre estaciones de trabajo de programadores y una granja de integración o un sistema de administración de la configuración del software, y entre una granja de servidores de integración y estaciones de trabajo cliente de creación y granjas de servidores piloto o de producción.

Implementación de una solución mediante Administración central

Se pueden implementar soluciones importadas desde el sitio de Administración central. Cuando se importa una solución a la base de datos de soluciones mediante la operación Stsadm -Addsolution, tal como se describe en la sección Importación de un paquete de soluciones mediante la herramienta de línea de comandos Stsadm más adelante en este artículo, se debe implementar en un sitio para poder tener acceso a dicha solución.

Nota

No se puede importar una solución a través de la página Administración de soluciones de Administración central.

En el siguiente procedimiento se muestra cómo implementar una solución importada a un sitio de la granja de servidores.

Implementación de una solución en el sitio de Administración central

  1. En la barra de vínculos superior del sitio de Administración central, haga clic en Operaciones.

  2. En la página Operaciones, en la sección Configuración global, haga clic en Administración de soluciones.

  3. En la página Administración de soluciones, haga clic en la solución que desee implementar.

  4. En la página Propiedades de la solución, haga clic en Implementar solución.

  5. En la página Implementar solución, en la sección ¿Cuándo desea implementarla?, seleccione una de las siguientes opciones:

    • Ahora

    • A una hora específica. Si selecciona esta opción, especifique un momento en los cuadros de fecha y hora. Se recomienda seleccionar un momento en que la carga de los servidores de destino sea baja.

  6. En la sección ¿Dónde implementarla?, en la lista Una aplicación web específica, haga clic en Todas las aplicaciones web o seleccione una aplicación web específica.

  7. Haga clic en Aceptar.

Creación de un paquete de soluciones

En esta sección se describen los métodos de creación de paquetes de soluciones que contienen artefactos y elementos de sitio desarrollados. Existen varios métodos diferentes para crear un paquete de soluciones. En la siguiente tabla se resumen los métodos descritos en esta sección.

Método Descripción

Manual

Se puede crear un paquete de soluciones de forma manual mediante la herramienta Makecab.exe. Como Office SharePoint Server 2007 no incluye ninguna herramienta para la creación de paquetes de soluciones, éste es el método predeterminado.

La herramienta Makecab.exe está disponible para su descarga en el kit de desarrollo de software de archivos .CAB de Microsoft (https://go.microsoft.com/fwlink/?linkid=107292&clcid=0xC0A).

SharePoint Solution Generator

SharePoint Solution Generator es una aplicación independiente que puede convertir ciertos tipos de sitios web de Office SharePoint Server 2007 o Windows SharePoint Services 3.0 en un proyecto de definición de sitio de Visual Studio 2005. Si usa Visual Studio 2005 para la personalización de elementos de sitio, este método puede resultarle de gran utilidad.

SharePoint Solution Generator está disponible para su descarga en las herramientas de Windows SharePoint Services 3.0: Visual Studio 2005 Extensions (https://go.microsoft.com/fwlink/?linkid=107267&clcid=0xC0A).

WSPBuilder

WSPBuilder es una herramienta de línea de comandos de código abierto que se puede usar para automatizar el proceso de creación de los paquetes de soluciones. Este método puede ser útil si se crean paquetes de soluciones de forma periódica y si no se tiene limitado el uso de herramientas de código abierto en el entorno.

La herramienta WSPBuilder está disponible para su descarga en Codeplex (en inglés) (https://go.microsoft.com/fwlink/?linkid=106471&clcid=0xC0A) (en inglés).

Creación manual de un paquete de soluciones

Los programadores de soluciones de Office SharePoint Server 2007 a menudo crearán manualmente paquetes de soluciones de SharePoint cuando surja la necesidad de realizar alguna de las siguientes acciones:

  • Implementar ensamblados de .NET Framework en la carpeta de aplicaciones privada en lugar de en la memoria caché de ensamblados global.

  • Agregar permisos de seguridad de acceso a código a la solución que se deben aplicar durante la implementación.

  • Cambiar los nombres usados de forma predeterminada para las carpetas de características.

  • Localizar la solución.

  • Asociar controladores de eventos de características a ciertos tipos de soluciones de Windows SharePoint Services 3.0, como soluciones de elementos web.

  • Agregar recursos (archivos XML, imágenes, archivos .dll y ensamblados) al paquete de soluciones.

Para crear manualmente un archivo de soluciones, se deben realizar los siguientes pasos básicos:

  1. Recopilar todos los archivos de soluciones individuales en una carpeta. No existen directrices específicas sobre cómo se debe llevar a cabo esta tarea, pero un procedimiento recomendado es separar los diferentes tipos de archivos de soluciones en sus propias subcarpetas.

  2. Crear un archivo manifest.xml que enumere los componentes de la solución.

  3. Crear un archivo .ddf que defina la estructura del archivo de soluciones de Windows SharePoint Services 3.0. Este archivo contiene la lista de archivos de soluciones individuales que determinan el archivo .wsp de salida.

  4. Ejecutar Makecab.exe con el archivo .ddf como entrada y el archivo .wsp como salida.

Los pasos básicos anteriores se describen con más detalle en el siguiente procedimiento.

Nota

Para realizar este procedimiento, necesitará la herramienta Makecab.exe, que está disponible para su descarga en el kit de desarrollo de software de archivos .CAB de Microsoft (https://go.microsoft.com/fwlink/?linkid=107292&clcid=0xC0A).

Creación manual de un paquete de soluciones mediante Makecab.exe

  1. Cree un archivo manifest.xml de soluciones.

    El manifiesto de las soluciones (llamado siempre manifest.xml) se almacena en la raíz de un archivo de soluciones. Este archivo define la lista de características, las definiciones de sitio, los archivos de recursos, los archivos de elementos web y los ensamblados que se van a procesar. No define la estructura de archivos; si hay archivos incluidos en una solución, pero no están incluidos en el archivo manifest.xml, no se procesarán de ninguna forma.

    A continuación se incluye un ejemplo de la estructura de un archivo manifest.xml, que se muestra en XML.

    <?xml version="1.0" encoding="utf-8" ?>

    <Solution xmlns="https://schemas.microsoft.com/sharepoint/"

    SolutionId="{79d1a62e-3627-11db-963e-00e08161165f}"

    ResetWebServer="TRUE">

        <Assemblies>

            <Assembly DeploymentTarget="GlobalAssemblyCache"

    Location="Example.Sharepoint.Webparts\

    Example.SharePoint.WebParts.dll">

                <SafeControls>

                    <SafeControl Assembly="Example.Sharepoint.Webparts,

    Version=1.0.0.0, Culture=Neutral, PublicKeyToken=63cce650e8605f5d"

    Namespace="Example.Sharepoint.Webparts" TypeName="*"/>

                </SafeControls>

            </Assembly>

            <Assembly DeploymentTarget="GlobalAssemblyCache"

    Location="Example.Sharepoint.Timer/Example.Sharepoint.Timer.dll"/>

        </Assemblies>

        <FeatureManifests>

            <FeatureManifest Location="Example.Sharepoint.Timer\Feature.xml"/>

            <FeatureManifest Location="Example.CustomType\Feature.xml"/>

            <FeatureManifest Location="Example.ExampleLibrary\Feature.xml"/>

            <FeatureManifest Location="Example.Columns\Feature.xml"/>

            <FeatureManifest Location="Example.Workflow.ProcessExample\Feature.xml"/>

            <FeatureManifest Location="Example.Workflow.ProvisionExample\Feature.xml"/>

        </FeatureManifests>

        <SiteDefinitionManifests>

            <SiteDefinitionManifest Location="EXAMPLE">

                <WebTempFile Location="1033\XML\WEBTEMPExample.XML"/>

            </SiteDefinitionManifest>

        </SiteDefinitionManifests>

    </Solution>

    Además, puede agregar un elemento DwpFiles para especificar archivos .webpart o .dwp, o un elemento ResourceFiles para especificar archivos de recursos, definiciones de sitio, recursos de aplicaciones y directivas de seguridad de acceso a código.

  2. Si lo desea, puede incluir anotaciones en los archivos Feature.xml con etiquetas <ElementFile>.

    En la etiqueta <ElementManifests> del archivo Feature.xml, agregue <ElementFile Location="..."/> para todos los archivos adicionales de la característica, como pueden ser páginas ASPX (Active Server Page Extension) (por ejemplo, allitems.aspx) o páginas maestras, etc.

    Nota

    Este paso es necesario sólo si la solución contiene características.

  3. Cree el paquete de soluciones (archivo .wsp).

    Como el archivo de soluciones es esencialmente un archivo CAB, use la herramienta Makecab.exe para crear el paquete de soluciones. La herramienta Makecab.exe transfiere un puntero a un archivo .ddf, que describe la estructura del archivo CAB. El formato de un archivo .ddf es similar al de un archivo .inf; es decir, se declara un encabezado estándar y, a continuación, se enumera, un archivo por línea, el conjunto de archivos por su ubicación en el disco, separados por dónde deberían estar ubicados en el archivo CAB. Por ejemplo:

    ; .OPTION EXPLICIT    

    ; Generate errors

    .Set CabinetNameTemplate=MySolutionFile.wsp

         .set DiskDirectoryTemplate=CDROM

    ; All cabinets go in a single directory

    .Set CompressionType=MSZIP

    ;** All files are compressed in cabinet files

    .Set UniqueFiles="ON"

    .Set Cabinet=on

    .Set DiskDirectory1=Package build\manifest.xml manifest.xml build\

    MySolutionFile\Feature.xml MySolutionFile\Feature.xml ...

Tutorial: generación e implementación de un paquete de soluciones de elementos web personalizados

En esta sección se proporciona un ejemplo de cómo crear e implementar un paquete de soluciones que contenga un elemento web personalizado. Este tutorial requiere el uso de Visual Studio 2005 y de la herramienta Makecab.exe.

Office SharePoint Server 2007 ofrece a los programadores la opción de ejecutar código personalizado cuando se instala, activa, desactiva o desinstala una característica. Un ejemplo es un elemento web que sea dependiente en una lista de tareas específica. Cuando se activa una característica de un elemento web, el código personalizado puede comprobar si esta lista de tareas forma parte de las listas del sitio. Si no es así, el código crea la lista y, a continuación, quita la lista cuando se desactiva la característica. El código personalizado se encapsula en un ensamblado de .NET Framework al que se hará referencia como ensamblado del receptor de características.

En este tutorial se supone que ya se ha creado un proyecto de elementos web. Cuando se instala, activa, desactiva o desinstala la característica de elementos web, Office SharePoint Server genera eventos asincrónicos. Estos eventos se pueden controlar en un ensamblado de .NET Framework personalizado mediante la creación de una clase .NET Framework que se hereda de la clase Microsoft.SharePoint.SPFeatureReceiver abstracta.

Tutorial: generación e implementación de un paquete de soluciones de elementos web personalizados

  1. Cree la siguiente clase .NET en C#:

    using System;
    using System.Diagnostics;
    using System.Collections.Generic;
    using System.Text;
    using Microsoft.SharePoint;
    
    namespace MSDN.Samples
    {
        public class MSDNTaskListEventHandler: SPFeatureReceiver
        {
            public override void 
    FeatureActivated(SPFeatureReceiverProperties properties)
            {
                SPSite sitecollection = 
    (SPSite)properties.Feature.Parent;
                SPWeb web = sitecollection.RootWeb;
                try
                {
                    // -- Check if list exists.
                    SPList list = web.Lists["MSDN Tasks"]; 
                }
                catch 
                {
                    // -- If not, create the list.
                    web.Lists.Add("MSDN Tasks", "A custom list", SPListTemplateType.Tasks);
                }
            }
    
            public override void 
    FeatureDeactivating(SPFeatureReceiverProperties properties)
            {
                SPSite sitecollection = (SPSite)properties.Feature.Parent;
                SPWeb web = sitecollection.RootWeb;
                try
                {
                    // -- Check if list is there, and if so, delete it.
                    SPList list = web.Lists["MSDN Tasks"];
                    web.Lists.Delete(list.ID);
                }
                catch (Exception ex)
                {
                }
            }
    
            public override void 
    FeatureInstalled(SPFeatureReceiverProperties properties)
            {
            }
    
            public override void 
    FeatureUninstalling(SPFeatureReceiverProperties properties)
            {
            }
        }
    }
    

    El trabajo de codificación tiene como resultado dos ensamblados. Un ensamblado contiene el código que proporciona el elemento web. Un segundo ensamblado contiene el código anterior. En el momento de la publicación del presente artículo, Visual Studio Extensions para Windows SharePoint Services 3.0 no permite conectar el controlador de eventos con el archivo de definición de la característica de elementos web. Además, el ensamblado del elemento web debe implementarse en la carpeta de aplicaciones privada en lugar de en la memoria caché de ensamblados global. Por esta razón, el paquete de soluciones se debe crear manualmente.

    Nota

    En los siguientes pasos, se puede adaptar la forma en que se organizan los distintos archivos que representan los componentes de la solución a sus propias preferencias y pueden formar parte de la solución de Visual Studio 2005.

  2. Cree una carpeta con dos subcarpetas para recopilar todos los componentes de la solución. La primera subcarpeta almacena los ensamblados (llamada "Assemblies" en este artículo) y la segunda subcarpeta almacena los distintos archivos XML que definen las características (llamada "Features" en este artículo). Copie el ensamblado de elementos web y el ensamblado del controlador de eventos en la carpeta Assemblies.

  3. Dentro de la carpeta Features, cree una subcarpeta para cada una de las características que se deben incluir en la solución de SharePoint. En este tutorial, sólo hay una característica. Supongamos que se llama MSDNTaskCreator; la carpeta Features contiene una subcarpeta con ese nombre. En la raíz de esta carpeta, agregue un archivo Feature.xml que contenga el siguiente código XML.

    <Feature  Title="MSDNTaskCreator" 
              Id="55312295-a323-4333-b875-1bbe8ef7fd04" 
              Description="Small Web Part creating a custom task item" 
              Version="1.0.0.0" Scope="Site" Hidden="FALSE" 
              ReceiverAssembly="MSDNFeatureEventhandlers, 
    Version=1.0.0.0, Culture=neutral, PublicKeyToken=5e5a470a5445a8f1" 
              ReceiverClass="MSDN.Samples.MSDNTaskListEventHandler"
              DefaultResourceFile="core" 
    xmlns="https://schemas.microsoft.com/sharepoint/">
      <ElementManifests>
        <ElementManifest Location="elementManifest.xml" />
        <ElementFile Location="MSDNTaskCreator.webpart" />
      </ElementManifests>
    </Feature>
    

    Este código XML se diferencia del XML generado mediante Visual Studio Extensions para Windows SharePoint Services 3.0 en que se agregan dos atributos adicionales al archivo Feature.xml:

    • El atributo ReceiverAssembly contiene el nombre seguro completo del ensamblado de .NET Framework que contiene el código del controlador de eventos.

    • El atributo ReceiverClass almacena el nombre completo de la clase dentro de dicho ensamblado.

  4. Cree un archivo de manifiesto en la carpeta raíz. Es diferente del que se generó mediante Visual Studio Extensions para Windows SharePoint Services 3.0. A continuación se muestra el contenido.

    <Solution SolutionId="d63d0395-96a4-449e-83ce-5f7239bbd3ad"

    xmlns="https://schemas.microsoft.com/sharepoint/" >

      <FeatureManifests>

        <FeatureManifest Location="MSDNTaskCreator\Feature.xml" />

      </FeatureManifests>

      <Assemblies>

        <Assembly Location="MSDNTaskCreator.dll"

    DeploymentTarget="WebApplication" >

          <SafeControls>

            <SafeControl Assembly="MSDNTaskCreator, Version=1.0.0.0,

    Culture=neutral, PublicKeyToken=9f4da00116c38ec5"

    Namespace="MSDN.Samples" TypeName="MSDNTaskCreator" Safe="True" />

          </SafeControls>

        </Assembly>

            <Assembly Location="MSDNFeatureEventHandlers.dll"

    DeploymentTarget="GlobalAssemblyCache" />

      </Assemblies>

    </Solution>

    Observe que el nombre de la característica ya no incluye un GUID. El primer elemento del ensamblado tiene un atributo llamado DeploymentTarget, con el valor WebApplication en lugar de GlobalAssemblyCache. Un segundo elemento del ensamblado con la definición del ensamblado de .NET Framework contiene el código del controlador de eventos para implementarlo en la memoria caché de ensamblados global.

  5. Ahora ya se puede crear el archivo .ddf llamado, en este caso, .wsp_structure.ddf. Créelo directamente en la carpeta DeploymentFiles. Primero, agregue la siguiente información de encabezado.

    ;

    ; *** .ddf file for generating SharePoint solution.

    ;

    .OPTION EXPLICIT ; Generate errors

    .Set CabinetNameTemplate=MSDNTaskCreatorWebPart.wsp

    .set DiskDirectoryTemplate=CDROM ; All cabinets go in a single

    directory

    .Set CompressionType=MSZIP;** All files are compressed in cabinet

    files

    .Set UniqueFiles="ON"

    .Set Cabinet=on

    .Set DiskDirectory1=Package

    El encabezado consta de dos partes:

    • CabinetNameTemplate se define con el nombre del archivo de solución de SharePoint (MSDNTaskCreatorWebPart.wsp).

    • DiskDirectory1 se define como Package. Éste es el directorio que contiene el archivo .wsp generado.

    La segunda parte del archivo .ddf define la estructura del paquete.

    ; *** the manifest file

    manifest.xml manifest.xml

    ; *** the feature files

    Features\MSDNTaskCreator\Feature.xml MSDNTaskCreator\Feature.xml

    Features\MSDNTaskCreator\elementManifest.xml MSDNTaskCreator\elementManifest.xml

    Features\MSDNTaskCreator\MSDNTaskCreator.webpart

    MSDNTaskCreator\MSDNTaskCreator.webpart

    ; *** the assemblies

    Assemblies\MSDNTaskCreator.dll MSDNTaskCreator.dll

    Assemblies\MSDNFeatureEventhandlers.dll MSDNFeatureEventhandlers.dll

    El archivo .ddf es la entrada de Makecab.exe, una herramienta que se puede obtener mediante la instalación del kit de desarrollo de software de archivos .CAB de Microsoft, tal como se ha descrito anteriormente en esta sección. También se puede encontrar Makecab.exe en el kit de desarrollo de software de Smart Devices (ubicado de forma predeterminada en \Archivos de programa\Microsoft Visual Studio 8\SmartDevices\SDK\SDKTools).

  6. Para simplificar el empaquetamiento y la implementación, cree un archivo por lotes con el siguiente contenido.

    set MakeCabTool=c:\Program Files\Microsoft Visual Studio 8\

    SmartDevices\SDK\SDKTools\Makecab.exe

    set SPAdminTool=%CommonProgramFiles%\Microsoft Shared\

    web server extensions\12\BIN\stsadm.exe

    "%MakeCabTool%" /f wsp_structure.ddf

    "%SPAdminTool%" -o addsolution -filename package\

    MSDNTaskCreatorWebPart.wsp

    "%SPAdminTool%" -o deploysolution -name MSDNTaskCreatorWebPart.wsp

    -immediate -allowGACDeployment -url <URL name>

    Las dos primeras líneas son la configuración de las rutas de acceso a las herramientas Makecab y de línea de comandos Stsadm. A continuación, está la línea que crea el paquete de soluciones.

    Makecab.exe /f wsp_structure.ddf
    

    Como resultado de la ejecución, MSDNTaskCreatorWebPart.wsp aparece en la carpeta Package. La siguiente línea agrega MSDNTaskCreatorWebPart.wsp al almacén de la solución en la granja de servidores mediante la ejecución del siguiente comando:

    stsadm.exe -o addsolution -filename 
    Package\MSDNTaskCreatorWebPart.wsp
    

    La línea final del archivo por lotes es la implementación de la solución en una de las colecciones de sitios.

  7. Para implementar el paquete de soluciones, puede usar el vínculo Administración de soluciones de la ficha Operaciones de Administración central. Otra posibilidad es ejecutar los siguientes comandos en el símbolo del sistema:

    cd %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\Bin

    stsadm -o deploysolution -name MSDNTaskCreatorWebPart.wsp -local -allowGACDeployment -url <nombre de dirección URL>

    La característica de elementos web ya está instalada, pero aún no está activada.

  8. Para activar la característica, abra la página Características de la colección de sitios y, a continuación, haga clic en el botón Activar situado junto al nombre de la característica. Dado que se ejecuta código cuando se produce el evento FeatureActivated , se crea la lista de tareas de MSDN. Cuando se desactiva esta característica, se quita la lista de tareas del sitio raíz de la colección de sitios.

Creación de un paquete de soluciones mediante SharePoint Solution Generator

SharePoint Solution Generator es una aplicación independiente que puede convertir ciertos tipos de sitios web de Office SharePoint Server 2007 o Windows SharePoint Services 3.0 en un proyecto de definición de sitio de Visual Studio 2005. El contenido que no es compatible con SharePoint Solution Generator incluye:

  • Algunas plantillas de sitios y listas, como Sitio Wiki, Portal de publicación y Portal de colaboración

  • Campos de búsqueda y tipos de campos personalizados

  • Algunas configuraciones de sitios y de listas

Para obtener más información acerca de SharePoint Solution Generator, vea el artículo referente a las herramientas de Windows SharePoint Services 3.0: Visual Studio 2005 Extensions (https://go.microsoft.com/fwlink/?linkid=107267&clcid=0xC0A).

La interfaz de usuario de SharePoint Solution Generator permite compilar un sitio personalizado en una solución de SharePoint para la implementación de otra granja de servidores de SharePoint. Algunas personalizaciones pueden perderse al importar una solución a una granja de servidores, entre las que están las siguientes:

  • Las columnas de búsqueda desaparecen de todas las listas que las contengan.

  • Las personalizaciones realizadas en el Inicio rápido para el sitio se pierden.

  • Los elementos web configurados en páginas se pierden.

  • Los receptores de eventos de elementos de lista personalizados ya no están asociados a las listas.

Para obtener más información, vea Revisión de herramientas y procesos.

Realización de acciones personalizadas mientras se aprovisiona el sitio

El archivo de solución proporciona una forma de realizar acciones personalizadas mientras se aprovisiona el sitio. En el archivo de solución generado hay una carpeta llamada Site Provisioning Handler que contiene una clase llamada SiteProvisioning.cs. En esta clase está el método OnActivated, que permite agregar código personalizado. Se llama a este método cuando se aprovisiona un nuevo sitio mediante la definición de sitio. Sólo acepta un parámetro de tipo de propiedades con nombre SPFeatureReceiverProperties. Con este parámetro se pueden encontrar los objetos SPSite y SPWeb usando el siguiente código:

SPWeb web;
SPSite site;
if (properties.Feature.Parent is SPWeb)
{
    web = properties.Feature.Parent as SPWeb;
    site = web.Site;
}
Else
{
    site = properties.Feature.Parent as SPSite;
    web = site.RootWeb;
}

Creación de un paquete de soluciones mediante WSPBuilder

En Internet, hay disponibles públicamente muchas herramientas de código abierto y creadas por comunidades de programadores para Productos y Tecnologías de SharePoint. Aunque Microsoft no controla, revisa, promociona ni distribuye los proyectos de terceros en estos sitios, algunas de estas herramientas pueden ofrecer formas útiles de realizar operaciones habituales.

WSPBuilder es una herramienta de línea de comandos que se puede usar para automatizar el proceso de creación de paquetes de soluciones. WSPBuilder recorrerá de forma recursiva una carpeta y creará un paquete de soluciones de SharePoint, incluido el archivo manifest.xml y el archivo .wsp, basado en los archivos que se encuentran en la estructura de carpetas.

La herramienta WSPBuilder está disponible para su descarga en Codeplex (en inglés) (https://go.microsoft.com/fwlink/?linkid=106471&clcid=0xC0A) (en inglés).

Importación de un paquete de soluciones con la herramienta de línea de comandos Stsadm

Use el siguiente procedimiento para importar un archivo de solución a la base de datos de soluciones de una granja de servidores de Office SharePoint Server.

Importante

Debe ser miembro del grupo Administradores en todos los equipos en los que ejecute la herramienta de línea de comandos Stsadm.exe.

Importación de un paquete de soluciones con la herramienta de línea de comandos Stsadm

  1. En un servidor de la granja en el que desee importar una solución, en la unidad donde está instalado Productos y Tecnologías de SharePoint, cambie al directorio donde está almacenada la herramienta de línea de comandos Stsadm; para ello, escriba el comando siguiente en el símbolo del sistema:

    cd %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\Bin

  2. Escriba el siguiente comando:

    stsadm -addsolution -filename <nombre de la solución>

La solución se agrega a la base de datos de soluciones de la granja de servidores. Para usar la solución, siga el procedimiento de la siguiente sección de este artículo. Para obtener más información, vea Addsolution: operación de Stsadm (Office SharePoint Server).

Implementación de un paquete de soluciones mediante la herramienta de línea de comandos Stsadm

Se puede usar la operación deploysolution para implementar la solución a través de un símbolo del sistema.

Implementación de un paquete de soluciones en una sola colección de sitios

  1. En un servidor de la granja en el que desee implementar un paquete de soluciones importado, en la unidad donde está instalado Productos y Tecnologías de SharePoint, cambie al directorio donde está almacenada la herramienta de línea de comandos Stsadm; para ello, escriba el comando siguiente:

    cd %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\Bin

  2. Escriba el siguiente comando:

    **stsadm –o deploysolution –name <**nombre de la solución > –url <nombre de dirección URL>

    donde nombre de la solución es el nombre de la solución y nombre de dirección URL es la dirección URL de la aplicación web donde se desea implementar la solución importada.

En lugar de que el destino sea una única colección de sitios, si lo desea, puede usar el siguiente procedimiento para implementar la solución en todas las colecciones de sitios disponibles dentro de la granja de servidores con el parámetro allcontenturls.

Implementación de un paquete de soluciones en todas las colecciones de sitios

  1. En un servidor de la granja en el que desee implementar un paquete de soluciones importado, en la unidad donde está instalado Productos y Tecnologías de SharePoint, cambie al directorio donde está almacenada la herramienta de línea de comandos Stsadm; para ello, escriba el comando siguiente:

    cd %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\Bin

  2. Escriba el siguiente comando:

    stsadm –o deploysolution –name <nombre de la solución> –allcontenturls [-time] <hora de la implementación> [-allowgacdeployment] [-allowcaspolicies]

    donde nombre de la solución es el nombre de la solución.

De forma predeterminada, la solución se implementa de forma inmediata, pero también se puede programar la implementación con el parámetro time.

Los parámetros allowgacdeployment y allowcaspolicies son importantes. El parámetro allowgacdeployment permite a Office SharePoint Server 2007 implementar los ensamblados en la memoria caché de ensamblados global. El parámetro allowcaspolicies permite la creación de un archivo personalizado de directivas de seguridad de acceso a código (CAS) y su activación en el archivo Web.config de la colección de sitios de destino.

Para obtener más información, vea Deploysolution: operación de Stsadm (Office SharePoint Server).

Implementación de elementos de sitio desarrollados mediante características

En esta sección:

  • ¿Qué es una característica?

  • Cuándo se deben usar características

  • Creación de un paquete de características

  • Implementación manual de una característica

  • Instalación y activación de una característica mediante Stsadm

Para obtener más información acerca de características, vea Trabajar con características (https://go.microsoft.com/fwlink/?linkid=105337&clcid=0xC0A).

¿Qué es una característica?

Una característica es un contenedor de distintas extensiones definidas para Office SharePoint Server 2007 y Windows SharePoint Services 3.0, y está compuesta por un conjunto de archivos XML que se implementan en servidores web. Se puede implementar una característica como parte de una definición de sitio o un paquete de soluciones, y puede activar de forma individual una característica en sitios de Office SharePoint Server.

Las características reducen la complejidad que implica la realización de personalizaciones sencillas del sitio y son una opción eficaz al aplicar actualizaciones a una implementación. Las características eliminan la necesidad de copiar grandes fragmentos de código para cambiar las funcionalidades sencillas y también reducen los problemas de versiones e incoherencia que puedan producirse en los servidores cliente web.

Las características facilitan la activación o desactivación de la funcionalidad en el transcurso de una implementación, y los administradores pueden transformar fácilmente la plantilla o definición de un sitio simplemente activando y desactivando una característica concreta en la interfaz de usuario.

Las características proporcionan las siguientes capacidades:

  • Semántica para la definición del ámbito que permite especificar dónde se ejecutará el código personalizado.

  • Capacidad de especificar si una característica se instalará o no en la granja de servidores de destino cuando se implemente.

  • Capacidad de activar o desactivar características en un ámbito determinado sin instalar o desinstalar código.

  • Capacidad de almacenar los datos que requiere una característica dentro de su ámbito en una carpeta de propiedades con ámbito.

  • La base de un marco unificado para la implementación distribuida de soluciones de Windows SharePoint Services 3.0 y Office SharePoint Server 2007.

Los elementos contenidos en un archivo de definición de sitio de gran tamaño en Microsoft Office SharePoint Portal Server 2003 son elementos independientes en las características de Windows SharePoint Services 3.0. Un elemento es una unidad atómica dentro de una característica. El elemento Feature se usa en un archivo Feature.xml para definir una característica y especificar la ubicación de ensamblados, archivos, dependencias o propiedades compatibles con la característica. Una característica incluye un archivo Feature.xml y una cantidad indeterminada de archivos que describen elementos individuales. Otro elemento Feature procedente de un esquema distinto se usa en un archivo Onet.xml para especificar la activación de una característica dentro de una definición de sitio.

Un archivo Feature.xml normalmente apunta a uno o más archivos XML cuyas etiquetas <Elements> de nivel superior contienen definiciones para elementos que admiten la característica. Los elementos de Windows SharePoint Services 3.0 a menudo se corresponden con lo que eran nodos discretos en el archivo Onet.xml o Schema.xml de la versión anterior. Existen varios tipos de elementos; por ejemplo, un elemento de menú personalizado o un controlador de eventos.

Por ejemplo, una característica podría proporcionar una funcionalidad de tipo "Mis elementos favoritos" que incluya los siguientes elementos:

  • Una lista personalizada que almacene, para cada usuario, una lista de elementos favoritos, que se crea como una única lista oculta por cada espacio de trabajo cuando se habilita la característica.

  • Un elemento de menú personalizado que se asocia a todas las listas, llamado "Agregar a Favoritos", que agrega un elemento a la lista Favoritos.

  • Un elemento web que implementa el uso y el seguimiento de vínculos para mostrar en la parte superior los 10 favoritos principales del usuario.

Es posible que cada elemento de la característica, por sí mismo, no sea de gran utilidad, pero cuando se habilita la característica en un sitio, todos esos elementos se agregan a una solución completa.

Para obtener más información, vea los siguientes recursos en el SDK de Windows SharePoint Services 3.0:

Cuándo se deben usar características

Las características se pueden usar para implementar elementos de sitio desarrollados si se aplican una o varias de las siguientes condiciones:

  • Se requiere activación y desactivación   Cuando se implementan personalizaciones de elementos de sitio en una característica, se puede instalar, activar y desactivar la característica mediante el uso de operaciones de la herramienta de línea de comandos Stsadm o mediante el modelo de objetos. También se puede activar y desactivar una característica a través de la interfaz de usuario.

  • Flexibilidad del ámbito   Se puede activar una característica para un único ámbito, incluida una granja de servidores, una aplicación web, una colección de sitios y un sitio web.

  • Facilidad de implementación distribuida   Una característica es fácil de implementar en varias granjas de servidores.

  • Profundo control a través del modelo de objetos de características   El modelo de objetos de características permite especificar la lista de características instaladas dentro de un determinado ámbito y controlar si las características están habilitadas en los niveles de la granja de servidores y del sitio.

Tal como se muestra en los diagramas de implementación en el artículo Escenarios de personalización, se pueden usar características para implementar personalizaciones de elementos de sitio desarrollados entre estaciones de trabajo de programadores y una granja de integración, y entre una granja de servidores de integración y estaciones de trabajo cliente de creación y granjas de servidores piloto o de producción.

Creación de un paquete de características

Cuando se crea una página web personalizada en Office SharePoint Server 2007, la página ASPX puede pertenecer sólo a la colección de sitios raíz del servidor que ejecuta Office SharePoint Server 2007. Para crear una página bajo una colección de sitios que no está en la raíz, debe implementar la página web personalizada como una característica de SharePoint. Una característica de SharePoint requiere dos sencillos archivos XML y se implementa mediante la herramienta de línea de comandos Stsadm, un proceso que se puede automatizar con un archivo por lotes.

Nota

Para ejecutar la herramienta de línea de comandos Stsadm, debe cambiar al directorio en el que se almacena Stsadm. Para ello, en la unidad en la que está instalado Productos y Tecnologías de SharePoint, ejecute el siguiente comando: cd %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\Bin

Creación de una característica personalizada

  1. Cree un archivo Feature.xml. A continuación se muestra un ejemplo de archivo Feature.xml, que es necesario para asignar a la característica un identificador único y apuntar al archivo Module.xml.

    <?xml version="1.0"?>
    <Feature Id="8C4DD0CB-5A94-44da-9B7F-E9ED49C2B2DC" Title=
    "Custom Web page"
    Description="This simple example feature adds an ASPX page 
    with a hosted XmlFormView control" 
    Version="1.0.0.0" Scope="Web"
    xmlns="https://schemas.microsoft.com/sharepoint/">
    <ElementManifests>
        <ElementManifest Location="Module.xml"/>
    </ElementManifests>
    </Feature>
    
  2. Cree un archivo Module.xml. A continuación se muestra un ejemplo de archivo Module.xml, que contiene información acerca de la página o páginas que forman parte de la solución.

    <?xml version="1.0"?>
    <Elements xmlns="https://schemas.microsoft.com/sharepoint/">
        <module name="file" url="" path="">
            <file url="XmlFormViewPage.aspx" type="ghostable"> </file>
        </module>
    </Elements>
    
  3. Cambie el valor url del archivo al nombre de la página ASPX y, a continuación, ejecute las operaciones de línea de comandos tal como se describe en Instalación y activación de una característica mediante la herramienta de línea de comandos Stsadm. Puede crear un archivo por lotes y ejecutar estas operaciones de línea de comandos de forma secuencial.

  4. Realice las siguientes acciones:

    1. Cree una carpeta bajo la carpeta Features en el equipo servidor, que normalmente está ubicada en %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\TEMPLATE\FEATURES.

    2. Agregue la página ASPX personalizada a esta carpeta.

    3. Cree los archivos Feature.xml y Module.xml basándose en los ejemplos que se han mostrado en la sección anterior y agréguelos a la misma ubicación.

Para instalar y activar una característica después de su implementación, vea Instalación y activación de una característica mediante la herramienta de línea de comandos Stsadm más adelante en este artículo.

Implementación manual de una característica

Para implementar una característica, se agrega una subcarpeta que contiene una definición de característica al directorio de instalación de las características (en este ejemplo, unidad_local:\%COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\TEMPLATE\FEATURES). La subcarpeta Feature incluye un archivo Feature.xml que define las propiedades básicas de la característica y enumera elementos enlazados a ella, como archivos XML que contienen manifiestos de elementos y cualquier otro archivo auxiliar. Una carpeta de característica sólo puede contener un archivo Feature.xml o puede contener un archivo Feature.xml y cualquier número de archivos de elementos auxiliares, incluidos archivos XML, .aspx, .htm, .xsn, .resx, .dll y otros tipos de archivos.

Nota

Si cuando crea una carpeta dentro del directorio Features a través del Explorador de Windows, hace clic con el botón secundario del mouse en una carpeta, elige Nuevo y, a continuación, hace clic en Carpeta, la nueva carpeta no tendrá permisos heredados. Si implementa una característica en la carpeta, no se podrá obtener acceso a algunas páginas de Windows SharePoint Services 3.0, como las de configuración de sitios o vistas de lista. Para resolver este problema, cree la nueva carpeta en el símbolo del sistema con el comando md.

Después de crear la carpeta Feature, puede instalar y activar la característica mediante operaciones de línea de comandos Stsadm o mediante el modelo de objetos. También se puede activar una característica en la página Características de la colección de sitios o en la página Características del sitio de la colección de sitios o del sitio en el que desea activar la característica. Instalar una característica hace que su definición y elementos sean conocidos en toda una granja de servidores, y activarla hace que la característica esté disponible en un ámbito determinado.

Instalación y activación de una característica mediante la herramienta de línea de comandos Stsadm

Las características se instalan en el directorio 12\Template\Features, con cada característica en su propio subdirectorio. En la raíz de esta carpeta, un archivo Feature.xml define el contenido de la característica.

Nota

Para ejecutar la herramienta de línea de comandos Stsadm, debe cambiar al directorio en el que está almacenado la característica. Para ello, escriba el siguiente comando: cd %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\Bin

Se deben instalar las características individuales para poder usarlas. Para ello, ejecute el siguiente comando en el símbolo del sistema:

stsadm -o installfeature-filename <ruta de acceso relativa> -name <carpeta de la característica> [-force]

Para obtener más información, vea Installfeature: operación de Stsadm (Office SharePoint Server).

Además de instalar una característica, debe activarse para poder usarla (a menos que el ámbito de la característica sea la granja de servidores, en cuyo caso se activa de forma automática).

Para activar una característica, ejecute el siguiente comando:

stsadm -o activatefeature -filename <ruta de acceso relativa> -name <carpeta de la característica> -id <identificador de la característica> [-url] <nombre de la dirección URL> [-force]

Para obtener más información, vea Activatefeature: operación de Stsadm (Office SharePoint Server).

Para desinstalar una característica de forma que su definición ya no esté disponible dentro de una granja de servidores, se puede usar la operación uninstall. Para obtener más información, vea Uninstallfeature: operación de Stsadm (Office SharePoint Server).

Nota

Se debe desactivar una característica antes de desinstalarla, a menos que su ámbito sean aplicaciones web o granjas de servidores.

Tras la desinstalación de una característica, restablezca Internet Information Services (IIS) para que los cambios surtan efecto.

Para desactivar una característica de forma que quede inactiva en su ámbito asignado originalmente sin desinstalarla, se puede usar la operación deactivate. Para obtener más información, vea Deactivatefeature: operación de Stsadm (Office SharePoint Server).

Descarga de este libro

En este tema se incluye el siguiente libro descargable para facilitar su lectura e impresión:

Vea la lista completa de los libros disponibles en la sección de libros descargables para Office SharePoint Server 2007.

Vea también

Conceptos

Implementación de personalizaciones
Implementación de personalizaciones de elementos de sitio creados
Componentes del paquete de soluciones