View
16
Download
0
Category
Preview:
Citation preview
SharePoint Development
Sebastian WeberSoftware EngineerPlatinion GmbH – The Boston Consulting GroupWeber.Sebastian@platinion.de
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!
Beispiel 2: Daten extern nutzen
Intranet
Firmen-Homepage
Zentrale Verwaltung aller News(intern und
extern)
Externe News
Externe News
Web Service
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
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
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
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
Recommended