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