Aufbau einer Entwicklungsugebung für SharePoint Services 2007

Für meine Diplomarbeit musste ich mit Visual Studio 2005 ein Feature für den Office SharePoint Server 2007 entwickeln. Hier habe ich einige meiner Erfahrungen zum Aufbau einer recht effektiven Entwicklungsumgebung niedergeschrieben.

Entwicklungsmaschine und Server auf einem Rechner?

Diese Konstellation bietet eigentlich das Optimum an Flexibilität und Effektivität, vorausgesetzt man macht nichts anderes mehr, als Features für SharePoint Services zu entwickeln.
Bei den meisten wird das aber wahrscheinlich anders aussehen. Man braucht mal eben einen Workflow, aber die ganze Zeit den IIS mit kompletten SharePoint Services auf der eigenen Maschine zu haben, ist nicht besonders schön, ganz davon abgesehen, dass die Maschine entsprechend ausgestattet sein muss.

Mein Entwicklungsrechner war ein Laptop mit einem 1,6GHz Pentium M-Prozessor und 2GB RAM. Da ich mit Vista und Office 2007 arbeitete, war der Arbeitsspeicher im Normalfall schon halb belegt.
Für einen Office SharePoint Server sollte man mit min. 1GB RAM rechnen, wenn man ihn alleine auf einem Windows Server 2003 installiert und betreibt. Für Produktiv-Systeme werden min. 2GB RAM empfohlen.

Mir wurde eine Virtual Machine mit 1GB RAM auf einem Dual-Xeon 3Ghz zur Verfügung gestellt, was für meine Ansprüch ausreichte. Mit lokalen Administratorrechten konnte ich mich dort austoben.
Das größte Problem an dieser Konstellation ist die fehlende Möglichkeit live zu debuggen mit Haltepunkten und allen anderen Features, die der Debugger von Visual Studio bietet. Doch dafür gibt es auch eine Lösung, die ich weiter unten erläutern werde.

Erst einmal zu den Anforderungen an die Entwicklungsmaschine.

Softwareanforderungen an den Entwicklungsrechner

Für den Entwicklungsrechner benötigen wir natürlich zu allererst Visual Studio 2005. Dieses wird ganz normal mit den bevorzugten Einstellungen installiert.

Für das Designen von Workflows benötigt man einmal das  .NET Framework 3.0 in der Runtime Version und dann die  Visual Studio 2005 Extensions for .NET Framework 3.0 (Windows Workflow Foundation). Diese sorgen für die Integration der WF in die IDE von VS2005.

Als nützlich erwiesen hat sich auch das  Windows SDK.

Bisher haben wir aber nur die Assemblies für die Workflow Foundation. Für die Entwicklung von Workflows für SharePoint Services benötigen wir aber noch spezielle Assemblies von selbigen. Normalerweise würden diese mit der Installation der SharePoint Services 3.0 installiert werden, jedoch liegen diese ja auf unserem Entwicklungsserver. Daher müssen wir diese noch kopieren. 

Benötigte Libraries vom SharePoint Server

Im Verzeichnis "C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\ISAPI" des Servers befinden sich die Microsoft.*-Assemblies. Diese müssen auf den Entwicklungsrechner kopiert und in den GAC (Global Assembly Cache) installiert werden. Die Installation lässt sich mit einem einfachen gacutil -i [Assembly] erledigen.

Installation der Remote-Debugging-Features

Auf der letzten CD Ihrer Visual Studio-Installation befindet sich der Ordner "Remote Debugger". Dieser enthält die Installation für die Remote Debugging-Features. Führen Sie diese aus und installieren Sie die Komponenten.

In der anschließenden Konfiguration können Sie direkt festlegen, ob der RemoteDebugging-Service laufen soll und unter welchem Benutzer. Richten Sie den Service nicht ein, müssen Sie sich am System anmelden und die Applikation starten, bevor Sie von den Remote Debugging Features Gebrauch machen können. Außerdem müssen Sie nun noch im Visual Studio Remotedebug-Monitor ihrem Benutzer, den Sie auf ihrem Entwicklungssysteme verwenden die Rechte zum Debuggen geben. Schauen Sie dann auch noch in den Optionen vorbei, um sich den Namen der Debugging-Instanz zu kopieren, diesen werden Sie später noch brauchen.

Nutzen von Remote Debugging

Um nun ein Programm zu Debuggen, müssen Sie es nur auf dem Remote System starten und dann in Visual Studio über "Debuggen" -> "An Prozess anhängen" den Prozess auf dem Remote System auswählen und sich mit ihm verbinden. Um die Prozesse auf dem Remote System zu sehen, geben Sie unter "Qualifizierer" den Instanznamen ein, den Sie im vorigen Kapitel in den Debugger-Optionen herauskopiert haben und drücken Sie auf Enter.

Wählen Sie in der Liste der Prozesse alle w3wp.exe aus und klicken Sie auf Anfügen, um SharePoint-Lösungen debuggen zu können.

Hinweis: Natürlich müssen von Ihren Assemblies, die Sie debuggen möchten auch die Debugging-Daten im GAC sein, also die Dateien mit der Endung pdb!

SharePoint-Remote-Debugging in Visual Studio
SharePoint-Remote-Debugging in Visual Studio