Compartir a través de


Introducción a los elementos web personalizados del motor de búsqueda Enterprise Search

En este tema se tratan los requisitos previos para el desarrollo de elementos web personalizados de Enterprise Search.

Desarrollo de elementos web

Los elementos web de Windows SharePoint Services 3.0 mejoran las versiones anteriores de las tecnologías de elementos web. Puede usar elementos web de Windows SharePoint Services 3.0 y elementos web de Microsoft ASP.NET 2.0.

Nota

La clase base que debe usar al crear un elemento web de Windows SharePoint Services es la clase Microsoft.SharePoint.WebPartPages.WebPart. La clase base que debe usar al crear un elemento web de ASP.NET es la clase System.Web.UI.WebControls.WebPart.

La clase base proporciona las propiedades básicas que son comunes para todos los elementos web, tales como Title, Description y demás. Puede agregar las propiedades personalizadas a su clase derivada y, en tiempo de ejecución, los dos conjuntos de propiedades se presentan y ejecutan como un solo conjunto de propiedades.

Esencialmente, un elemento web es un ensamblado de control personalizado web .NET que usa un archivo de descripción de elemento web en el formato de Windows SharePoint Services (.dwp) o en el formato ASP.NET 2.0 (.webpart). El archivo de descripción del elemento web puede almacenarse en cualquier equipo y se puede hacer referencia a él también desde cualquier equipo, y contiene metadatos XML que describen una instancia del elemento web. El ensamblado del elemento web .NET es un archivo DLL que se debe instalar y registrar en cada equipo de Windows SharePoint Services que use el elemento web.

Elección entre los elementos web de ASP.NET y los elementos web de SharePoint

En general, debe diseñar nuevos elementos web que se hereden de la clase WebPart de ASP.NET. Los elementos web de ASP.NET tienen nombres de archivo de descripción que usan la extensión .webpart. Los elementos web de ASP.NET proporcionan la mayor flexibilidad y compatibilidad con los sitios web que no están acoplados en forma ajustada con Windows SharePoint Services.

Los elementos web de Windows SharePoint Services 3.0 proporcionan compatibilidad con versiones anteriores (con Windows SharePoint Services 2.0). Los elementos web de SharePoint tienen nombres de archivo de descripción que usan la extensión .dwp. Los elementos web de SharePoint incluyen funcionalidad adicional pero se pueden usar sólo en un sitio de SharePoint. A continuación, se muestra una lista de las características adicionales de los elementos web de SharePoint.

  • Conexiones entre páginas en los sitios de SharePoint

  • Conexiones entre elementos web fuera de una zona de elementos web

  • Conexiones de cliente que usan el componente de servicios de páginas de elementos web

  • Almacenamiento en la memoria caché de datos del elemento web

  • Procesamiento asincrónico con elementos de trabajo del elemento web

Para obtener más información sobre cómo desarrollar y conectar elementos web, importar un elemento web de ASP.NET a un sitio de Windows SharePoint Services y el modelo de objetos de elementos web de SharePoint, consulte el SDK de Windows SharePoint Services 3.0.

Uso del modelo de objetos de consultas

Enterprise Search proporciona un modelo de objetos que puede usar para ejecutar las consultas de búsqueda mediante programación con respecto al componente de búsqueda. El espacio de nombres Microsoft.Office.Server.Search.Query incluye dos clases que proporcionan esta funcionalidad:

Para obtener más información sobre el uso del modelo de objetos de consultas de búsqueda de Enterprise Search, consulte Getting Started with the Enterprise Search Query Object Model.

Configuración del entorno de desarrollo

El enfoque compatible para configurar el entorno de desarrollo de elementos web es realizar el desarrollo localmente en un servidor de Office SharePoint Server 2007.

Puede usar Microsoft Office SharePoint Designer 2007 para importar los elementos web a las páginas web, pero no para crear elementos web nuevos. Para desarrollar un ensamblado personalizado de elementos web, debe usar una herramienta de desarrollo, como Microsoft Visual Studio 2005. Con Visual Studio 2005, se beneficia de un entorno de desarrollo completo y de las características de depuración. Para obtener más información sobre el uso de Visual Studio 2005 para crear elementos web, consulte:

Creación de un proyecto de elementos web

Puede usar la plantilla Biblioteca de controles Web para crear el proyecto de Visual Studio 2005 para el elemento web. Esta plantilla se encuentra en el cuadro de diálogo Nuevo proyecto, en el nodo de Windows para C# y Visual Basic.

Referencias del proyecto

El proyecto creado a partir de la plantilla Biblioteca de controles Web incluye las referencias a los ensamblados necesarios para un elemento web de ASP.NET. Sin embargo, debido a que usará el modelo de objetos de consulta del motor de búsqueda Enterprise Search para tener acceso al componente de búsqueda, debe agregar las referencias a su proyecto para ciertos ensamblados.

Dado que está usando el modelo de objetos de consultas del motor de búsqueda Enterprise Search, debe incluir una referencia a Microsoft.Office.Server.Search.dll. Otras referencias de ensamblado de la siguiente lista son opcionales, pero las necesitará en la mayoría de los escenarios en que esté trabajando con el modelo de objetos de consulta del motor de búsqueda Enterprise Search.

Agregue las siguientes referencias a su proyecto:

  • Microsoft.SharePoint.dll

    Este ensamblado es necesario si su clase de elementos web personalizada se hereda de la clase Microsoft.SharePoint.WebPartPages.WebPart. También puede ser necesario si tiene que usar el objeto SPFarm para recuperar mediante programación la información sobre el servidor que aloja el elemento web.

  • Microsoft.Office.Server.dll

    Este ensamblado puede ser necesario si tiene que usar el modelo de objetos de Office Server Administration para recuperar mediante programación la información sobre el proveedor de servicios compartidos para el componente de búsqueda.

  • System.Data.dll

  • System.XML.dll

Creación de una clase de elementos web

Puede crear la clase de elementos web mediante la modificación de la clase predeterminada que se crea a partir de la plantilla Biblioteca de controles Web. Las modificaciones que realizará dependen de si está creando un elemento web de ASP.NET o un elemento web de SharePoint. Estas modificaciones se explican en las siguientes secciones.

También necesitará agregar la directiva del espacio de nombres using para Microsoft.Office.Server.Search.Query para las clases de ambos tipos de elementos web. A continuación, se muestra la sintaxis que se debe usar:

using Microsoft.Office.Server.Search.Query;

Modificaciones de un elemento web de ASP.NET

Además del espacio de nombres Query, también debe agregar la directiva del espacio de nombres para la clase de elementos web de ASP.NET. A continuación, se muestra la sintaxis que deberá usar:

using System.Web.UI.WebControls.WebParts;

Modificaciones de un elemento web de SharePoint

Además del espacio de nombres Query, también debe agregar la directiva del espacio de nombres para la clase del elemento web de SharePoint. A continuación, se muestra la sintaxis que deberá usar:

using Microsoft.SharePoint.WebPartPages;

Nota

Para garantizar que su clase de elementos web derive de la clase que espera, no incluya estas dos directivas del espacio de nombres en la misma clase.

Si está creando un elemento web de SharePoint, también deberá especificar el espacio de nombres de la raíz XML para su elemento web. A continuación, se muestra la sintaxis que deberá usar:

...
using Microsoft.SharePoint.WebPartPages:
namespace CustomSearchWebPart
{
    [XmlRoot(Namespace = "CustomSearchWebPart")]
    public class customSearchQuery : WebPart
...

Implementación del elemento web

Cuando compila su proyecto, tiene la opción de asignar un nombre seguro al ensamblado del elemento web. Si implementa el elemento web en la memoria caché de ensamblados global, debe asignar un nombre seguro al ensamblado. Si no lo está implementando en la memoria caché de ensamblados global, sino que lo va a implementar en el directorio _app_bin para el sitio de Office SharePoint Server 2007, la asignación de un nombre seguro al ensamblado es opcional.

Para obtener más información acerca de la asignación de nombres seguros a los ensamblados de elementos web y a las ubicaciones de implementación, consulte Administrar elementos web en servidores virtuales .

Después de compilar el elemento web, puede crear los archivos que debe implementar en éste. Para los elementos web de SharePoint, cree un archivo .dwp; para los elementos web de ASP.NET, cree un archivo .webpart.

Creación de un archivo .dwp

Puede crear y editar un archivo .dwp simple con un editor de texto, como el Bloc de notas. En el siguiente ejemplo de código se muestra la sintaxis XML para un elemento web de SharePoint simple, sin un nombre seguro:

<?xml version="1.0"?>
<WebPart xmlns="https://schemas.microsoft.com/WebPart/v2">
   <Assembly>CustomWebPart, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=null</Assembly>
   <TypeName>CustomWebPart.customSearchQuery</TypeName>
   <Title>Custom Search Web Part</Title>
</WebPart>

Para obtener más información acerca de la creación de estos archivos, consulte lo siguiente:

Creación de un archivo .webpart

Puede crear y editar manualmente un archivo .webpart simple con un editor de texto, como el Bloc de notas. En el siguiente ejemplo de código se muestra la sintaxis XML para un elemento web simple, sin un nombre seguro:

<?xml version="1.0" encoding="utf-8"?>
<webParts>
  <webPart xmlns="https://schemas.microsoft.com/WebPart/v3">
    <metaData>
     <type name="CustomASPNETWebPart.customSearchQuery, CustomASPNETWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <importErrorMessage>Cannot import this Web Part.</importErrorMessage>
    </metaData>
    <data>
      <properties>
        <property name="Title" type="string">Custom Search Query</property>
      </properties>
    </data>
  </webPart>
</webParts>

También puede generar dinámicamente el archivo .webpart al exportar el elemento web desde una página ASP.NET.

Registro e importación del elemento web como SafeControl

Antes de que pueda usar el elemento web en el sitio, debe registrarlo en la lista de SafeControl y luego importarlo al sitio.

Para registrar el elemento web en la lista de SafeControl

  1. Abra el archivo web.config ubicado en la carpeta raíz del sitio.

  2. Busque la etiqueta SafeControls.

  3. Agregue una etiqueta para el elemento web.

En el siguiente ejemplo de código se muestra la sintaxis de la etiqueta para un elemento web simple, instalado en el directorio BIN, sin un nombre seguro:

<SafeControl Assembly="CustomSearchWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
 Namespace="CustomSearchWebPart" TypeName="*" Safe="True" />

El paso final de la implementación es importar el elemento web al sitio.

Para importar un elemento web a un sitio

  1. En el explorador, abra la página a la que desea agregar el elemento web, haga clic en el menú Acciones del sitio y, a continuación, en Editar página.

  2. Una vez que la página está en modo de edición, haga clic en Agregar un elemento Web para la zona de elementos web que desee, derecha o izquierda.

  3. En el cuadro de diálogo Agregar elementos Web, haga clic en el vínculo Galería de elementos Web y opciones avanzadas.

  4. Haga clic en Examinar y, a continuación, en Importar.

  5. Haga clic en Examinar, desplácese a la ubicación donde guardó el archivo .dwp o .webpart, selecciónelo y haga clic en Abrir.

El elemento web debe aparecer en el cuadro de diálogo. Puede arrastrar el elemento web desde el cuadro de diálogo hasta la página.

Vea también

Otros recursos

Creación de elementos web personalizados del motor de búsqueda Enterprise Search
Tutorial: Creación de un elemento web personalizado del motor de búsqueda Enteprise Search
Tutorial: Crear un elemento web de ASP.NET para el ejemplo de aplicación de datos profesionales de AdventureWorks