340 likes | 592 Views
SharePoint 2003 Web Part Programmierung. Sebastian Weber Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com http://blogs.msdn.com/sebweber. SharePoint Entwicklungsszenarien. SharePoint als Oberfläche Look&Feel anpassen (Front Page 2003)
E N D
SharePoint 2003Web Part Programmierung Sebastian Weber Microsoft Deutschland GmbH Sebastian.Weber@microsoft.com http://blogs.msdn.com/sebweber
SharePoint Entwicklungsszenarien • SharePoint als Oberfläche • Look&Feel anpassen (Front Page 2003) • Funktionalitäten mit eigenen Web Parts erweitern • SharePoint als Engine • Dokumentenablage, Recherche, Listen • Zugriff über Web Services von Fat-Client oder Web-App
Ziel des Vortrages • Wie entwickele ich Web Parts? • Entwicklungsumgebung • Projektvorlagen • Web Part Installation • Welche Features bietet SharePoint? • Konfiguration durch Anwender • Web Parts verbinden • Zugriff auf SharePoint Objekte
Web Parts und Visual Studio 2005 • „Whidbey“ Web Parts ≠ SharePoint Web Parts • Nächste SharePoint Version wird auf Basis von Whidbey Web Parts arbeiten! Aktueller Stand: http://blogs.msdn.com/MikeFitz
Agenda Schnellstart: Erstellen, Installieren, Debuggen Konfigurierbare Web Parts Verbundene Web Parts Zugriff auf SharePoint Objekte
Agenda Schnellstart: Erstellen, Installieren, Debuggen Konfigurierbare Web Parts Verbundene Web Parts Zugriff auf SharePoint Objekte
Die perfekte Entwicklungsumgebung • „Eine Maschine“ • Direkt auf Windows Server 2003 arbeiten • http://www.msfn.org/win2k3/ • „Zwei (oder mehrere) Maschinen“ • Entwicklung auf Windows XP • Deployment auf Windows Server 2003 • Virtual PC oder externes System
Die perfekte Entwicklungsumgebung • Visual Studio .NET 2003 • http://msdn.microsoft.com/sharepoint • SharePoint DLLs (bei „Mehr-Maschinen-Modell“) • C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\ISAPI • Microsoft.SharePoint.DLL • Microsoft.SharePoint.Portal.DLL • Microsoft.SharePoint.Portal.SingleSignon.DLL • Microsoft.SharePoint.Portal.SingleSignon.Security.DLL • Debuggen per Attach-Process an W3WP.EXE
5 Minuten Web Part Wrap-up • Datei Neu C# Web Part • CreateChildControls(), RenderWebPart() • DWP-Datei anpassen • Projektausgabe in BIN-Verzeichnis • SafeControl-Eintrag in Web.config vornehmen • Fertig! Verwendung in SharePoint möglich
Agenda Schnellstart: Erstellen, Installieren, Debuggen Konfigurierbare Web Parts Verbundene Web Parts Zugriff auf SharePoint Objekte
Deklarative Programmierung • Öffentliche Eigenschaften werden durch das Voranstellen von Attributen zur Bearbeitung freigegeben • Die Web Part Infrastruktur nimmt diese automatisch in der Toolpart auf • Persistenz der Werte, unterschieden nach Shared und Personal, erfolgt ebenfalls durch Infrastruktur
Custom Tool Parts • Custom Tool Parts ermöglichen aufwendigere bzw. individuellere Konfigurationen am Web Part • Implementierung erfolgt in 2 Schritten: • Erstellung des Tool Parts (Template vorhanden)Implementierung von ApplyChanges(), SyncChanges(), CancelChanges() und RenderToolPart() • Tool Part dem Web Part zuweisenÜberschreiben der Methode GetToolParts() im Web Part
Agenda Schnellstart: Erstellen, Installieren, Debuggen Konfigurierbare Web Parts Verbundene Web Parts Zugriff auf SharePoint Objekte
Verbindung erfolgt zur Laufzeit • Datenaustausch per Events • Daten-Consumer und –Provider • Verbindungen werden vom Anwender konfiguriert • Client- oder serverseitige Verbindungen • Event Handling übernimmt die Infrastruktur • Nur Implementierung der Consumer-/Provider-Schnittstellennotwendig • Klassen-Vorlagen für Visual Studio vorhanden • Bestandteil der Web Part Projekt-Vorlage
Zwei Schnittstellen, eine Verbindung • Schnittstellenpaare • ICellProvider, ICellConsumer • IRowProvider, IRowConsumer • IListProvider, IListConsumer • IFilterProvider, IFilterConsumer • IParametersInProvider, IParametersInConsumer • IParametersOutProvider, IParametersOutConsumer • Weitere Kombinationen mit Transformatoren • Implementierung von Consumer und Provider erfolgt grundsätzlich analog
Verbundene Web Parts Wrap-up Beispiel ICellProvider • Events CellReady und CellProviderInit deklarieren • CellConsumerInit „implementieren“ • Interface registrieren in EnsureInterfaces • CanRunAt überschreiben • PartCommunicationConnect überschreiben • PartCommunicationMain überschreiben, CellReady feuern
Agenda Schnellstart: Erstellen, Installieren, Debuggen Konfigurierbare Web Parts Verbundene Web Parts Zugriff auf SharePoint Objekte
SharePoint Services Klassen (Auszug) • Security • SPGroupCollection • SPGroup • SPUserCollection • SPUser • Documents • SPDocumentLibrary • SPFileCollection • List Data • SPListCollection • SPList • SPListItemCollection • SPListItem • SPFieldCollection • SPView • Administration • SPGlobalAdmin • SPQuota • SPVirtualServer
SharePoint Portal Server Klassen • Insgesamt über 50 Namensräume, davon 16 heute in Verwendung • Namensraum Microsoft.SharePoint.Portal.* • Erweitert das WSS-Objektmodell um • Audiences • Areas • Search • Single Sign-on
SharePoint Top-Level Objekte • WSS-Objektmodell hat 4 Top-Level Objekte: • SPWeb ( “Eine Site”) • SPSite (“Eine SiteCollection”) • SPVirtualServer • SPGlobalAdmin • Für sämtliche Datenoperationen (Listen, Dokumentenbibliotheken …) wird ein SPWeb benötigt!
Idealer Einstiegspunkt: SPWeb • Ermöglicht Zugriff auf Listen, Dokumente, Benutzer, Benachrichtigungen einer Site • Eigenschaften (Beispiel): • Web.Lists (liefert eine Collection aller Listen) • Web.Title (liefert den Titel der Seite) • Web.Users (liefert die Benutzer der Seite) • Zugriff auf das aktuelle SPWeb Objekt geschieht mit SPControl über den Kontext: SPWeb web = SPControl.GetContextWeb(Context);
Zugriff auf Listen Wrap-up • Liste über das Web-Objekt beziehen SPWeb web = SPControl.GetContextWeb(Context); SPList myList = web.Lists[“Aufgaben”]; • Verweis auf die Einträge der Liste über die Items-Eigenschaft SPListItemCollection items = myList.Items; • alternativ kann die Liste über ein SPQuery Objekt eingeschränkt werden SPListItemCollection items = myList.GetItems(query); • Zugriff auf die Felder geschieht über den Indexer des SPListItem Objekts foreach(SPListItem item in items) { Response.Write(item[“Title"].ToString()); }
Agenda Schnellstart: Erstellen, Installieren, Debuggen Konfigurierbare Web Parts Verbundene Web Parts Zugriff auf SharePoint Objekte
Zusammenfassung (I) • Ideale Entwicklungsumgebung besteht aus einer(!) Maschine, VS.NET mit SharePoint Templates und DLL-Ausgabe direkt ins BIN-Verzeichnis • Die Entwicklung von Web Parts verläuft analog zur ASP.NET Steuerelement-Programmierung; Ableitung von der WebPart-Basisklasse macht das Control zum WebPart
Zusammenfassung (II) • Das SharePoint Objektmodell ermöglicht den Zugriff auf sämtliche Einstellungen und Objekte aus einem Web Part heraus • Whidbey Web Parts sind was anderes
Fragen und Antworten Vielen Dank! Sebastian Weber Sebastian.Weber@microsoft.com http://blogs.msdn.com/sebweber
© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Weitere Informationen • Entwicklerseiten • http://msdn.microsoft.com/sharepoint • http://gotdotnet.com/team/sharepoint • http://code-zone.de • Produkt • http://microsoft.de/sharepoint • Third-Party Seiten • http://blogs.msdn.com/mikefitz (Mike Fitzmaurice) • http://mysharepoint.de (Michael Greth)