SharePoint Development - Sebastian Weberdownload.microsoft.com › ... ›...

43
SharePoint Development Sebastian Weber

Transcript of SharePoint Development - Sebastian Weberdownload.microsoft.com › ... ›...

SharePoint Development Sebastian Weber

SharePoint Development

Sebastian WeberSoftware EngineerPlatinion GmbH – The Boston Consulting [email protected]

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)

Warum selber programmieren ...?SharePoint um eigene Module (Web Parts) erweitern

Issue-Tracker, Helpdesk, Weblog, Wiki, ...

SharePoint programmatisch administrierenWeb 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!

„Altes“ HRMS(J2EE)

Beispiel 1: Intranet aufbauen

HRMS Timesheet

HRMS Staffing

Beispiel 2: Daten extern nutzen

Intranet

Firmen-Homepage

Zentrale Verwaltung aller News(intern und

extern)

Externe News

Externe News

Web Service

Aber ...

... wie ist das mit SharePoint realisierbar?

AgendaEntwicklungsumgebungSharePoint ArchitekturWeb Part EntwicklungSharePoint ObjektmodellSharePoint Web ServicesZusammenfassung

AgendaEntwicklungsumgebungSharePoint ArchitekturWeb Part EntwicklungSharePoint ObjektmodellSharePoint Web ServicesZusammenfassung

Systemumgebung„Eine Maschine“

Direkt auf Windows Server 2003 arbeitenhttp://www.msfn.org/win2k3/

„Zwei (oder mehrere) Maschinen“Entwicklung auf Windows XPDeployment auf Windows Server 2003

Virtual PC oder externes System

EntwicklungsumgebungVisual Studio .NET 2002/2003

SharePoint DLLs kopieren (bei „Ein-Maschinen-Modell“)C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\ISAPI

Microsoft.SharePoint.DLLMicrosoft.SharePoint.Portal.DLLMicrosoft.SharePoint.Portal.SingleSignon.DLLMicrosoft.SharePoint.Portal.SingleSignon.Security.DLL

Web Part Projekt Vorlage für Visual Studio .NEThttp://msdn.microsoft.com/sharepoint

AgendaEntwicklungsumgebungSharePoint ArchitekturWeb Part EntwicklungSharePoint ObjektmodellSharePoint Web ServicesZusammenfassung

SharePoint ArchitekturObjektmodell Web Services

SharePoint 2001 (Unmanaged) Code.NET Framework

Objektmodell Web Services Web Part WebDAV FP RPC

Sites Webs

ListsDocs Links

Web Part

AgendaEntwicklungsumgebungSharePoint ArchitekturWeb Part EntwicklungSharePoint ObjektmodellSharePoint Web ServicesZusammenfassung

Was sind Web Parts?Aus der Sicht des Anwenders

Bausteine für modulare WebseitenEinbindung in Webseite zur Laufzeit möglich

Aus der Sicht des EntwicklersASP.NET Server Controls, als Assembly deployedHabeb vollen Zugriff auf die .NET Base Class LibraryUnterstützung durch Visual Studio .NET Projekt Template

Das „Hello World!“ Web Partnamespace MyWebParts {

using Microsoft.SharePoint.WebPartPages;

[ToolboxData("<{0}: HelloWorld runat=server></{0}: HelloWorld>"),XmlRoot(Namespace=" MyWebParts")]

public class HelloWorld : WebPart{ protected override void RenderWebPart (HtmlTextWriter output){

output.Write(“Hello World!”);}

}}

... wie ASP.NET Server Control Entwicklung!

Windows Server

Web Part Deployment – Option 1

WebPartAssembly (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.configregistriert sein

Windows Server

Web Part Deployment – Option 2

Global AssemblyCache

WebPartAssembly (DLL)

IIS Virtual Server

IIS Virtual Server

IIS Virtual Server

• Assembly global für alle Virtual Server installieren

• Assembly im GAC ist immer „Safe“

Noch mehr Optionen ...Manuelle Installation

Dateien kopierenWeb.config anpassen

CAB Datei erstellenDateien in CAB kopierenSTSADM.EXE aufrufen

MSI Paket erstellenWPPackager.EXE Tool verwenden! http://msdn.microsoft.com/SharePoint

demo

Kalender Web Part

Web Part Connections (I)Event-gesteuerter DatenaustauschDaten-Consumer/Provider ModellAnwender konfiguriert ConnectionsClient- oder server-seitigEvent handling übernimmt die InfrastrukturNur Implementierung der Consumer/Provider Interfaces und Methoden nötigIList, IRow, ICell, IFilter, IParams, Transformers

Zukunft der Web Parts Visual Studio .NET 2005 („Whidbey“)

„Whidbey“ Web Parts sind keine SharePointWeb PartsASP.NET Team wird einen Wrapperbereitstellen, um Whidbey Web Parts in SharePoint laufen zu lassen

Nächste SharePoint Version wird auf Basis von Whidbey Web Parts arbeiten!

Web Parts gut&schlechtGut

Building Blocks der Zukunft für modulare WebseitenIntegration vorhandener ASP.NET Steuerelemente

SchlechtKein Designer verfügbarDebugging derzeit umständlich „Whidbey“

AgendaEntwicklungsumgebungSharePoint ArchitekturWeb Part EntwicklungSharePoint ObjektmodellSharePoint Web ServicesZusammenfassung

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!

Objektmodell ist nur innerhalb des SharePoint Servers verwendbar

Objektmodelle

Windows-Anwendung

Web-AnwendungWeb Part

WSS NamensräumeInsgesamt 18 Namensräume, davon stehen 9 Namensräume für eigene Anwendungen zur Verfügung

Microsoft.SharePointMicrosoft.SharePoint.AdministrationMicrosoft.SharePoint.DspMicrosoft.SharePoint.MeetingsMicrosoft.SharePoint.SecurityMicrosoft.SharePoint.SoapServerMicrosoft.SharePoint.UtilitiesMicrosoft.SharePoint.WebControlsMicrosoft.HtmlTrans.Interface

SPS NamensräumeInsgesamt über 50 Namensräume, davon 16 heute in Verwendung

Microsoft.SharePoint.PortalMicrosoft.SharePoint.Portal.Admin.SearchMicrosoft.SharePoint.Portal.Alerts (+2)Microsoft.SharePoint.Portal.AudienceMicrosoft.SharePoint.Portal.Search (+2)Microsoft.SharePoint.Portal.SecurityMicrosoft.SharePoint.Portal.SingleSignOn (+1)Microsoft.SharePoint.Portal.SiteDataMicrosoft.SharePoint.Portal.TopologyMicrosoft.SharePoint.Portal.UserProfilesMicrosoft.SharePoint.Portal.WebControls

demo

Zugriff auf Listen mit Objektmodell

Objektmodell gut&schlechtGut

Sehr komfortabel in der VerwendungSehr mächtig, nahezu alle Funktionen sind erreichbar

SchlechtNur auf dem SharePoint Server verfügbar, nicht von extern

„by design“

AgendaEntwicklungsumgebungSharePoint ArchitekturWeb Part EntwicklungSharePoint ObjektmodellSharePoint Web ServicesZusammenfassung

Was sind die Web Services?Eine weitere Schnittstelle zu ...

Windows SharePoint Services (WSS)SharePoint Portal Server (SPS)

Erreichbar unterhttp:// Server:Port / _vti_adm / Service.asmxhttp:// Server:Port / _vti_bin / Service.asmxhttp:// Server:Port / Sites / Site /_vti_bin / Service.asmx

Direkt in Visual Studio .NET verwendbar

Ermöglicht den „Fernzugriff“ auf SharePoint

WebServices ermöglichen den Zugriff von „extern“

Web Services

Fat-Client AnwendungWeb-Anwendung(Web Part)

Zugriff per SOAP

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

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/Web PartPages.asmx

Webs Web Service /[sites/][site/]_vti_bin/Webs.asmx

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

demo

SharePoint Web ServicesZugriff auf Listen

Web Services gut & schlechtGut

Zugriff von jedem beliebigen System aus möglich (auch nicht-Windows)

SchlechtNicht alle Funktionalitäten von SharePointerreichbar (bspw. Dokumententransfer)Rückgabewerte erfolgen meist als XmlCode

AgendaEntwicklungsumgebungSharePoint ArchitekturWeb Part EntwicklungSharePoint ObjektmodellSharePoint Web ServicesZusammenfassung

ZusammenfassungWeb Parts sind kombinierbare „Bausteine“

Der Zugriff auf SharePoint erfolgt überObjektmodell und/oder Web Services

SPS ≠ WSS

Mehr InformationenEntwicklerseiten

http://msdn.microsoft.com/sharepointhttp://gotdotnet.com/team/sharepoint

Produkthttp://microsoft.de/sharepoint

Third-Party Seitenhttp://mysharepoint.de (Michael Greth)http://sharepointinfo.de (Markus Weisbrod)http://sebastian-weber.org

Fragen und Antworten

Ihr Potenzial. Unser Antrieb.