Procedimiento para usar SPMetal

Última modificación: miércoles, 02 de febrero de 2011

Hace referencia a: SharePoint Foundation 2010

En este artículo se describe cómo usar la herramienta de línea de comandos SPMetal para generar las declaraciones de clase de entidad para las soluciones de Microsoft SharePoint Foundation.

Para configurar su proyecto de desarrollo para usar SPMetal

  1. Agregue la ruta de acceso de SPMetal.exe al final de la variable de entorno %PATH% de Windows en el equipo de desarrollo. Normalmente, es %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\BIN.

    1. En el menú Inicio del equipo con Windows Server, haga clic con el botón secundario en Equipo y, a continuación, haga clic en Propiedades.

    2. En el cuadro de diálogo Sistema, haga clic en Configuración avanzada del sistema.

    3. En el cuadro de diálogo Propiedades del sistema, haga clic en la ficha Avanzadas y, a continuación, haga clic en Variables de entorno.

    4. En la lista Variables del sistema, resalte Path y, a continuación, haga clic en Modificar.

    5. En el cuadro de diálogo Editar la variable del sistema, escriba un punto y coma al final del Valor de variable y, a continuación, agregue la ruta de acceso a la carpeta que contiene SPMetal.exe. Haga clic en Aceptar tres veces.

    Nota

    Si Microsoft Visual Studio está abierto cuando se lleva a cabo este paso, debe cerrarlo y volver a iniciarlo para que reconozca la nueva variable %PATH%.

  2. Cree un sitio web de SharePoint Foundation en el equipo de desarrollo para que funcione como una base de pruebas con la que desarrollará el código LINQ to SharePoint. En la medida en que se puede determinar en el estado actual de desarrollo, debe tener las mismas listas, columnas y campos de búsqueda que el tipo de sitio final que incluirá con la solución. La herramienta SPMetal leerá esta información. Sin embargo, puede volver a ejecutar la herramienta, por lo que es posible cambiar el diseño a medida que el proyecto evoluciona.

  3. Abra el proyecto de Visual Studio y agregue un archivo de texto al proyecto con el nombre Prebuild.bat.

  4. Abra Prebuild.bat si aún no está abierto y agregue las siguientes líneas.

    Echo Off
    SET SPLANGEXT=cs
    
    Echo Backing up previous version of generated code ... 
    IF NOT EXIST .\PreviousVersionGeneratedCode MkDir .\PreviousVersionGeneratedCode
    IF EXIST SiteName.%SPLANGEXT% xcopy /Y/V SiteName.%SPLANGEXT% .\PreviousVersionGeneratedCode
    
    Echo Generating code ...
    SPMetal /web:http://MyServer/MySite /code:SiteName.%SPLANGEXT%
    

    Realice los siguientes cambios en el código, según sea necesario:

    • Reemplace "cs" con "vb" en la segunda línea, si usa Microsoft Visual Basic.

    • Reemplace "MyServer/MySite" con la ruta de acceso al sitio web del equipo de desarrollo en el que se ejecutará el código LINQ to SharePoint.

    • Reemplace "SiteName" las tres veces que aparece con el nombre del sitio web. Además de ser un nombre de archivo, esta cadena se convierte en parte de un nombre de clase que representa todas las listas y los datos del sitio web. Use una cadena que transmita que la clase representa todo el sitio web; por ejemplo, la indicación "MySite" que aparece al final de la dirección URL o, posiblemente, el valor del marcador de posición de contenido PlaceHolderPageTitle de la página principal.

    Este archivo por lotes guarda la versión anterior del código generado, para que pueda compararla con la nueva versión cuando sea necesario para la depuración.

  5. Guarde el archivo, pero no lo guarde al hacer clic en el botón Guardar o Guardar todos los archivos de la barra de herramientas o al seleccionar Guardar en el menú Archivo. La codificación predeterminada de los archivos de texto en Visual Studio no es compatible con los archivos por lotes de sistema. En su lugar, seleccione Guardar Prebuild.bat como en el menú Archivo. En el cuadro de diálogo Guardar archivo como, haga clic en la flecha abajo del botón Guardar. Seleccione Guardar con codificación. En el diálogo Opciones avanzadas para guardar, seleccione Unicode (UTF-8 sin firma) - Página de códigos 65001 en la lista desplegable Codificación y, a continuación, haga clic en Aceptar. Asegúrese de seleccionar la versión "sin firma" de UTF-8.

    SugerenciaSugerencia

    Si guarda accidentalmente el archivo de forma incorrecta, ábralo de nuevo y realice un pequeño cambio, como agregar un carácter de espacio, y vuelva a guardarlo de la forma correcta. No se volverá a guardar realmente si no realiza un cambio.

  6. En el Explorador de soluciones, haga clic con el botón secundario en el nombre del proyecto y, a continuación, seleccione Propiedades. Abra la ficha Eventos de generación.

  7. En el cuadro Línea de comandos del evento anterior a la generación (no en Posterior a la generación), escriba las siguientes dos líneas.

    cd $(ProjectDir)
    Prebuild.bat
    

    Haga clic en Guardar todo.

  8. Después de generar el proyecto por primera vez, en el directorio del proyecto en Windows figurará un archivo SiteName.cs (o SiteName.vb), pero no en el Explorador de soluciones. Agréguelo al proyecto como un Elemento existente.

Cada vez que vuelva a generar el proyecto, SPMetal vuelve a generar las declaraciones de clases de entidad y sus propiedades. Dado que el archivo generado se sobrescribe cada vez, no debe hacer ningún cambio en él. Sin embargo, las clases que genera SPMetal se marcan como "partial", por lo que es posible agregar más miembros en otro archivo de código creado manualmente, que SPMetal no sobrescriba.

Configuración de SPMetal

En el procedimiento anterior solo se usaron los parámetros de SPMetal mínimos necesarios para generar un archivo de código y se supuso que se deseaba que SPMetal usara la configuración predeterminada para determinar qué listas y columnas debe modelar en el código generado. En el siguiente procedimiento se tratarán variaciones del funcionamiento de SPMetal.

Para ajustar los parámetros y la configuración predeterminada de SPMetal

  1. Para especificar un espacio de nombres para las clases generadas, especificar si los objetos creados a partir de ellos son serializables o especificar que la dirección URL del modificador /web es un equipo remoto (es decir, no es el equipo de desarrollo), agregue las opciones /namespace, /serialization o /useremoteapi a la línea de comandos SPMetal en el archivo prebuild.bat. Para obtener más información sobre estas opciones, vea SPMetal.

  2. Para ejecutar SPMetal en un contexto de usuario que no sea el suyo, agregue las opciones /user y /password a la línea de comandos SPMetal en prebuild.bat. Para obtener más información sobre estas opciones, vea SPMetal.

  3. Para usar una extensión de nombre de archivo que no sea "cs" o "vb" para el archivo de código generado, agregue una opción /language a la línea de comandos SPMetal en prebuild.bat. Para obtener más información sobre esta opción, vea SPMetal.

  4. Inspeccione el archivo generado después de la primera ejecución de SPMetal y, nuevamente, después de realizados los cambios finales en las listas, los tipos de contenido y los campos (columnas) del sitio web. En cualquiera de las siguientes circunstancias, la opción predeterminada de SPMetal puede crear código que no satisfaga sus necesidades o que sea perjudicial para la legibilidad del código. En dichos casos, considere crear un archivo de parámetros de SPMetal y agregar una opción /parameters a la línea de comandos SPMetal en prebuild.bat. Para obtener más información sobre el comportamiento predeterminado de XPMetal (el archivo XML de parámetros) o la opción /parameters, vea Reglas de generación de código SPMetal predeterminado, Invalidación de valores predeterminados de SPMetal con un archivo XML de parámetros y SPMetal, respectivamente.

    • Una o varias de las propiedades que representan listas tienen un nombre inadecuado.

    • Debe incluir o excluir un conjunto diferente de listas, tipos de contenido y columnas del conjunto predeterminado que SPMetal modela.

Vea también

Referencia

SPMetal

Conceptos

Invalidación de valores predeterminados de SPMetal con un archivo XML de parámetros

Reglas de generación de código SPMetal predeterminado