Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group

Ähnliche Präsentationen


Präsentation zum Thema: "SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group"—  Präsentation transkript:

1 SharePoint Development Sebastian Weber

2 SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group

3 Sebastian Weber Software Engineer bei der Platinion GmbH, einer Tochter der Boston Consulting Group Über 10 Jahre Erfahrung in der Softwareentwicklung im Microsoft Umfeld Autor und Sprecher mit den Schwerpunkten.NET Architektur und Technologien (SQL Server und SharePoint)

4 Warum selber programmieren...? SharePoint um eigene Module (Web Parts) erweitern Issue-Tracker, Helpdesk, Weblog, Wiki,... SharePoint programmatisch administrieren Web Parts installieren, Seiten erzeugen, Themen zuweisen... SharePoint Funktionen/Daten in eigener Anwendung nutzen Zugriff auf SharePoint Dokumentenbibliothek aus eigener (Windows) Anwendung heraus, um alles aus SharePoint herauszuholen!

5 Altes HRMS (J2EE) Beispiel 1: Intranet aufbauen HRMS Timesheet HRMS Staffing

6 Beispiel 2: Daten extern nutzen Intranet Firmen-Homepage Zentrale Verwaltung aller News (intern und extern) Externe News Web Service

7 Aber wie ist das mit SharePoint realisierbar?

8 Agenda Entwicklungsumgebung SharePoint Architektur Web Part Entwicklung SharePoint Objektmodell SharePoint Web Services Zusammenfassung

9 Agenda Entwicklungsumgebung SharePoint Architektur Web Part Entwicklung SharePoint Objektmodell SharePoint Web Services Zusammenfassung

10 Systemumgebung Eine Maschine Direkt auf Windows Server 2003 arbeiten Zwei (oder mehrere) Maschinen Entwicklung auf Windows XP Deployment auf Windows Server 2003 Virtual PC oder externes System

11 Entwicklungsumgebung Visual Studio.NET SharePoint DLLs kopieren (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 Web Part Projektvorlage für Visual Studio.NET

12 Agenda Entwicklungsumgebung SharePoint Architektur Web Part Entwicklung SharePoint Objektmodell SharePoint Web Services Zusammenfassung

13 SharePoint Architektur ObjektmodellWeb Services SharePoint 2001 (Unmanaged) Code.NET Framework ObjektmodellWeb ServicesWeb PartWebDAVFP RPC SitesWebs...DocsLists WebPart AreasSSO...

14 Agenda Entwicklungsumgebung SharePoint Architektur Web Part Entwicklung SharePoint Objektmodell SharePoint Web Services Zusammenfassung

15 Was sind Web Parts? Aus der Sicht des Anwenders Bausteine für modulare Webseiten Einbindung in Webseite zur Laufzeit möglich Aus der Sicht des Entwicklers ASP.NET Server Controls, als Assembly deployed Haben vollen Zugriff auf die.NET Base Class Library Unterstützung durch Visual Studio.NET Projekt Template

16 Das Hello World! Web Part namespace MyWebParts { using Microsoft.SharePoint; using Microsoft.SharePoint.WebPartPages; public class HelloWorld : WebPart { protected override void RenderWebPart (HtmlTextWriter output){ output.Write(Hello World!); } } }... wie ASP.NET Server Control Entwicklung!

17 Windows Server Web Part Deployment – Option 1 Web Part Assembly (DLL) IIS Virtual Server \bin\ - Ordner Web.config Safe Control IIS Virtual Server \bin\ - Ordner Web.config Safe Control Assembly für jeden Virtual Server einzeln installieren Assembly muß als Safe in der Web.config registriert sein

18 Windows Server Web Part Deployment – Option 2 Global Assembly Cache (GAC) Web Part Assembly (DLL) IIS Virtual Server Assembly global für alle Virtual Server installieren Assembly im GAC ist immer Safe (strong name)

19 Noch mehr Optionen... Manuelle Installation Dateien kopieren Web.config anpassen CAB Datei erstellen Dateien in CAB kopieren STSADM.EXE aufrufen MSI Paket erstellen WPPackager.EXE Tool verwenden!

20 demo Kalender Web Part

21 Weitere Features... Web Part Connections Event-gesteuerter Datenaustausch Nur Implementierung der Consumer/Provider Interfaces und Methoden nötig IList, IRow, ICell, IFilter, IParams, Transformers

22 Zukunft der Web Parts Visual Studio.NET 2005 (Whidbey) Whidbey Web Parts SharePoint Web Parts ASP.NET Team wird einen Wrapper bereitstellen, mit dem Whidbey Web Parts in SharePoint laufen Nächste SharePoint Version wird auf Basis von Whidbey Web Parts arbeiten!

23 Tipps, Tricks & Best Practices Fehlerbehandlung durchführen (try-catch), ansonsten Umleitung auf Fehlerseite durch SharePoint Immer HTMLEncode verwenden Öffentliche Eigenschaften über Attribute gut kommentieren SharePoint Caching-Mechanismen verwenden

24 Web Parts gut&schlecht Gut Building Blocks der Zukunft für modulare Webseiten Integration vorhandener ASP.NET Steuerelemente Schlecht Kein Designer verfügbar Debugging derzeit umständlich Whidbey Wrapper SmartPart

25 Agenda Entwicklungsumgebung SharePoint Architektur Web Part Entwicklung SharePoint Objektmodell SharePoint Web Services Zusammenfassung

26 Was ist das Objektmodell? Schnittstelle zu... Windows SharePoint Services (WSS) SharePoint Portal Server (SPS).NET Assemblies (managed DLLs) Objektmodell erwartet SharePoint auf dem selben Rechner, kein Fernzugriff!

27 Objektmodell ist nur innerhalb des SharePoint Servers verwendbar Objektmodelle Windows-Anwendung Web-Anwendung Web Part

28 Windows SharePoint Services Klassen Beispiele List Data SPListCollection SPList SPListItemCollection SPListItem SPFieldCollection SPView Administration SPGlobalAdmin SPQuota SPVirtualServer Security SPGroupCollection SPGroup SPUserCollection SPUser Documents SPDocumentLibrary SPFileCollection Insgesamt 18 Namensräume, davon stehen 9 für eigene Anwendungen zur Verfügung, Namensraum Microsoft.SharePoint.*

29 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

30 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!

31 SPWeb bietet Zugriff auf sämtliche Objekte einer Site 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);

32 Beispiel: Zugriff auf Listen 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()); }

33 demo Zugriff auf Listen mit Objektmodell

34 Weitere Features... Event Sinks Implementierung eigener Events möglich, bspw. bei check-in/-out von Dokumenten Event-Listener implementieren Deployment direkt in GAC Aktivierung unter SharePoint Oberfläche Ermöglicht Workflowunterstützung

35 Tipps, Tricks & Best Practices SPGlobalAdmin und SPSite sind die einzigen Klassen, die direkt mit new instantiiert werden können foreach() ist schneller als Durchlauf per Index Ergebnis kostspieliger Aufrufe wie GetListItems() zwischenspeichern Überwachung der Aufrufe mit SQL Profiler möglich

36 Objektmodell gut&schlecht Gut Sehr komfortabel in der Verwendung Sehr mächtig, nahezu alle Funktionen sind erreichbar Schlecht Nur auf dem SharePoint Server verfügbar, nicht von extern by design

37 Agenda Entwicklungsumgebung SharePoint Architektur Web Part Entwicklung SharePoint Objektmodell SharePoint Web Services Zusammenfassung

38 Was sind die Web Services? Eine weitere Schnittstelle zu... Windows SharePoint Services (WSS) SharePoint Portal Server (SPS) Verwendet selbst die Objektmodell-Schnittstellen! Erreichbar unter Server:Port / _vti_adm / ServiceName.asmx Server:Port / _vti_bin / ServiceName.asmx Server:Port / Sites / Site /_vti_bin / ServiceName.asmx Direkt in Visual Studio.NET verwendbar Ermöglicht den Fernzugriff auf SharePoint

39 WebServices ermöglichen den Zugriff von extern Web Services Fat-Client Anwendung Web-Anwendung (Web Part) Zugriff per SOAP

40 16 WSS Web Services (1-8) NameURL Administration Service/_vti_adm/Admin.asmx Alerts Web Service/[sites/][site/]_vti_bin/Alerts.asmx Document Workspace Web Service /_vti_bin/Dws.asmx Forms Web Service/[sites/][site/]_vti_bin/Forms.asmx Imaging Web Services/[sites/][site/]_vti_bin/Imaging.asmx List Data Retrieval Service/[sites/][site/]_vti_bin/DspSts.asmx Lists Web Service/[sites/][site/]_vti_bin/Lists.asmx Meeting Web Service/[sites/][site/]_vti_bin/Meetings.asmx

41 16 WSS Web Services (9-16) NameURL Permissions Web Service/[sites/][site/]_vti_bin/Permissions.asmx Site Data Web Service /[sites/][site/]_vti_bin/SiteData.asmx Sites Web Service/[sites/][site/]_vti_bin/Sites.asmx User & Groups Web Service/[sites/][site/]_vti_bin/UserGroup.asmx Versions Web Service/[sites/][site/]_vti_bin/Versions.asmx Views Web Service/[sites/][site/]_vti_bin/Views.asmx Web Part Pages Web Service/[sites/][site/]/_vti_bin/WebPartPages.asmx Webs Web Service/[sites/][site/]_vti_bin/Webs.asmx

42 3 SPS Web Services NameURL Area Web Service /_vti_bin/areaservice.asmx Query Web Service /_vti_bin/search.asmx User Profile Web Service/_vti_bin/UserProfileService.asmx

43 Beispiel: Zugriff auf Listen Web Reference hinzufügen Authentifizierung durchführen service.Credentials = CredentialCache.DefaultCredentials; Liste abholen XmlNode n = service.GetListItems("Aufgaben", "", null, null, "", null); Xml-Knoten durchlaufen foreach(XmlNode node in nodeList) output.Write(node.InnerText);

44 demo SharePoint Web Services Zugriff auf Listen

45 Tipps, Tricks & Best Practices Roundtrips vermeiden, Xml-Ergebnisse zwischenspeichern Helper schreiben für Xml-Handling, XmlNode in XmlDocument überführen Pfade zu Webservices (.asmx) dynamisch halten, Generierung der WS Proxys manuell mit wsdl.exe

46 Web Services gut&schlecht Gut Zugriff von jedem beliebigen System aus möglich (auch nicht-Windows) Schlecht Rückgabewerte erfolgen als XmlNode Nicht alle Funktionalitäten von SharePoint erreichbar (bspw. Dokumententransfer) by design

47 Wenn Web Services nicht ausreichen... WebDAV und Frontpage RPC Verwenden HTTP Aufrufe Weitere Infos unter MSDN Direktzugriff auf die SharePoint Datenbank keine gute Idee Implementierung eigener Web Services SharePoint kann fremde Web Services hosten, müssen aber zuvor angemeldet werden Vom eigenen Web Service ist Zugriff auf Objektmodell möglich, Tunneln des OM

48 Agenda Entwicklungsumgebung SharePoint Architektur Web Part Entwicklung SharePoint Objektmodell SharePoint Web Services Zusammenfassung

49 Web Parts sind kombinierbare Bausteine Der Zugriff auf SharePoint erfolgt über Objektmodell und/oder Web Services SPS WSS

50 Mehr Informationen Entwicklerseiten Produkt Third-Party Seiten (Michael Greth) (Markus Weisbrod) (Frank Fischer)

51 Fragen und Antworten Vielen Dank! Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group

52 Ihr Potenzial. Unser Antrieb.


Herunterladen ppt "SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group"

Ähnliche Präsentationen


Google-Anzeigen