SPMetal

Última modificación: viernes, 04 de febrero de 2011

Hace referencia a: SharePoint Foundation 2010

SPMetal es una herramienta de línea de comandos que genera clases de entidad, que proporcionan una interfaz orientada al objeto a las bases de contenido de Microsoft SharePoint Foundation. Estas clases se usan principalmente en las consultas LINQ to SharePoint; pero también se usan para agregar, eliminar y cambiar elementos de lista con resolución de conflictos de concurrencia. Por último, se pueden usar como alternativa al modelo de objetos regular de SharePoint Foundation para hacer referencia a contenido.

La herramienta se incluye con SharePoint Foundation y está ubicada en %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\BIN.

SPMetal suele ejecutarse como un comando anterior a la compilación en Microsoft Visual Studio, porque el código que genera normalmente forma parte de una solución que incluye un nuevo tipo de sitio que está evolucionando durante el ciclo de desarrollo. Debido a que SPMetal sobrescribe los archivos que genera con cada ejecución, para una determinada ruta de acceso de salida y en un sitio web determinado, no debe realizar cambios a estos archivos. Las clases que genera son de tipo partial, para que pueda agregarles miembros en archivos de código distintos creados manualmente.

Si la solución se basa en un tipo de sitio existente, como el sitio de grupo que se incluye en SharePoint Foundation, y solo hace referencia a listas que están siempre presentes en tales sitios y a campos (columnas) que están siempre presentes en esas listas, puede ejecutar SPMetal una sola vez y realizar cambios en el archivo generado que no se va a sobrescribir.

Para obtener más información sobre los aspectos prácticos de usar SPMetal, vea Procedimiento para usar SPMetal.

Sintaxis básica

SPMetal usa la sintaxis básica de otras herramientas de línea de comandos de Windows:

SPMetal [options]

Delante de cada opción hay una barra diagonal. La mayoría de las opciones requieren valores, en cuyo caso hay un carácter de dos puntos después del nombre de la opción y luego sigue el valor:

SPMetal /option1 /option2:value /option3:"value with a space"

Las opciones pueden estar en cualquier orden. No se requieren todas las opciones, pero si incluye una opción que lleva un valor, debe darle uno. Si un valor contiene espacios, debe incluir todo el valor entre comillas (").

Al usar la opción "/?" por sí sola, se muestra una breve ayuda sobre la herramienta en la salida estándar.

Opciones de la línea de comandos

En la siguiente tabla se muestra una lista de las opciones y su propósito.

Opción

Definición de valor

Ejemplo

Comentarios

web

La dirección URL absoluta completa del sitio web cuyos datos modelan las clases de entidad.

/web:http://ContosoServer/Marketing

Obligatorio. Puede tener números de puerto en el nombre del servidor; por ejemplo, /web:http://ContosoServer:5555/Marketing.

No incluya la página principal ni ninguna otra página en la dirección URL

code

La ruta de acceso relativa o absoluta y el nombre de archivo del archivo de salida.

/code:MarketingSite.cs

Si no se usa esta opción, el código generado se transmite a la salida estándar.

Si no se especifica una extensión de nombre de archivo o la extensión de nombre de archivo no es "cs" ni "vb", se debe usar la opción language.

El nombre de archivo (exclusivo de la extensión) también se usa para formar el principio del nombre de una clase que deriva de DataContext; en este ejemplo la clase se llama MarketingSiteDataContext. La clase derivada representa las listas y los datos de todo el sitio web, por lo que debe elegir un nombre de archivo que exprese ese significado. (Puede invalidar este comportamiento de nomenclatura con un archivo XML de parámetros de SPMetal.)

language

El lenguaje de programación del código generado.

/language:csharp

Los únicos valores posibles son "csharp" y "vb".

Si el valor de la opción code tiene la extensión de nombre de archivo "cs" o "vb", SPMetal puede inferir el lenguaje y no se necesita la opción language.

namespace

El espacio de nombres que contiene las declaraciones de clase de entidad.

/namespace:Contoso.TeamActivityReports

Si esta opción no se usa, el código generado no especifica un espacio de nombres y el ensamblado compilado trata el espacio de nombres predeterminado que se especificó en las propiedades del proyecto de Visual Studio como el espacio de nombres de las clases generadas.

useremoteapi

Sin valor.

/useremoteapi

Esta opción indica que el valor del parámetro web apunta a un servidor que no es el mismo en el que se está ejecutando SPMetal. Un uso posible para este parámetro es la generación de código en un sitio web en una implementación en línea de SharePoint en la que piensa cargar la solución como una solución de espacio aislado.

user

El usuario en cuyo contexto se ejecuta SPMetal.

/user:Contoso\bob

Use esta opción si no desea que SPMetal se ejecute en su propio contexto. Especifique el dominio.

password

La contraseña para el usuario que se especificó en la opción user.

/password:$5U+ryz

Para usar junto con la opción user.

serialization

Especifica si los objetos que crean instancias de las clases generadas son serializables.

/serialization:unidirectional

Los únicos valores posibles son "unidirectional" y "none". Especifique "unidirectional" si desea que los objetos sean serializables. SPMetal agrega atributos apropiados del espacio de nombres System.Runtime.Serialization a las declaraciones de clase y propiedad, y agrega controladores para el evento Deserializing.

Si la opción no se usa, se asume "none".

parameters

Identifica la ruta de acceso y el nombre de un archivo XML que contiene invalidaciones de las opciones de configuración predeterminadas de SPMetal.

/parameters:MarketingSite.xml

Por lo general, no va a volver a usar exactamente el mismo archivo XML de parámetros para distintos sitios web, por lo que el archivo debería tener el mismo nombre que el sitio web.

Para obtener más información sobre el archivo de parámetros, vea Invalidación de valores predeterminados de SPMetal con un archivo XML de parámetros.

Ejemplo

Genere código C#:

SPMetal /web:http://ContosoServer/Marketing /code:MarketingSite.cs

Genere código de Visual Basic con configuración de parámetros personalizada:

SPMetal /web:http://ContosoServer/Marketing /code:MarketingSite.vb /parameters:MarketingSite.xml

Genere código de Visual Basic desde un contexto de usuario específico:

SPMetal /web:http://ContosoServer/Marketing /code:MarketingSite.vb /user:Contoso\sally /password:7Yj38d

Vea también

Tareas

Procedimiento para usar SPMetal

Conceptos

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

Clases de entidad

Reglas de generación de código SPMetal predeterminado