![Page 1: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/1.jpg)
SharePoint Development Sebastian Weber
![Page 2: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/2.jpg)
SharePoint Development
Sebastian WeberSoftware EngineerPlatinion GmbH – The Boston Consulting [email protected]
![Page 3: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/3.jpg)
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)
![Page 4: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/4.jpg)
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!
![Page 5: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/5.jpg)
„Altes“ HRMS(J2EE)
Beispiel 1: Intranet aufbauen
HRMS Timesheet
HRMS Staffing
![Page 6: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/6.jpg)
Beispiel 2: Daten extern nutzen
Intranet
Firmen-Homepage
Zentrale Verwaltun
g aller News
(intern und
extern)
Externe
News
Externe News
Web Service
![Page 7: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/7.jpg)
Aber ...
... wie ist das mit SharePoint realisierbar?
![Page 8: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/8.jpg)
Agenda
EntwicklungsumgebungSharePoint ArchitekturWeb Part EntwicklungSharePoint ObjektmodellSharePoint Web ServicesZusammenfassung
![Page 9: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/9.jpg)
Agenda
EntwicklungsumgebungSharePoint ArchitekturWeb Part EntwicklungSharePoint ObjektmodellSharePoint Web ServicesZusammenfassung
![Page 10: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/10.jpg)
Systemumgebung „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
![Page 11: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/11.jpg)
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 http://msdn.microsoft.com/sharepoint
![Page 12: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/12.jpg)
Agenda
EntwicklungsumgebungSharePoint ArchitekturWeb Part EntwicklungSharePoint ObjektmodellSharePoint Web ServicesZusammenfassung
![Page 13: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/13.jpg)
SharePoint Architektur
Objektmodell Web Services
SharePoint 2001 (Unmanaged) Code.NET Framework
ObjektmodellWeb Services Web PartWebDAV FP RPC
Sites Webs
...Docs Lists
WebPart
Areas SSO ...
![Page 14: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/14.jpg)
Agenda
EntwicklungsumgebungSharePoint ArchitekturWeb Part EntwicklungSharePoint ObjektmodellSharePoint Web ServicesZusammenfassung
![Page 15: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/15.jpg)
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
![Page 16: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/16.jpg)
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!
![Page 17: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/17.jpg)
Windows Server
Web Part Deployment – Option 1
Web PartAssembly (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
![Page 18: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/18.jpg)
Windows Server
Web Part Deployment – Option 2
Global AssemblyCache (GAC)
Web PartAssembly (DLL)
IIS Virtual Server
IIS Virtual Server
IIS Virtual Server
• Assembly global für alle Virtual Server installieren
• Assembly im GAC ist immer „Safe“ (strong name)
![Page 19: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/19.jpg)
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!
http://msdn.microsoft.com/SharePoint
![Page 20: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/20.jpg)
demo
Kalender Web Part
![Page 21: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/21.jpg)
Weitere Features ...
Web Part Connections Event-gesteuerter Datenaustausch Nur Implementierung der
Consumer/Provider Interfaces und Methoden nötig
IList, IRow, ICell, IFilter, IParams, Transformers
![Page 22: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/22.jpg)
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!
![Page 23: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/23.jpg)
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
![Page 24: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/24.jpg)
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“
http://g
otdotnet.com
![Page 25: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/25.jpg)
Agenda
EntwicklungsumgebungSharePoint ArchitekturWeb Part EntwicklungSharePoint ObjektmodellSharePoint Web ServicesZusammenfassung
![Page 26: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/26.jpg)
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!
![Page 27: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/27.jpg)
Objektmodell ist nur innerhalb des SharePoint Servers verwendbar
Objektmodelle
Windows-
Anwendung
Web-Anwendung
Web Part
![Page 28: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/28.jpg)
Windows SharePoint Services KlassenBeispiele 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.*
![Page 29: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/29.jpg)
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
![Page 30: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/30.jpg)
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!
![Page 31: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/31.jpg)
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);
![Page 32: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/32.jpg)
Beispiel: Zugriff auf Listen1. Liste über das Web-Objekt beziehen
SPWeb web = SPControl.GetContextWeb(Context); SPList myList = web.Lists[“Aufgaben”];
2. Verweis auf die Einträge der Liste über die Items-EigenschaftSPListItemCollection items = myList.Items;
alternativ kann die Liste über ein SPQuery Objekt eingeschränkt werden
SPListItemCollection items = myList.GetItems(query);
3. Zugriff auf die Felder geschieht über den Indexer des SPListItem Objektsforeach(SPListItem item in items) {
Response.Write(item[“Title"].ToString());
}
![Page 33: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/33.jpg)
demo
Zugriff auf Listen mit Objektmodell
![Page 34: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/34.jpg)
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
![Page 35: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/35.jpg)
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
![Page 36: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/36.jpg)
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“
![Page 37: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/37.jpg)
Agenda
EntwicklungsumgebungSharePoint ArchitekturWeb Part EntwicklungSharePoint ObjektmodellSharePoint Web ServicesZusammenfassung
![Page 38: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/38.jpg)
Was sind die Web Services? Eine weitere Schnittstelle zu ...
Windows SharePoint Services (WSS) SharePoint Portal Server (SPS)Verwendet selbst die Objektmodell-Schnittstellen!
Erreichbar unter http:// Server:Port / _vti_adm / ServiceName.asmx http:// Server:Port / _vti_bin / ServiceName.asmx http:// Server:Port / Sites / Site /_vti_bin /
ServiceName.asmx
Direkt in Visual Studio .NET verwendbar
Ermöglicht den „Fernzugriff“ auf SharePoint
![Page 39: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/39.jpg)
WebServices ermöglichen den Zugriff von „extern“
Web Services
Fat-Client
Anwendung
Web-Anwendung
(Web Part)
Zugriff per SOAP
![Page 40: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/40.jpg)
16 WSS Web Services (1-8)Name URL
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
![Page 41: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/41.jpg)
16 WSS Web Services (9-16)Name URL
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
![Page 42: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/42.jpg)
3 SPS Web ServicesName URL
Area Web Service /_vti_bin/areaservice.asmx Query Web Service /_vti_bin/search.asmx User Profile Web Service /_vti_bin/UserProfileService.asmx
![Page 43: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/43.jpg)
Beispiel: Zugriff auf Listen1. Web Reference hinzufügen
2. Authentifizierung durchführenservice.Credentials = CredentialCache.DefaultCredentials;
3. Liste abholenXmlNode n = service.GetListItems("Aufgaben", "", null, null, "", null);
4. Xml-Knoten durchlaufenforeach(XmlNode node in nodeList) output.Write(node.InnerText);
![Page 44: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/44.jpg)
demo
SharePoint Web ServicesZugriff auf Listen
![Page 45: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/45.jpg)
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
![Page 46: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/46.jpg)
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“
![Page 47: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/47.jpg)
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“
![Page 48: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/48.jpg)
Agenda
EntwicklungsumgebungSharePoint ArchitekturWeb Part EntwicklungSharePoint ObjektmodellSharePoint Web ServicesZusammenfassung
![Page 49: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/49.jpg)
Zusammenfassung
Web Parts sind kombinierbare „Bausteine“
Der Zugriff auf SharePoint erfolgt über Objektmodell und/oder Web Services
SPS ≠ WSS
![Page 50: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/50.jpg)
Mehr 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://mysharepoint.de (Michael Greth) http://sharepointinfo.de (Markus Weisbrod)
http://weblogs.mysharepoint.de/frankfi/ (Frank Fischer) http://sebastian-weber.org
![Page 51: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/51.jpg)
Fragen und Antworten
Vielen Dank!
Sebastian WeberSoftware EngineerPlatinion GmbH – The Boston Consulting [email protected]
![Page 52: SharePoint Development Sebastian Weber. SharePoint Development Sebastian Weber Software Engineer Platinion GmbH – The Boston Consulting Group Weber.Sebastian@platinion.de](https://reader036.vdokument.com/reader036/viewer/2022062417/55204d6249795902118b7322/html5/thumbnails/52.jpg)
Ihr Potenzial. Unser Antrieb.