SharePoint 2010 16.02.2011, 23:30 Uhr

Web Parts per Drag&Drop

Mit den Visual Studio Tools for SharePoint 2010 hat Microsoft eine einfachere Entwicklung von Web Parts eingeführt. Die neue Technik bietet allerdings nicht nur Vorteile.
Im Gegensatz zu den herkömmlichen «Code only»-Web-Parts, bei dem sich der Entwickler den Code für den Aufbau des Objektbaums (Control Tree) und den HTML-Output selber kümmern muss, lässt sich das User Interface von Visual Web Parts ganz bequem durch platzieren von ASP.NET- und SharePoint-Controls auf einem Visual Designer umsetzen. Die benötigte Logik kann anschliessend mit C# oder Visual Basic über eine Code-Behind-Datei angefügt werden. Das ist nicht nur bequemer, sondern bringt auch deutliche Zeitvorteile mit sich.
Wem dieser Ansatz bereits bekannt vorkommt und an die User Controls (ASCX) in ASP.NET erinnert, ist auf der richtigen Spur. Hinter den Visual Web Parts verbirgt sich ein generisches Web-Part, das als Wrapper fungiert und über die Page.LoadControl()- Methode (siehe Abbildung) das entsprechende User Control nachlädt. Dieses Verfahren ist übrigens keineswegs neu, sondern wird von Entwicklern bereits seit SharePoint 2003 (zum Beispiel mit Hilfe des SmarPart-Projekts) genutzt. Neu ist hingegen, dass der User-Control-Ansatz nun offiziell von Microsoft unterstützt wird und Visual Studio 2010 über eine Projektvorlage verfügt, welche automatisch alle dazu benötigten Files generiert und das Deployment via WSP automatisiert.  Sandboxed Solutions: Und es geht doch Ein Nachteil war es bislang, dass man Visual Web Parts nicht im Rahmen einer Sandboxed Solution einsetzen konnte. Der Grund: Das nachzuladende ASP.NET-User Control muss im SharePoint-Root-Folder (~/_CONTROLTEMPLATES-Ordner) untergebracht werden. Für den Zugriff auf die Root-Folder-Struktur werden aber Privilegien benötigt, die nur einer Farm, nicht aber einer Sandbox-Solution zustehen.
Im Rahmen der Visual Studio SharePoint PowerTools – über die Online Gallery des Visual Studio 2010 Extension Managers installierbar – hat Microsoft mittlerweile eine Item Vorlage lanciert, welche die Verwendung von Visual Web Parts auch innerhalb einer Sandboxed-Solution möglich macht. Bei diesem Verfahren wird auf die Verwendung eines User Controls verzichtet und stattdessen der Designer Support des eigentlichen Web Parts via Component Model erweitert. Wo sind die Grenzen? Das Funktionsspektrum der Visual Web Parts ist breit gefächert und reicht neben der Verwendungsmöglichkeit der meisten SharePoint- und ASP.NET-Controls (vom einfachen Label- bis zum SPGridView- oder Kalender-Control) über die Nutzung des SharePoint-Objektmodells bis hin zum Einsatz von fortgeschrittenen Konzepten wie etwa Web Part Connections, Custom Web Part Properties oder Ajax. Damit drängt sich natürlich die Frage auf, wo denn die Nachteile gegenüber den klassischen Code-Web-Parts liegen? Der wohl grösste Schwachpunkt ist, dass man durch die Verwendung des Visual Designers die optimale Kontrolle über den Aufbau des Control Trees verliert. Das kann schnell einmal zu einem Overhead bei den verwendeten Objekten führen, womit das Web Part aufgebläht wird und unnötig Speicher frisst. In SharePoint-Umgebungen, in denen Performance und Stabilität eine Rolle spielen, sollte man daher auf codebasierten Web Parts setzen. Ausserdem hat man bei den Visual Web Parts eine geringere Kontrolle den HTML-Output. Vor allem bei Lösungen, die nach sauber strukturiertem HTML verlangen, wird man in vielen Fällen nicht um die Verwendung von codebasierten Web Parts herumkommen. Ein weiterer Nachteil: Die Verwendung der fortgeschrittenen Web-Part-Konzepte, wie zum Beispiel die oben erwähnten Custom Web Part Properties, sind im Gegensatz zum klassischen Modell mit einem höherer Codeumfang und damit zusätzlichem Aufwand verbunden. Wegen des deutlichen Zeitvorteils bei der Entwicklung, können Visual Web Parts ihre Vorteile vor allem in RAD- und Prototyping-Szenarien oder bei einfacheren, nicht performance-kritischen  SharePoint-Lösungen ausspielen.
Über den Autor
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.
Peter Monadjemi


Das könnte Sie auch interessieren