SPMetal
Letzte Änderung: Freitag, 4. Februar 2011
Gilt für: SharePoint Foundation 2010
SPMetal ist ein Befehlszeilentool, mit dem Entitätsklassen generiert werden, die eine objektorientierte Schnittstelle zu den Microsoft SharePoint Foundation-Inhaltsdatenbanken bereitstellen. Diese Klassen kommen vor allem in LINQ to SharePoint-Abfragen zum Einsatz, werden aber auch zum Hinzufügen, Löschen und Ändern von Listenelementen zur Auflösung von Parallelitätskonflikten verwendet. Und nicht zuletzt können sie als Alternative zum regulären SharePoint Foundation-Objektmodell für das Verweisen auf Inhalte dienen.
Das Tool ist in SharePoint Foundation enthalten und befindet sich im Verzeichnis %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\BIN.
SPMetal wird in der Regel als Befehl vor dem Build in Microsoft Visual Studio ausgeführt, da der von ihm generierte Code normalerweise Teil einer Lösung ist, die einen neuen Websitetyp enthält, der sich während des Entwicklungszyklus weiterentwickelt. Da SPMetal die von ihm generierten Dateien für einen gegebenen Ausgabepfad und eine gegebene Website mit jeder Ausführung überschreibt, sollten Sie an diesen Dateien keine Änderungen vornehmen. Die von diesem Tool generierten Klassen sind partial, sodass Sie ihnen Member in separaten, manuell erstellten Codedateien hinzufügen können.
Wenn Ihre Lösung auf einem vorhandenen Websitetyp basiert, z. B. auf der in SharePoint Foundation enthaltenen Teamwebsite, und wenn sie nur auf Listen verweist, die in solchen Websites immer vorhanden sind, und nur Felder (Spalten), die in diesen Listen immer vorhanden sind, können Sie SPMetal einmal ausführen und Änderungen an der generierten Datei vornehmen, die dann nicht überschrieben werden.
Weitere Informationen zur praktischen Anwendung von SPMetal finden Sie unter Vorgehensweise: Verwenden von SPMetal.
Grundlegende Syntax
In SPMetal wird die grundlegende Syntax anderer Windows-Befehlszeilentools verwendet:
SPMetal [options]
Vor jeder Option steht ein Schrägstrich (/). Für die meisten Optionen werden Werte benötigt. In diesem Fall wird der Name der Option von einem Doppelpunkt und dem betreffenden Wert gefolgt:
SPMetal /option1 /option2:value /option3:"value with a space"
Optionen können in einer beliebigen Reihenfolge angegeben werden. Nicht jede Option ist erforderlich. Wenn Sie jedoch eine Option angeben, die einen Wert annimmt, müssen Sie ihr einen Wert zuweisen. Enthält ein Wert Leerzeichen, müssen Sie den gesamten Wert zwischen Anführungszeichen (") schreiben.
Wenn Sie die "/?"-Option alleine angeben, werden kurze Hilfeinformationen über das Tool in der Standardausgabe angezeigt.
Befehlszeilenoptionen
In der folgenden Tabelle werden die einzelnen Optionen und deren Zweck aufgelistet.
Option |
Wertdefinition |
Beispiel |
Anmerkungen |
---|---|---|---|
web |
Die vollständige, absolute URL der Website, deren Daten durch die Entitätsklassen modelliert werden. |
/web:http://ContosoServer/Marketing |
Erforderlich. Sie können im Servernamen auch Portnummern verwenden, z. B. /web:http://ContosoServer:5555/Marketing. Schließen Sie in die URL nicht die Homepage oder eine andere Seite ein. |
code |
Der relative oder absolute Pfad und Dateiname der Ausgabedatei. |
/code:MarketingSite.cs |
Wird diese Option nicht verwendet, so wird der generierte Code in die Standardausgabe gestreamt. Wird keine Dateinamenerweiterung angegeben, oder lautet die Dateinamenerweiterung weder CS noch VB, dann muss die language-Option verwendet werden. Der Dateiname (ohne die Erweiterung) bildet auch den Anfang des Namens einer Klasse, die von DataContext abgeleitet wird. Im aktuellen Beispiel heißt die Klasse MarketingSiteDataContext. Die abgeleitete Klasse stellt die Listen und Daten der gesamten Website dar. Wählen Sie deshalb einen Dateinamen aus, der diese Bedeutung erkennen lässt. (Sie können dieses Verhalten bei der Benennung mit einer SPMetal-Parameter-XML-Datei überschreiben.) |
language |
Die Programmiersprache des generierten Codes. |
/language:csharp |
Die einzigen möglichen Werte sind "csharp" und "vb". Hat der Wert der code-Option entweder "cs" oder "vb" als Dateinamenerweiterung, kann SPMetal die Sprache ableiten, und die language-Option wird nicht benötigt. |
namespace |
Der Namespace, der die Deklarationen der Entitätsklassen enthält. |
/namespace:Contoso.TeamActivityReports |
Wird diese Option nicht verwendet, gibt der generierte Code keinen Namespace an, und die kompilierte Assembly behandelt den in den Eigenschaften des Visual Studio-Projekts angegebenen Standardnamespace als den Namespace der generierten Klassen. |
useremoteapi |
Kein Wert. |
/useremoteapi |
Diese Option zeigt an, dass der Wert des web-Parameters auf einen Server zeigt, der nicht der Server ist, auf dem SPMetal ausgeführt wird. Dieser Parameter kann z. B. zum Generieren von Code für eine Website in einer Onlinebereitstellung von SharePoint verwendet werden, in die Sie Ihre Lösung als Lösung mit eingeschränkter Sicherheitsstufe hochladen möchten. |
user |
Der Benutzer, in dessen Kontext SPMetal ausgeführt wird. |
/user:Contoso\bob |
Verwenden Sie diese Option, wenn SPMetal nicht in Ihrem eigenen Kontext ausgeführt werden soll. Geben Sie die Domäne an. |
password |
Das Kennwort für den in der user-Option angegebenen Benutzer. |
/password:$5U+ryz |
Verwenden Sie diesen Parameter in Verbindung mit der user-Option. |
serialization |
Gibt an, ob Objekte, die die generierten Klassen instanziieren, serialisierbar sind. |
/serialization:unidirectional |
Die einzigen möglichen Werte sind "unidirectional" und "none". Geben Sie "unidirectional" an, wenn die Objekte serialisierbar sein sollen. SPMetal fügt den Klassen- und Eigenschaftendeklarationen geeignete Attribute aus dem System.Runtime.Serialization-Namespace sowie dem Deserialisierungsereignis entsprechende Handler hinzu. Wird diese Option nicht verwendet, wird "none" angenommen. |
parameters |
Gibt den Pfad und den Namen einer XML-Datei an, die Überschreibungen von SPMetal-Standardeinstellungen enthält. |
/parameters:MarketingSite.xml |
In der Regel verwenden Sie für unterschiedliche Websites nicht genau die gleiche Parameter-XML-Datei wieder. Geben Sie daher der Datei den gleichen Namen wie der Website. Weitere Informationen zur Parameterdatei finden Sie unter Außerkraftsetzen von SPMetal-Standardeinstellungen mit einer Parameter-XML-Datei. |
Beispiel
Generieren Sie C#-Code:
SPMetal /web:http://ContosoServer/Marketing /code:MarketingSite.cs
Generieren Sie Visual Basic-Code mit benutzerdefinierten Parametereinstellungen:
SPMetal /web:http://ContosoServer/Marketing /code:MarketingSite.vb /parameters:MarketingSite.xml
Generieren Sie Visual Basic-Code aus einem angegebenen Benutzerkontext:
SPMetal /web:http://ContosoServer/Marketing /code:MarketingSite.vb /user:Contoso\sally /password:7Yj38d
Siehe auch
Aufgaben
Vorgehensweise: Verwenden von SPMetal
Konzepte
Außerkraftsetzen von SPMetal-Standardeinstellungen mit einer Parameter-XML-Datei