Grundlagen und Best Practices bei der SharePoint Entwicklung Peter Kirchner Consultant ITaCS GmbH Fabian Moritz Senior Consultant, MVP ITaCS GmbH
Themen Entwicklungsumgebung vorbereiten SharePoint Objektmodell Bausteine im SharePoint Fehlersuche Deployment Tools
Entwicklungsumgebung vorbereiten Windows Server 2003 (R2) Windows SharePoint Services v3 oder Office SharePoint Server 2007 Visual Studio 2005 / 2008 Express Edition Standard Professional Team System SharePoint SDKs Tools von Codeplex
Visual Studio Extensions Project Templates Item Templates Web Part Team Site Definition Web Part Custom Field F5 Debugging SharePoint Solution Generator List Definition List Definition (with optional Event Receiver) Blank Site Definition Content Type (with optional Event Receiver) Module
Was bietet das SharePoint Objektmodell? WSS Sites WSS Objektmodell Webparts Webseiten Smart Clients Web Services Smart and Mobile Clients SharePoint Webparts ASP.NET Custom Controls und User Controls Anwendungsseiten Event Handler für Feature- Aktivierungen Event Handler für Listen, Dokumentbibliotheken, Sites und Site Collections ASP.NET-Anwendungen und - Web-Services Windows Forms- und Konsolen-Anwendungen
SPFarm SPWebServer SPWebApplication SPSite SPWeb SPList SPListItem
Referenzen Welche Referenzen benötigt ein SharePoint-Projekt? WSS 3.0 Microsoft.SharePoint.dll MOSS 2007 Microsoft.Office.Server.dll Microsoft.Office.Server.Publishing.dll Microsoft.Office.Server.Policy.dll Microsoft.Office.Server.Search.dll Microsoft.Office.Workflow.Tasks.dll Microsoft.SharePoint.Portal.dll Microsoft.SharePoint.Publishing.dll Microsoft.SharePoint.Workflow.Actions.dl
Bausteine im SharePoint Webparts Event Receiver Listen
Was sind Webparts? Aus Sicht des Anwenders Ermöglichen die Flexibilität in SharePoint Liefern Sichten auf SharePoint-Inhalte Stellen Funktionen oder externe Inhalte bereit Anpassbare Controls Aus Sicht des Entwicklers.NET Assembly (DLL-Datei) ASP.NET Anwendung, die der SharePoint Code Access Security unterliegt Existieren i.d.r. nur in Webpart-Zonen
Vorteile der SharePoint-Webparts Datenverbindungen über Seiten hinweg zwischen Webparts, die keiner Webpart-Zone angehören client-seitig Infrastruktur zum Cachen in die Content-Datenbank
Erstellen eines Webparts Webparts erben von einer der beiden Basisklassen System.Web.UI.WebControls.WebParts.WebPart Microsoft.SharePoint.WebPartPages.WebPart
Bereitstellung des Webparts 1. Assembly in GAC oder bin-verzeichnis 2. SafeControl-Eintrag in web.config 3. Webpart der Webpart-Galerie hinzufügen
Webparts Erstellen Bereitstellen
Zugriff auf SharePoint-Instanzen Zugriff aufs aktuelle Web, Site und WebApplication über SPControl Zugriff auch auf beliebige Webs und Sites möglich
Listen Elemente hinzufügen Elemente ändern Elemente auslesen
Zugriff auf Listen Zugriff auf Listen GUIDs Anzeigenamen URLs
Listenelemente auslesen Zugriff auf Listenelemente IDs CAML
Listenelemente hinzufügen / ändern Beim Ändern von Listenelementen diese zwischenspeichern! Veränderung von Listenelementen ist geschützt AllowUnsafeUpdates Höhere Rechte mit RunWithElevatedPrivileges
Listen Zugriff Elemente auslesen Elemente hinzufügen und ändern
Event Receiver Reagieren auf Listenereignisse und globale Ereignisse Site Collections Sites Listen Felder Listenelemente
Event Receiver erstellen Event Receiver erben von spezialisierten EventReceiver-Basisklassen
Event Receiver installieren Assembly muss im GAC liegen Installation möglich über SharePoint Objektmodell SharePoint Features
Event Receiver Erstellen Installieren
Fehlersuche Debuggen im SharePoint vereinfachen Anpassungen in web.config
Debuggen mit Visual Studio Verbinden zum Prozess IIS Worker Process Windows SharePoint Services Timer
Debuggen Aussagekräftige Fehlerausgaben Zum Prozess verbinden IIS Worker Process Windows SharePoint Services Timer
Deployment Visual Studio Extensions Manuelle Installation Features & Solutions Installationsverfahren Installationsziele GAC bin-verzeichnis
Tools CAML Query Builder Event Handler Explorer http://www.u2u.info/sharepoint/u2u Community Tools/ SharePoint Manager 2007 http://www.keutmann.dk/sharepointblog/ Solution Generator Visual Studio 2005 Extensions Lutz Roeder s.net Reflector http://www.aisto.com/roeder/dotnet/ Application Pool Manager http://www.harbar.net/articles/apm.aspx
Weitere Informationen www.itacs.de SharePoint weblogs.mysharepoint.de/fabianm www.sharepointcommunity.de blogs.itacs.de