Entwicklung von Webportalen mit Microsoft SharePoint
Transcrição
Entwicklung von Webportalen mit Microsoft SharePoint
Entwicklung von Webportalen mit Microsoft SharePoint 05.12.2011 Name: Matrikelnummer: Studiengang: Betreuer: [Text eingeben] Andreas Riehl 836735 Scientific Programming Prof. Dr. rer. nat. Bodo Kraft, FH Aachen Dipl. Phys. Michael Benden, synaix Gesellschaft für angewendete Informations-Technologie mbh Inhaltsverzeichnis Inhaltsverzeichnis .................................................................................................................................... 2 1 Einleitung ......................................................................................................................................... 3 2 Was ist ein Webportal? ................................................................................................................... 3 2.1 Vertikale und horizontale Webportale.................................................................................... 3 3 Was ist SharePoint........................................................................................................................... 4 4 Die SharePoint Architektur.............................................................................................................. 5 4.1 Aufbau einer SharePoint Webanwendung .............................................................................. 7 4.2 Die SharePoint 2010 Produktfamilie ....................................................................................... 8 5 4.2.1 SharePoint Foundation 2010 ........................................................................................... 8 4.2.2 SharePoint Server 2010 Standard ................................................................................... 8 4.2.3 SharePoint Server 2010 Enterprise ................................................................................. 8 4.2.4 SharePoint Online............................................................................................................ 9 4.2.5 SharePoint Designer 2010 ............................................................................................... 9 4.2.6 SharePoint Workspace 2010 ........................................................................................... 9 Funktionsübersicht .......................................................................................................................... 9 5.1 Webseiten ............................................................................................................................... 9 5.2 WebParts ............................................................................................................................... 10 5.3 Listen ..................................................................................................................................... 11 5.4 Dokumentenbibliotheken ..................................................................................................... 11 5.5 Benutzerverwaltung .............................................................................................................. 11 5.6 Workflows ............................................................................................................................. 12 5.6.1 5.7 6 In SharePoint Server vorhandene Workflows ............................................................... 12 Business Connectivity Services .............................................................................................. 13 Entwicklung eigener Funktionalität............................................................................................... 14 6.1 Entwicklungsumgebung und SDK .......................................................................................... 14 6.1.1 Microsoft SharePoint Designer 2010 ............................................................................ 14 6.1.2 Microsoft Visual Studio 2010 ........................................................................................ 14 6.2 Das Objektmodell .................................................................................................................. 15 6.3 Exemplarische Erstellung eines eigenen WebParts .............................................................. 16 6.4 Deployment und Installation ................................................................................................. 19 Glossar ................................................................................................................................................... 20 Liste verwendeter Quellen .................................................................................................................... 21 2 1 Einleitung Diese Arbeit beschäftigt sich mit dem Thema „Entwicklung von Webportalen mit Microsoft SharePoint“. Der Fokus liegt auf der Erstellung eines Webportales mittels SharePoint Server 2010 für den Einsatz im Unternehmen. Dabei stehen die standardmäßig bereitgestellten Funktionen des SharePoint Server 2010 sowie dessen Konzepte im Vordergrund. Es sollen die Möglichkeiten der Software in Hinblick auf den Einsatz als Intranet Anwendung erläutert werden Der Fokus liegt nicht auf der Entwicklung eigener Erweiterung, obgleich im letzten Kapitel die Möglichkeiten der Erweiterungen durch Drittentwickler beleuchtet wird, sowie exemplarisch die Entwicklung einer eigenen Komponente gezeigt wird. 2 Was ist ein Webportal? In der Informatik wird als Portal eine Anwendung bezeichnet, die dem Benutzer verschiedene Funktionen, Dienste, Prozesse und Anwendungen an zentraler Stelle und möglichst einheitlich zur Verfügung stellt. Bei einem Webportal dienen als technische Grundlage Webtechnologien wie z.B HTML,CSS, PHP, Java oder auch ASP.NET, um das Portal als dynamische Webanwendung zu realisieren, die über einen Webbrowser bedient werden kann. Charakteristisch für Portale sind gewisse Grundfunktionalitäten die portalweit, allen integrierten Anwendungen und Diensten, zur Verfügung stehen. Dazu gehört unteranderem: eine einheitlich Navigation und „Look and Feel“, die Personalisierung des Portals durch den Endbenutzer, DMS (Dokument Management System) Funktionalität, zum verwalten von Dateien, eine einmalige Anmeldung, sog. Single-Sign-On (SSO), eine Integrationsmöglichkeit für externe Systeme und eine portalweite Suchfunktion In der Literatur wird gerne auf folgende Definition verwiesen: „Ein Portal ist […] eine Applikation, die […] einen zentralen Zugriff auf personalisierte Inhalte sowie bedarfsgerecht auf Prozesse bereitstellt. Charakterisierend für Portale ist die Verknüpfung und der Datenaustausch zwischen heterogenen Anwendungen über eine Portalplattform. Eine manuelle Anmeldung an den in das Portal integrierten Anwendungen ist durch Single-Sign-On nicht mehr notwendig, es gibt einen zentralen Zugriff über eine homogene Benutzungsoberfläche. Portale bieten die Möglichkeit, Prozesse und Zusammenarbeit innerhalb heterogener Gruppen zu unterstützen.“ (Gurzki, 2004) Bekannte Hersteller von Webportalen sind Microsoft mit SharePoint, IBM mit WebSphere, Oracle mit WebCenter und Liferay mit ihrem gleichnamigen Webportal.1 2.1 Vertikale und horizontale Webportale Im Zusammenhang mit Webportalen kann grob zwischen zwei Typen unterschieden werden. Sogenannte horizontale, auch breite, Webportale und vertikale, auch tiefe, Webportale. 1 http://www.gartner.com/technology/reprints.do?id=1-17RRLXF&ct=111025&st=sb 3 Vertikale Portale zeichnen sich durch die Fokussierung auf eine Themenbereich aus. Ein Beispiel für ein vertikales Webportale ist das bekannte Versandhaus Amazon. Auch wenn die angebotenen Waren durchaus sehr breit gefächert sind und von Nahrungsmitteln über Bücher bis zu Elektronikartikeln reichen, liegt der Fokus des Webportales klar auf den Verkauf und Versand dieser Waren. Das Portal stellt dem Kunden verschiedene Dienste und Anwendungen zu genau diesem Zweck bereit. Als typische Portalfunktionen wäre der personalisierte Zugang inkl. Profilverwaltung und die portalweite Suche. Als horizontales Webportal wird dagegen ein Portal bezeichnet, das zahlreiche und vor allem unterschiedliche Themenbereich abdeckt. Dies lässt sich ebenfalls sehr gut an einem Beispiel mit dem Internetunternehmen Yahoo und dessen gleichnamigen Portals zeigen. Das Yahoo Portal bietet viele verschiedene Dienste und Anwendungen wie Nachrichten, Wetterberichte, Online-Spiele oder gar Email an. Ebenfalls sind alle Dienste und Anwendungen unter einer Oberfläche mit einheitlicher Navigation und Benutzerführung zusammengeführt, personalisierbar und durchsuchbar. Was fehlt ist die Fokussierung der einzelnen Dienste und Anwendungen auf einen Themenbereich. 3 Was ist SharePoint Meist wird mit SharePoint die Webportallösung von Microsoft gemeint. Genau genommen ist SharePoint aber die Bezeichnung einer Ganzen Produktfamilie bestehend aus mehreren verschiedenen Softwareprodukten, mit dem Schwerpunkt Webportal für Unternehmen. Die aktuelle Version des Webportals von Microsoft heißt SharePoint Foundation 2010 bzw. SharePoint Server 2010. Es wird von Microsoft als „Plattform zur Zusammenarbeit" im Unternehmen beworben und umfasst unteranderem DMS Funktionalitäten, Diskussionsforen und Wikis. Microsoft ordnet und vermarktet den Leistungsumfang des SharePoint Servers in sechs Kategorien:2 2 Abbildung 3-1 Sites Der Bereich „Sites“ bildet als konsolidierte Plattform die Grundlage für die Einsatzfähigkeit von SharePoint 2010 in Bezug auf die optimierte Zusammenarbeit von Mitarbeitern und Partnern. Der Austausch von Informationen, Daten und Fachkenntnissen untereinander und auch mit den Kunden kann sowohl innerhalb als auch außerhalb der Firewall erfolgen. Composites Im modernen, dynamischen Unternehmen bilden sich ständig neue Anforderungen heraus, denen nicht mit standardisierten Lösungen begegnet werden kann. Ihre Mitarbeiter verlangen mit Recht nach individuellen Antworten – ohne stets auf die Hilfe der IT-Abteilung angewiesen zu sein. Diesem komplexen Problem begegnet der Bereich „Composites“, der http://sharepoint.microsoft.com/de-de/product/capabilities/Seiten/default.aspx 4 gleichzeitig der IT-Abteilung ermöglicht, diese geforderte Flexibilität auch mit Rücksicht auf Stabilität und Verfügbarkeit der IT-Umgebung zu erlauben. Insights Jederzeit, weltweit und ohne Barrieren und Hürden auf Informationen und Daten nicht nur zugreifen können, sondern diese auch weiterverarbeiten und für Analysen nutzbar machen als Grundlage zur Entscheidungsfindung und für verbindliche Schlussfolgerungen. Das verstehen wir unter „Insights“ – Business Intelligence für jedermann. Communities Die Basis des neuen Wissensmanagements. Unter diesem Überbegriff sind alle Technologien zusammengefasst, die es ermöglichen, sich in formellen wie informellen Netzwerken auszutauschen – für sämtliche Anwendungen in Enterprise 2.0, Learning 2.0 oder Web 2.0 Content Alle erforderlichen Tools zur Erstellung, Prüfung, Veröffentlichung und Entfernung unterschiedlichster Inhalte sind unter diesem Punkt gebündelt. In diesem Bereich wird nachvollziehbares Dokumentenmanagement (Compliance) und Web Content Management abgedeckt. Funktional beinhaltet dies Dokumenten- und Taxonomie-, Records sowie Web Content Management (WCM) Search Um Wissensarbeit effizient zu machen, muss der leichte, schnelle und zielgenaue Zugang dazu ermöglicht werden. Genau dies gewährleisten die Suchmechanismen für Inhalte, Personen und Daten (beispielsweise für eDiscovery). Weitere Vorteile sind die Erhöhung der Web-Umsätze/Verweildauer sowie die Personalisierung von Webseiten. Die genaue Beschreibung der verschiedenen SharePoint Produkte folgt in Kapitel „Die SharePoint 2010 Produktfamilie“. 4 Die SharePoint Architektur Der SharePoint Server ist eine komplexe mehrschichtige und erweiterbare Serveranwendung mit Anbindung an verschiedenste, teilweise externe, Systeme. Die programmiertechnische Umsetzung erfolgt vollständig auf Basis des Microsoft .NET Frameworks. Abbildung 4-1 zeigt die verschiedenen Komponenten und Schnittstellen, sowie den Unterbau des SharePoint Servers, den sog. „SharePoint 2010 Development Platform Stack". 5 Abbildung 4-1: SharePoint 2010 Development Platform Stack Die unterste Schicht bildet das Betriebssystem. Seit SharePoint Server 2010 ist ein 64-Bit Windows Server ab Version 2008 zwingend Voraussetzung. Der IIS (Internet Information Service) ist der in Windows Server integrierte Webserver und übernimmt die HTTP/HTTPS Anbindung nach außen. Das ebenfalls im Windows Server integrierte .NET Framework bildet die Laufzeitumgebung des SharePoint Server und ist somit für die Ausführung der Programmlogik verantwortlich. Als Datenbank muss ein Microsoft SQL Server ab Version 2008 verwendet werden. Dieser kann sich allerdings auch extern, d.h nicht auf demselben System des SharePoint Server befinden. Auf dieser Basis implementiert die SharePoint Foundation 2010 verschiedenste Funktionen. Und bietet auch für mobile Endgeräte speziell angepasste Ansichten. Der SharePoint Server 2010 erweitert die durch die SharePoint Foundation 2010 bereitgestellte Funktionalität. Der SharePoint Server 2010 wird noch in Standard und Enterprise unterteilt. Letztere Version zeichnet durch die besondere Unterstützung und Integration von Microsoft Office aus. Eine detaillierte Beschreibung der verschiedenen Server Versionen und anderen SharePoint Produkten folgt im Kapitel „Die SharePoint 2010 Produktfamilie“. 6 4.1 Aufbau einer SharePoint Webanwendung Grafik 4-1 zeigt den hierarchischen Aufbau einer exemplarischen SharePoint Installation. Grundsätzlich werden alle Einstellung einer Ebene auf die darunter liegenden Ebenen vererbt. Die untere Ebene kann diese aber wiederrum meist überschreiben Server (IIS-)Webanwendung Webseitensammlung (IIS-)Webanwendung Webseitensammlung (Root-)Webseite Unterwebseite Liste Unterwebseite Liste Liste Dokumentenbibliothek Grafik 4-1: Hierarchischer Aufbau einer SharePoint Umgebung 7 (Root-)Webseite Unterwebseite Unterwebseite Liste Webseitensammlung Eine Webseitensammlung stellt die Wurzel einer SharePoint Installation dar. Sie definiert unteranderem die Basis URL (z.B: http://srv-sp01.de/web/) unter der die Inhalte aufrufbar sind. Die darunter folgenden Webseiten befinden sich alle unterhalb des auf Webseitensammlung-Ebene definierten Pfades (z.B: http://srv-sp01.de/web/subweb1/). Die sog. Root-Webseite stellt dabei eine kleine Ausnahme dar. Die Root-Webseite ist die allererste Webseite die einer Webseitensammlung hinzugefügt wird und übernimmt die dort definierte URL (hier: http://srv-sp01.de/web/). Für den Endbenutzer sieht es also aus als wäre diese Root-Webseite die Wurzel einer SharePoint Installation. Die Möglichkeit der hierarchischen Ausrichtung einer SharePoint Anwendung erleichtert es Unternehmensstrukturen abzubilden. Geschäftsbereiche eines Unternehmens könnte als Webseitensammlung abgebildet werden, Webseiten und deren Unterwebseiten könnten dann den Abteilungen des jeweiligen Geschäftsbereiches entsprechen. Ressourcen auf die alle Geschäftsbereiche zugreifen müssen, wären dann horizontal als separate Webseitensammlung aufzubauen. Die genaue Funktionsbeschreibung von Listen, Dokumentenbibliotheken oder Webseiten folgt in Kapitel Funktionsübersicht. 4.2 Die SharePoint 2010 Produktfamilie Die SharePoint Produktfamilie besteht aus mehrere Softwareprodukten, sowohl serverseitigen als auch clientseitigen. Teilweise kostenpflichtig, teilweise kostenlos. 4.2.1 SharePoint Foundation 2010 SharePoint Foundation 2010 bildet die Grundlage für den SharePoint Server 2010 und ist für jeden Einsatzzweck, kommerziell oder privat, kostenlos einsetzbar. Es wird von Microsoft eher als Plattform anstelle als Produkt vermarktet und soll Drittentwicklern als Grundlage dienen, um angepasste Lösungen zu entwickeln. Dennoch bietet die SharePoint Foundation 2010 genügend Funktionalität auch ohne Einsatz von Drittentwicklern produktiv eingesetzt werden zu können. 4.2.2 SharePoint Server 2010 Standard Der SharePoint Server 2010 baut auf SharePoint Foundation 2010 auf und erweiter somit dessen Funktionalität. Im Gegensatz zu SharePoint Foundation 2010 wird der SharePoint Server 2010 als Produkt, und nicht als Plattform, vermarktet und ist darüber hinaus kostenpflichtig. Diese Edition richtet sich an Unternehmen mit bis zu mehreren hundert Mitarbeitern, was sich auch in den hinzugefügten Funktionen wiederspiegelt. So wird unteranderem das zeitgesteuerte und automatische importieren und synchronisieren von Benutzerstammdaten aus dem Windows Verzeichnisdienst Active Directory unterstützt. Das Anzeigen von erweiterten Benutzerinformationen wie z.B die Hierarchie der Abteilung in der der Mitarbeiter arbeitet in Form eines Organigramms unterstreichen ebenfalls die Zielgruppe eines großen Unternehmens. 4.2.3 SharePoint Server 2010 Enterprise Die Enterprise Variante des SharePoint Server 2010 erweitert den Funktionsumfang vor allem um Berichterstattungstools. Dazu zählen WebPart die Daten grafisch als Graphen oder Kuchendiagrammen anzeigen können, sowie eine besondere Integration von Microsoft Excel, um diese Daten aufzubereiten und zu pflegen. Nicht nur Microsoft Excel erfährt eine besondere Integration innerhalb des Servers auch die andere Office Produkte wie Access, InfoPath und Viso sind ebenfalls stark integriert. Ein Hauptaspekt der Integration besteht darin, dass Dateien dieser 8 Produkte wie z.B eine Access Datenbank mithilfe von SharePoint Server 2010 Enterprise geöffnet genutzt und bearbeitet werden kann, ohne das die Anwendung Microsoft Access auf dem Client installiert sein muss. Selbiges gilt für InfoPath und Visio Dateien. 4.2.4 SharePoint Online SharePoint Online stellt eine von Microsoft gehostete SharePoint Server 2010 Standard bzw. Enterprise Umgebung dar, die für eine monatliche Gebühr gemietet werden kann. Dem Endbenutzer stehen alle Funktionen einer herkömmliche SharePoint Umgebung zur Verfügung. Nur Entwickler müssen auf einen leicht reduzierte API zurückgreifen. 4.2.5 SharePoint Designer 2010 Der SharePoint Designer 2010 ist eine clientseitige Software, die die Möglichkeit bietet SharePoint Webseiten in ihrer Gestaltung und ihrem Verhalten anzupassen. Aber auch das verwalten von Listen und Dokumentenbibliotheken ist möglich, sowie das erstellen von benutzerdefinierten Workflows. Der SharePoint Designer stellt also eine Erweiterung der Anpassungs- und Verwaltungsmöglichkeiten der Weboberfläche dar und wendet sich an fortgeschrittene Benutzer. In Kapitel 6.1.26.1.1. 4.2.6 SharePoint Workspace 2010 SharePoint Workspace ist ebenfalls eine clientseitige, aber kostenpflichtige, Software, die es ermöglicht SharePoint Inhalte offline, ohne Netzwerkverbindung zum SharePoint Server, zu bearbeiten oder zu erstellen. Sobald wieder eine Netzwerkverbindung zum SharePoint Server besteht, werden die Inhalte wieder bidirektional synchronisiert. Die Anwendung ist Teil des Office Professional Plus 2010 Paketes. 5 Funktionsübersicht 5.1 Webseiten Der SharePoint Server bietet die Funktion eines Web Content Management Systems (WCMS), oft auch nur Content Management System (CMS) genannt, an. D.h Endbenutzer können innerhalb von SharePoint bequem und mithilfe von Vorlagen eigene dynamische und statische Webseiten erstellen und verwalten. Die Webseiten-Vorlage definiert bestimmte Bereiche in denen der Endbenutzer seinen Inhalt einbringen und gestalten kann. In Webseiten können auch sog. WebPart-Zonen eingefügt werden. In diese WebPart-Zonen können vom Endbenutzer wiederrum WebParts eingefügt werden. Was ein WebPart ist wird im Kapitel „WebParts“ behandelt. Die Entwicklung von eigenen WebParts widmet sich Kapitel "Entwicklung eigener Funktionalität". Für das erstellen eigener Webseiten innerhalt des SharePoint Servers sind nicht zwingend Programmierkenntnisse erforderlich. Die Gestaltung kann mittels eines sog. WYSIWYG (What you see is what you get) Editors erfolgen. Die Bedienung des Editors ist an herkömmliche Desktop-Anwendungen wie z.B Microsoft Office Word angelehnt und soll intuitiv erfolgen. 9 Abbildung 5-1 Abbildung 5-1 zeigt eine neu angelegte Webseite unter Verwendung der Standardvorlage. Die Standardvorlage definiert ein zwei spaltiges Layout, in jeder Spalte befindet sich eine WebPart-Zone, und fügt automatisch mehrere WebParts hinzu. 5.2 WebParts Ein WebPart ist eine grafische als auch funktionale Kapselung. Sie dient meist als Schnittstelle zwischen Benutzer und der SharePoint Umgebung. Der Endbenutzer kann ein WebPart auf jeder Webseite innerhalb von SharePoint einbinden. Einzige Voraussetzung ist, dass die Webseite über mindestens eine WebPart-Zone verfügen muss, in diese man dann das WebPart einbinden kann. Webparts können grundsätzlich auf jeder beliebigen Webseite, in beliebiger Anzahl, eingefügt werden. Die Platzierung erfolgt dabei über das Frontend oder mithilfe von SharePoint Designer. Über das Frontend oder den SharePoint Designer kann man die meisten WebParts auch personalisieren. Das minimieren oder gar ausblenden ist ebenso möglich. Die WebParts folgen somit einer FensterMetapher. Viele Funktionalitäten innerhalb von SharePoint wie z.B Listen oder Dokumentenbibliotheken realisieren die Benutzerinteraktion über WebParts. Abbildung 5-2 Abbildung 5-2 zeigt exemplarisch das Dokumentenbibliotheks-WebPart. Es ist ein benutzerdefinierter Titel „Meine Dokumente“ sowie ein ebenfalls durch den Benutzer hinzugefügtes Dokument zu sehen. 10 Andere Hersteller von Portallösungen haben ähnliche Konzepte zu SharePoints WebParts und heißen z.B Portlet bei Liferay oder Widget.3 5.3 Listen Listen sind integraler Bestandteil des SharePoint Servers. Jeglicher Inhalt den Benutzer in SharePoint hinzufügen oder verwalten, wird i.d.R in Listen oder Dokumentenbibliotheken gespeichert. Auch wenn die spätere Präsentation der Daten nicht zwingend in Listenform erfolgt. Mehr zu Dokumentenbibliotheken in Kapitel „Dokumentenbibliotheken“. Die Interaktion mit Listen wird ebenfalls durch WebPart realisiert, und kann somit auch von Endbenutzern eingebunden und personalisiert werden. Im wesentlichen bestehen Listen aus Spalten, Ansichten und Formularen. Spalten definieren den Datentyp des Zelleninhaltes, wie z.B „Text“, „Zahl“ oder „Datum“. Ansichten definieren die Sortierung der Spalten, mögliche Filterungen oder wie viele Einträge pro Seite angezeigt werden sollen. Über Formulare kann der Endbenutzer Einträge löschen, bearbeiten oder neu anlegen. Die Kombination dieser drei Komponenten wird als Listenvorlage bezeichnet. Ein Benutzer kann anhand dieser Listvorlagen eine konkrete Liste erstellen. Der SharePoint Server bietet bereits standardmäßig eine Reihe von Listenvorlagen an. Listen können über das Frontend, per Microsoft SharePoint Designer oder programmatisch durch Microsoft Visual Studio erstellt werden. 5.4 Dokumentenbibliotheken Dokumentenbibliotheken sind eine Erweiterung der Listenfunktionalität. Sie verfügen ebenfalls über Spalte, Ansichten und Formulare. Größter Unterschied ist, dass man zusätzlich Binärdateien wie Office oder PDF Dokumente hochladen kann und somit zur Abdeckung der DMS Funktionalität verwendet werden. Die Spalten dienen dann als beschreibende Metainformationen zum hochgeladenem Dokument. Da das Durchsuchen von Binärdokumenten schwierig bis unmöglich ist, können diese Metainformationen dann zum schnelleren auffinden des gewünschten Dokuments benutzt werden. Ebenso wie Liste können auch Dokumentenbibliotheken über das Frontend, mit Microsoft SharePoint oder durch Microsoft Visual Studio erstellt werden. 5.5 Benutzerverwaltung Der SharePoint Server verfügt über eine granulare Benutzer- und Rechteverwaltung. Der Zugriff auf Inhalt innerhalb einer SharePoint Umgebung kann mittels Benutzern, Gruppen, Rechten und sog. Webseitenberechtigungen gesteuert werden. Ein Benutzer besteht im wesentlichen aus einem Anmeldenamen sowie einem Passwort und weiteren optionalen Attributen. Eine Gruppe ist eine Ansammlung von Benutzer. Ein Recht definiert eine Aktion oder Option die einem Benutzer erlaubt oder verweigert wird. Der SharePoint Server definiert einen festen Vorrat an Rechte, der nicht erweitert werden kann. Webseitenberechtigung wird in anderen Softwaresystemen auch als Rolle bezeichnet und stellt eine Ansammlung von Rechten dar. Rechte und Webseitenberechtigungen können sowohl einem Benutzer als auch einer Gruppe zugeordnet werden. 3 http://en.wikipedia.org/w/index.php?title=Web_part&oldid=455022898 11 5.6 Workflows Mit Workflows können Geschäftsprozesse innerhalb von SharePoint abgebildet werden. Ein Workflow wird durch eine vorher definierte Abfolge von Aufgaben beschrieben. Jeder Workflow besteht aus mindestens einer Aufgabe. Diese Aufgabe kann entweder einer einzelnen Person oder einem ganzen Personenkreis zur Bearbeitung zugewiesen werden. Das Abschließen einer Aufgabe durch einen Bearbeiter hat ein ebenfalls vorher definiertes Ereignis zur Folge. Es können eigene benutzerdefinierte Workflows erstellt werden und anderen Benutzern zur Verfügung gestellt werden. Die Entwicklung solcher Workflows erfolgt entweder in Microsoft SharePoint Designer oder in Microsoft Visual Studio 2010. 5.6.1 In SharePoint Server vorhandene Workflows Der SharePoint Server stellt standardmäßig folgende sieben parametrierbare Workflows zur Verfügung:4 4 Genehmigung Mit diesem Workflow ist es möglich ein gegebenes Dokument (Dokumentenbibliothek) oder einen Listeneintrag (Liste) an eine Personengruppe weiterzuleitet und dessen Genehmigung einzufordern. Feedback sammeln Dieser Workflow leitet ähnlich zum Workflow „Genehmigung“ das Dokument an einen definierten Personenkreis weiter, allerdings mit der Absicht Feedback über das gesendete Dokument anzufordern. Signaturen sammeln Dieser Workflow leitet ein Microsoft Office-Dokument an eine Gruppe von Benutzern weiter, um deren digitale Signaturen zu sammeln. Dieser Workflow muss in einem Clientprogramm gestartet werden, das Teil von 2007 Office Release ist. Teilnehmer müssen ihre Signaturaufgaben abschließen, indem sie ihre digitalen Signaturen im relevanten Microsoft Office-Programm zum Dokument hinzufügen. Standardmäßig ist der Workflow zum Sammeln von Signaturen mit dem Dokumentinhaltstyp verknüpft und daher automatisch in Dokumentbibliotheken verfügbar. Der Workflow zum Sammeln von Signaturen wird allerdings nur dann für ein Dokument in der Dokumentbibliothek angezeigt, wenn dieses Dokument mindestens eine Microsoft Office-Signaturzeile enthält. Dispositionsgenehmigung Dieser Workflow, der Verwaltungsprozesse für Datensätze unterstützt, verwaltet den Ablauf und die Beibehaltung von Dokumenten, indem die Teilnehmer entscheiden können, ob abgelaufene Dokumente beibehalten oder gelöscht werden sollen. Der Workflow für die Dispositionsgenehmigung ist hauptsächlich für die Verwendung auf einer Datenarchivwebsite vorgesehen. Drei Status Dieser Workflow kann zur Verwaltung von Geschäftsprozessen verwendet werden, bei denen Organisationen zahlreiche Probleme oder Elemente nachverfolgen müssen, z. B. Kundendienstprobleme, Vertriebslead oder Projektaufgaben. Gruppengenehmigung Dieser Workflow ähnelt dem Genehmigungsworkflow, unterscheidet sich aber dadurch, dass er eine spezielle Dokumentbibliothek verwendet und eine personalisierte Ansicht der Genehmigungsprozesse bietet, an denen ein Benutzer teilnimmt. Dieser Workflow stellt ein hierarchisches Organigramm zum Auswählen der genehmigenden Personen bereit, das es diesen ermöglicht, anstelle einer Signatur ein Stempelsteuerelement http://office.microsoft.com/en-us/sharepoint-foundation-help/about-the-workflows-included-withsharepoint-HA102420739.aspx 12 zu verwenden. Diese Lösung ist nur für ostasiatische Versionen von Office SharePoint Server 2007 verfügbar. Übersetzungsverwaltung Mit diesem Workflow wird der Übersetzungsprozess für Dokumente verwaltet. Es werden Kopien des zu übersetzenden Dokuments erstellt und Übersetzungsaufgaben Übersetzern zugewiesen. Dieser Workflow ist nur für Übersetzungsverwaltungsbibliotheken verfügbar. 5.7 Business Connectivity Services Unter Business Connectivity Services werden eine Reihe von Funktionen zum anbinden und integrieren externer Datenquellen in die SharePoint Server Umgebung bezeichnet. Die Möglichkeit externe Datenquellen einzubinden ist dabei eine für ein Webportal charakteristische Funktionalität, um den Anforderungen der Zusammenführung verschiedener Anwendungen unter einer einheitlichen Oberfläche gerecht zu werden. Grundsätzlich kann jede SharePoint Server Komponente wie z.B Listen/Dokumentenbibliotheken, Workflows oder WebParts auf die, durch die Business Connectivity Services bereitgestellten, externen Daten zugreifen. Seit SharePoint 2010 kann der Zugriff lesend und auch schreibend erfolgen. Listen deren Daten in einer externen Datenquelle vorgehalten werden, werden als externe Liste bezeichnet. Über die Business Connectivity Services kann eine externen Datenquelle derart in eine SharePoint Liste integriert werden, dass der Endbenutzer keinen Unterschied zwischen einer externen Liste und einer normalen Liste erkennt. Alle gewohnten Funktionen wie anlegen, bearbeiten, löschen, filtern und sortieren stehen zur Verfügung. Externe Microsoft SQL Server Datenbanken, XML Dokumente oder Webservices können standardmäßig ohne weiteren Programmieraufwand eingebunden werden. Um Datenbanken anderer Hersteller oder gänzlich andere Datenquellen einbinden zu können muss eine sog. Connectivity Assembly programmiert werden. (Externe) Listen Dokumentenbiblothek Workflows Business Connectivity Services Webservice Datenbanken Grafik 5-1 13 XML Dokument WebParts 6 Entwicklung eigener Funktionalität Wenn die standardmäßig angebotenen Funktionen des Sharepoint Server, trotz Anpassungs- und Personalisierungsmöglichkeiten, nicht ausreichen, besteht die Möglichkeit eigene Funktionalität auf Basis der vorhandenen SharePoint Infrastruktur zu entwickeln bzw. zu integrieren. Es besteht die Möglichkeit bereits vorhandene Funktionalität zu erweitern, gänzlich neue Funktionen in SharePoint zu integrieren oder aber auch SharePoint in andere Anwendungen zu integrieren. Letzteres wurde mit Version 2010 stark gefördert. Folgende Bereich können durch Dritte erweiter werden... 6.1 Entwicklungsumgebung und SDK Je nachdem welchen Bereich man erweitern möchte, müssen verschiedene Technologien, Programmiersprachen und Programme eingesetzt werden. Grundsätzlich gibt es zwei Programme mit denen man eine SharePoint Umgebung, über die Möglichkeiten des Frontends hinaus, anpassen und erweitern kann: Die Entwicklungsumgebung Microsoft Visual Studio in Version 2010 und den Microsoft SharePoint Designer 2010. Ersteres wendet sich an Softwareentwickler und deckt alle Erweiterungsmöglichkeiten ab. Letzteres richtet sich an Webseitengestalter mit HTML, CSS und JavaScript Kenntnissen und bietet nur die Möglichkeit Webseiten zu erstellen und anzupassen. 6.1.1 Microsoft SharePoint Designer 2010 Der Microsoft SharePoint Designer 2010 richtet sich an professionelle Webseitengestalter und an fortgeschrittene Endbenutzer. In erster Linie vereint der SharePoint Designer die Anpassungs- und Verwaltungsmöglichkeiten, die man über das Webseiten Frondend hat in einer Desktop-Anwendung. D.h es können Listen angelegt und angepasst werden, Texte oder Bilder gepflegt werden oder Benutzer verwaltet werden. Der SharePoint Designer geht allerdings über die Funktionen des Frontends hinaus und ermöglicht es auch den Quelltext von Webseiten anzupassen. Sowohl gestalterisch über HTML oder CSS als auch funktional mittels JavaScript. 6.1.2 Microsoft Visual Studio 2010 Um Visual Studio in Verbindung mit dem SharePoint Server einzusetzen, ist mindestens die kostenpflichtige Professional Version Voraussetzung, die kostenlose Express Edition kann leider nicht zur Entwicklung mit SharePoint Server eingesetzt werden. Um den Einstieg in die Entwicklung zu erleichtern, bietet Visual Studio standardmäßig, entsprechend den Erweiterungsmöglichkeiten des Servers, verschiedene Projektvorlagen. Diese Projektvorlagen legen die Grundstruktur der zu entwickelnden Erweiterung fest. Folgende typische Erweiterungen werden durch Projektvorlagen unterstützt: 14 WebPart Workflows Listen Dokumentenbibliotheken Business Connectivity Assemblys 6.2 Das Objektmodell Seit Version 2010 kann bei der Entwicklung zwischen zwei grundsätzlichen Objektmodellen unterschieden werden. Das serverseitge Objektmodell und das clientseitige Objektmodell. Frühere SharePoint Server Versionen haben es nur erlaubt, dass Anwendungen, die auf SharePoint Funktionalität zurückgriffen, zwingend auch auf dem Server betrieben werden mussten. Für viele Komponenten wie WebParts, Webseiten oder Workflows stellt dies keine Hürde dar, da diese aus anderen Gründen generell nur im Kontext der SharePoint Webanwendung sinnvoll sind. Allerdings war es so nicht möglich SharePoint ohne Umwege in eine, nicht auf dem Server laufende, Anwendung zu integrieren. Das in Version 2010 hinzugekommene sog. Client Object Model, erlaubt es nun Entwicklern z.B auf Listeninhalten des SharePoint Server zuzugreifen und diese zu in ihre Anwendung zu integrieren. In dieser Arbeit wird nicht weiter auf das Client Object Model eingegangen. SPSite SPSite (Webseitensammlung) (Webseitensammlung) SPWeb ((Root-)Webseite) SPWeb ((Root-)Webseite) SPWeb SPListe SPWeb (Unterwebseite) (Liste) (Unterwebseite) SPWeb SPWeb (Unterwebseite) (Unterwebseite) SPListe SPListe (Liste) (Liste) SPListe (Liste) SPList (Dokumentenbibliothek) Grafik 6-1: Umsetzung im Objektmodell 15 Wenn man den hierarchischen Aufbau einer SharePoint Umgebung verinnerlicht hat, wird man sich auch recht schnell im Objektmodell zurechtfinden, da die hierarchische Struktur sinnvollerweise ebenfalls im Objektmodell umgesetzt wurde. Grafik 6-1: Umsetzung im Objektmodell zeigt die Umsetzung im Objektmodell des in Grafik 5-1 beispielhaft dargestellten Aufbaus. 6.3 Exemplarische Erstellung eines eigenen WebParts Die Möglichkeit zum entwickeln von SharePoint WebParts ist seit Visual Studio 2010 fester Bestandteil und wird z.B durch Projektvorlagen und das direkte installieren des WebParts auf den SharePoint Server unterstützt. Im folgenden wird die Entwicklung eines eigenes simples SharePoint WebPart gezeigt. Das WebPart soll die Nachricht „HelloWorld“ ausgeben. Nicht nur die Entwicklung sondern auch das dahinterliegende Installationsmodell des SharePoint Servers soll beleuchtet werden. Es wird dabei versucht auf die wichtigsten Punkte einzugehen. Eine detaillierte Erklärung jedes einzelnen Aspektes kann es in dieser Arbeit allerdings nicht geben. Darüber hinaus werden Programmierkenntnisse mit C# und Visual Studio vorausgesetzt. Abbildung 6-1 Zu Beginn muss, wie üblich in Visual Studio, ein neues Projekt angelegt werden. Unter der Kategorie SharePoint muss die Vorlage Visuelles Webpart ausgewählt werden. Sollte die Kategorie SharePoint nicht zur Verfügung stehen. Wurde entweder die Unterstützung zur SharePoint Entwicklung während des Installationsprozesses von Visual Studio deaktiviert oder es wird die Visual Studio 2010 Express 16 Edition verwendet. Die Entwicklung für SharePoint wird erst mit Visual Studio 2010 Professional oder höher unterstützt. Visual Studio legt nun eine Ordnerstruktur inklusive einiger Dateien an, die grundlegen für das WebPart sind. Die vorgegebene Ordnerstruktur muss nicht zwingend eingehalten werden. Wenn sie angepasst wird, ist allerdings darauf zu achten, dass man alle Verweise in den anderen automatisch angelegten Dateien manuell anpassen muss. Properties und Verweise sind Standardelemente die in jedem Projekt ganz unabhängig, ob es sich um ein SharePoint Projekt oder um eine Windows Desktopanwendung handelt. Sie sind somit nicht SharePoint WebPart spezifisch. Unter Properties werden allgemeine Einstellungen zum Abbildung 6-2 Projekt festgehalten, dazu zählt z.B die Versionsnummer oder der Pfad unter dem die kompilierte Datei abgelegt werden soll. Verweise enthält alle Verweise auf eingebundene Bibliotheken. Jedes WebPart leitet von der Klasse Microsoft.SharePoint.WebPartPages.WebPart ab. Diese Klasse ist in der Microsoft.SharePoint.dll definiert, sodass mindestens ein Verweis auf diese Datei bestehen muss. Die Elemente Feature und Package sind SharePoint spezifisch und finden sich in jedem Visual Studio SharePoint Projekt wieder. Sie sind für die Installation der eigenen SharePoint Erweiterung nötig. Mehr dazu im Kapitel Deployment und Installation. Unter HelloWorldWebPart, benannt nach dem Namen des WebParts, befinden sich die WebPart spezifischen Elemente. Die WebPart.cs enthält den ausführbaren Code des WebParts, es kann beliebig viele weitere Codedateien (.cs) geben. Die Datei WebPart.webpart ist eine XML Datei und enthält Metadaten zur Beschreibung des WebParts die bei der Installation benötigt werden. Elements.xml ist ebenfalls für die Installation des WebParts nötig. Das folgende XML zeigt eine mögliche Beschreibung eines WebParts. Zeile 5 definiert welche Datei inkl. Dateiversion zu diesem WebPart gehört. Der data Abschnitt in Zeile 8 definiert Eigenschaften und deren Standardwerte, Titel und Description sind, wenn auch nicht zwingend nötig, standardmäßig vorhanden. Es können aber auch eigene Werte definiert werden. Zum Beispiel wäre es möglich in der XML die Nachricht anzugeben, die das WebPart später anzeigen soll. <?xml version="1.0" encoding="utf-8"?> 2: <webParts> 3: <webPart xmlns="http://schemas.microsoft.com/WebPart/v4"> 4: <metaData> 5: <type name="SharePointProject1.HelloWorldWebPart, HelloWorldWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> 6: <importErrorMessage>Error importing Web Part</importErrorMessage> 7: </metaData> 8: <data> 9: <properties> 10: <property name="Title" type="string">HelloWorldPart</property> 17 11: <property name="Description" type="string">WebPart das die Zeichenkette HelloWorld anzeigt.</property> 21: </properties> 22: </data> 23: </webPart> 24: </webParts> Ein SharePoint WebPart muss aus mindestens einer Klasse bestehen die wiederum von der Klasse WebPart im Namespace Microsoft.SharePoint.WebPartPages.WebPart ableitet. Diese Klasse stellt den Ausgangspunkt der weiteren WebPart Entwicklung dar. Aus dieser Klasse können andere Klassen instanziiert und benutzt werden. Die Basisklasse WebPart stellt unteranderem Methoden zum hinzufügen und Anzeigen von sogenannten WebControls dar. Sodass es sich anbietet hier die grafische Visualisierung des WebParts vorzunehmen. Geschäftslogik, Datenbankzugriffe, usw. sollten in andere Klassen ausgelagert werden. Ein WebControl ist eine grafische Komponente, die bei der Anzeige durch den Endbenutzer als HTML dargestellt wird. Die Klasse Literal stellt solch ein WebControl dar. Der Literal Klasse kann man eine Zeichenkette übergeben, dieses wird bei der Anzeige dann als Text dargestellt. Folgender Code stellt schon ein vollfunktionsfähiges WebPart dar, es wird ein Literal WebControl erstellt und die Zeichenkette „Hello Wordl!“ zugewiesen. Damit das WebControl auch angezeigt wird muss es noch dem sogenannten Visual Tree hinzugefügt werden. Der Visual Tree ist eine baumartige verkettete Liste an WebControls, die beim erstellen der HTML-Ausgabe durchlaufen wird: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: using System; using System.Web.UI; using System.Web.UI.WebControls; using Microsoft.SharePoint; using Microsoft.SharePoint.WebPartPages; namespace SharePointProject1 { public class HelloWorldWebPart : WebPart { private Literal messageLiteral; 18 // Diese von der Basisklasse bereitgestellte Methode // kann zum erstellen von WebControls verwendet werden. protected override void CreateChildControls () { /* Das WebControl Literal erzeugen * und die anzuzeigende * Nachricht zuweisen. */ this.messageLiteral = new Literal(); this.messageLiteral.Text = "Hello World!"; this.Controls.Add(messageLiteral); } } } 6.4 Deployment und Installation Das im Kapitel zuvor entwickelte WebPart muss nach dem Kompiliervorgang auf dem SharePoint Server ausgeliefert und, damit es den Anwendern auch zur Verfügung steht, installiert werden. Visual Studio 2010 bietet die Möglichkeit entwickelte Komponenten direkt aus der Entwicklungsumgebung auszuliefern und zu installieren. Dazu muss man auf Ebene des Projektes per Kontextmenü den Eintrag „Bereitstellen“ verwenden. Leider funktioniert dieser Mechanismus nur mit einem auf demselben System installiertem SharePoint Server. Entfernte SharePoint Server können so leider nicht so einfach bespielt werden. Wenn Erweiterungen auf nicht lokalen Systemen installiert werden müssen, ist nötig das im vorherigen Kapitel angedeutete Konzept des Feature und des Package zu verstehen, da dieses nicht mehr automatisch ohne Zutun des Entwicklers von Visual Studio erledigt wird. Ein Feature vereinfach und vereinheitlicht die Bereitstellung von Erweiterungen auf einem SharePoint Server. Es stellt einen Container für Erweiterungen dar, die aktiviert bzw. deaktiviert werden können. Ein Feature kann beliebig viele und auch verschiedene Arten an Erweiterungen gleichzeitig aktivieren bzw. deaktivieren. Beispielsweise könnte ein Dritthersteller verschiedene Erweiterungen zum Thema Urlaubsantrag entwickelt haben, wie ein WebPart das die nächsten 10 Urlauber auflistet, ein WebPart das die momentanen Urlauber auflistet und einen Workflow um Urlaub zu beantragen. Diese Erweiterungen machen nur Sinn, wenn sie gemeinsam genutzt werden. Der Dritthersteller könnte diese drei Erweiterungen zu einem Feature zusammenfügen. Würde ein Kunde dieses Produkt (Feature) kaufen und installieren, hat er die Möglichkeit alle drei Erweiterungen auf einmal zu aktivieren. Einzelne Erweiterungen können nicht losgelöst der anderen Erweiterungen aktiviert werden. Darüber hinaus lassen sich Abhängigkeiten zwischen verschiedenen Features definieren. Der besagte Dritthersteller könnte zu dem oben beschriebenem Feature, eine weiteres darauf aufbauendes Feature anbieten. Bei der Aktivierung des neue Features wird überprüft ob das andere nötige Feature bereits installiert und aktiviert ist. Ein Package wiederum ist ein Container für ein oder mehrere Features. Technisch gesehen ist es nichts anderes als eine CAB Datei mit der Dateiendung wsp. Wird ein SharePoint Projekt aus Visual Studio heraus kompiliert entsteht eine einziges Package (wsp-Datei). Diese Datei beinhaltet alles zur Bereitstellung der entwickelten Funktionalität. Zur Installation muss die Datei auf den Server kopiert werden. Über die SharePoint 2010-Verwaltungskonsole kann unter Verwendung des Add-SPSolution Befehls die Datei dem sogenannten Lösungsspeichers hinzugefügt werden. Mittels Install-SPSolution kann das Package unter Angabe der URL der Webseitensammlung letztendlich installiert werden. Der Umweg über den Lösungsspeicher wird gemacht, da die Erweiterungen eventuell später auch für andere Webseitensammlungen installiert werden soll. >> Add-SPSolution -LiteralPath C:\package.wsp >>Install-SPSolution package.wsp -WebApplication http://srv-sp01.de/web/ Mit den oben aufgeführten Befehlen wird die wsp-Datei dem Lösungsspeicher hinzugefügt und auf der Webseitensammlung unter http://srv-sp01.de/web installiert. 19 Glossar ASP.NET ist ein Framework der Microsoft .NET Plattform und umfasst insbesondere die Erstellung serverseitiger synamicher HTML Webanwendungen. ASP.NET besteht im wesentlichen aus zwei Bereichen. Der Markup Syntax, der die HTML Darstellung übernimm und dem sogenannten Codebehind, der die serverseitge Anwedungslogik abbildet. C# ist eine plattformunabhänige objektorientierte, von Microsoft entwickelte, Programmiersprache und Bestandteil der Microsoft .NET Plattform. Ähnlich wie bei Java oder Adobes ActionScript wird die Plattformunabhänigkeit durch eine separate Laufzeitumgebung realisiert CSS (Cascading Style Sheets) ist eine Sprache zum definieren von Stilvorlagen unteranderem für HTML Dokumente. Idee ist es Inhalt von Aussehen zu trennen. Deployment ist der Vorgang zur Bereitstellung von Software Computer. Meistens wird der Begriff im Zusammenhang mit der Installation auf Servern benutzt. Ein Objektmodell beschreibt in der objektorientierten Softwareentwicklung den Zusammenhang zwischen den beteiligten Objekten. Durch die grafische Darstellung kann dem Entwickler ein schneller Überblick über die vorhanden Funktionen gegeben werden. PHP ist eine serverseitige Skriptsprache zur Erstellung dynamischer Webanwendungen, ähnlich zu ASP.NET SSO (Single-Sign-On) beschreibt eine Technik, die es erlaubt den Benutzer einmalig Anwendungsübergreifend anzumelden. Die Anwendungen reichen die Zugangsdaten untereinander automatisch weiter, um so den Benutzer zu authentifizieren und autorisieren. 20 Liste verwendeter Quellen SharePoint 2010 Produktübersicht http://sharepoint.microsoft.com/en-us/product MSDN Library http://msdn.microsoft.com/en-us/library WebPart Klasse Referenz http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webpartpages.webpart.aspx Packaging and Deployment in SharePoint Foundation, Mai 2010 http://msdn.microsoft.com/en-us/library/ee539979.aspx Microsoft Office SharePoint Server 2007 & Windows SharePoint Services 3.0 Ulrich B. Boddenberg, 2009 Vorlesung Webportale Dr. Philip Rohde, Dipl.-Inform. Patrick Stalljohann CiL - Center for Innovative Learning Technology, RWTH Aachen Magic Quadrant for Horizontal Porals, 24. Oktober 2011 http://www.gartner.com/technology/reprints.do?id=1-17RRLXF&ct=111025&st=sb Microsoft SharePoint 2010 - Funktionen http://sharepoint.microsoft.com/de-de/product/capabilities/Seiten/default.aspx Web part, 11. Oktober 2011 http://en.wikipedia.org/w/index.php?title=Web_part&oldid=455022898 21