02.10.2009, 00:00 Uhr

SharePoint-Tools, die Entwickler kennen sollten

In der DeveloperWorld wurden im März an dieser Stelle [1] drei Werkzeuge präsentiert, die die Entwicklung von SharePoint-Lösungen erheblich erleichtern. Mit SPSource folgt dieses Mal ein Tool, das mit Reverse-Engineering-Techniken per Prototyping erstellte SharePoint-Objekte wie Listen oder Content Types auslesen und damit eine ganze Menge Handarbeit einsparen kann.
von Urs BertschyDoch warum ist Reverse Engineering für die Entwicklung mit SharePoint 2007 überhaupt wichtig? Wer SharePoint-Anwendungen basierend auf eigenen Listen, Content Types oder Publishing Pages entwickeln und diese in auf andere SharePoint-Umgebungen auslieferbare SharePoint- Solutions (WSPs) verpacken will, auf den kommt vor allem beim Coding der dazu notwendigen XML-Files eine gewaltige Portion Handarbeit zu.Die teilweise sehr umfangreichen Definitionen der gewünschten CAML- und XSL-Files müssen mühsam in XML formuliert werden. Das ist nicht nur zeitraubend, sondern auch fehleranfällig. Viel eleganter hingegen wäre es, wenn man die benötigten SharePoint-Artefakte im Prototyping-Verfahren über das SharePoint-Web-User-Interface oder mit SharePoint Designer bequem zusammenklicken und die notwendigen XML-Dateien anschließend auf Knopfdruck generieren könnte. Genau hier setzt SPSource an [2] : Das Werkzeug erzeugt mit Reverse-Engineering-Techniken aus vorhandenen SharePoint-Artefakten die notwendigen Definitions-Files, die sich dann direkt als SharePoint-Feature oder in Form eines WSP-Pakets in einer anderen SharePoint-Umgebung installieren lassen. Konkret kann das Werkzeug für folgende Zwecke eingesetzt werden: - Site Columns und Content Types: Es lassen sich sowohl einzelne Site Columns als auch Content Types auslesen. Praktisch: Bei den Content Types werden die eingebundenen Site Columns gleich mitgeneriert.- File Provisioning: Sämtliche in Dokumentbibliotheken speicherbare Dateien lassen sich auslesen und für das sogenannte File Provisioning (Einspeisen von individuellen Files in eine SharePoint-Umgebung) mit den notwendigen Module-Definitionen in ein Feature verpacken. Das ist insbesondere im Zusammenhang mit den WCMS-Funktionen von SharePoint sehr nützlich. So lassen sich beispielsweise die Master Pages, Page Layouts, Style Sheets, .aspx-Files und Bilddateien einer Site bequem mit SharePoint Designer erstellen, um diese anschließend auszulesen und als Komplettlösung in einem WSP-File zusammenzufassen.- List Definitions: Aus instanzierten Listen lassen sich List Definitionen mit den notwendigen Formularen erzeugen. Dabei wird auch die sehr umfangreiche und nur mit immensem Aufwand von Hand erstellbare schema.xml-Datei erstellt. Dieses wichtige Konfigurationsfile enthält Angaben über die einer Liste zugefügten Felder, die verschiedenen Listansichten (Views) oder die zu verwendenden Ein- und Ausgabeformulare. Wie funktioniert SPSource?SPSource ist zwar nur ein Kommandozeilen-Werkzeug, es lässt sich aber problemlos mit Visual Studio (2005/2008) kombinieren. Um ein SharePoint-Artefakt auszulesen, muss der Entwickler zunächst eine Folderstruktur für ein SharePoint-Feature (nach dem 12-Hive-Muster) sowie eine feature.xml-Datei mit den üblichen Standardangaben (GUID, Titel, Scope etc.) anlegen (zu sehen im Solution Explorer in Bild 1). Anschliessend wird ein weiteres XML-File mit der Endung .spsource hinzugefügt. In diesem wird dann vorgegeben, welche SharePoint-Objekte von SPSource extrahiert werden sollen.Im folgenden Codebeispiel wird etwa festgelegt, dass der Content Type "Projekt Task" und die Liste "Project Phases" ausgelesen werden soll.Anhand dieser Vorgaben kann SPSource die notwendigen XML-Dateien generieren. Gestartet wird dieser Prozess über die Kommandozeile mit dem folgenden Befehl:spssource.exe -designsite http://mydesignsiteAnschließend durchforstet das Tool die Projektordnerstruktur nach vorhandenen .spsource-Dateien, liest die dort angegeben Artefakte aus der SharePoint-Design-Umgebung aus und erzeugt die notwendigen XML-Dateien (Bild 2). Zudem wird das feature.xml-File mit den entsprechenden Verweisen auf die generierten Dateien aktualisiert. Werden nachträglich Änderungen am Originaldesign vorgenommen, startet man spsource.exe einfach erneut. Die bereits generierten und allenfalls manuell nachgebesserten Dateien werden dabei allerdings überschrieben. Abbildung 1: Die auszulesenden Artefakte müssen in XML-Dateien festgelegt werden, die auf .spsource enden Abbildung 2: SPSource generiert die benötigen Dateien und fügt sie automatisch dem vorbereiteten SharePoint-Feature hinzu Zusammenarbeit mit Visual Studio, WSPBuilder und STSdevWer mit Visual Studio arbeiten möchte, muss SPSource nicht unbedingt über die Kommandozeile starten. Eine Alternative ist natürlich die Einbindung über das Extras-Menü als externes Tool (Bild 3). SPSource lässt sich zudem hervorragend mit Werkzeugen WSBuilder oder STSdev kombinieren. Dann spart man sich nicht nur das mühsame Aufbauen der 12-Hive-Folder-Struktur, sondern kann die generierten Features auch gleich automatisch in eine SharePoint-Solution (WSP) verpacken und auf dem Testsystem deployen. Abbildung 3: SPSource lässt über den "External Tool"-Dialog in Visual Studio einbinden Zeit sparen dank SPSourceMit Hilfe von SPSource lässt sich bei der SharePoint-Entwicklung eine ganze Menge Zeit einsparen. Im Vergleich mit dem Solution Generator des VSeWSS-Tools [1] von Microsoft, ist der von SPSource generierte Code wesentlich sauberer und praktisch fehlerfrei. Kleinere Unschönheiten gibt es hier allerdings auch: Zum Beispiel werden Leerzeichen in den Namen von Site Columns und Content Types nicht nur für den Anzeigenamen, sondern auch für interne Namen übernommen. Aus Project Description" wird dann die hässliche Bezeichnung"Project_x0020_ Description". Wer das umgehen will, muss die erzeugten Dateien wohl oder übel nachträglich von Hand anpassen. Diese werden dann aber bei einer erneuten Codegenerierung überschrieben.Beachtenswert ist auch, dass SPSource nicht alle SharePoint-Artefakte, sondern nur die eingangs erwähnten unterstützt. Workflows oder Site Definitions kann das Programm beispielsweise nicht auslesen.Urs Bertschy ist Inhaber der auf Web- und SharePoint-Consulting/-Development spezialisierten Bertschy Informatik AG. Unter http://www.bertschy.ch/blog unterhält er einen Technologieblog der sich vor allem SharePoint- aber auch anderen IT-Themen widmet.Links[1] http://www.computerworld.ch/aktuell/developerworld/47645/index.html[2] http://www.codeplex.com/SPSource


Das könnte Sie auch interessieren