MatchPoint (Teil 2): Funktionen und Stärken in der Lösungsentwicklung

In diesem Artikel beschäftigen wir uns mit den Funktionen aus dem SharePoint Framework MatchPoint und sich den daraus ergebenden Stärken und Vorteilen in der Lösungsentwicklung.

Beginnen wir mit möglichen Einsatzszenarien des Frameworks (kleiner Auszug):

  • Dynamische Intranets, die auf hohe Personalisierungsfunktionen setzen. Personalisierung kann hier nicht nur im Kontext eines einzelnen Benutzers verstanden werden, sondern auch Länder-, Standort-, Abteilungsspezifische Sichten auf die Inhalte im Intranet
  • Composite Applications: hierbei handelt es sich um konfigurierbare Szenarien, die unter normalen Umständen oft in Entwicklungsarbeit ausarten. Folgende Beispiele sollen dies verdeutlichen:
    • Newsapplikation: eine der häufigsten Anwendungen in einem Intranet. Heute reicht es aber nicht mehr, dass ein Newsbereich mit entsprechenden Seiten vorhanden ist. News sollen kategorisiert, verschiedene Darstellungsformen (z.b. Highlight-Artikel; Top-Artikel; allgemeiner Artikel) aufweisen aber auch zu verschiedenen Unternehmensbereichen/Standorten zugeteilt werden können. Selbstverständlich soll dann dem Benutzer beim Einstieg seine News aus seinem Bereich dargestellt werden. Auf einer Standortseite sollen nur die Standort-News dargestellt werden. Und dann gehören ein News-Archiv und eine News-Suche natürlich auch dazu.
    • Absenzenverwaltung: Beantragung von Absenzen (Ferien, Militär, Ausbildung…) kann mittels einfachem Formular erfolgen, über einen konfigurierten Workflow wird die Genehmigung gesteuert und alle Absenzen können schlussendlich in einer Kalenderübersicht dargestellt werden (dabei besteht die Möglichkeit spezifische Ansichten für Teams, Gruppen, Projektteams etc. zu konfigurieren)
    • Job- und Bewerberverwaltung: Verwaltung der offenen Stellen im Unternehmen sowie der effektiven Bewerbungen. Dabei kann über Konfigurationen ein Matching erfolgen, wie gut ein bestimmter Bewerber die geforderten Qualifikationen für einen Job erfüllt.
  • Dossierverwaltung: sobald wiederkehrende Strukturen/Ablagen benötigt werden, die standardmässig genutzt werden sollen, dann macht es Sinn, diese als Dossiers zu organisieren und dem Benutzer das Anlegen solcher Dossiers zu ermöglichen. Beispiele von Dossiers: Projektdossier, Falldossier, Patientendossier, Kampagnendossier, Vorhabendossier etc.
  • Intelligente Ablagesysteme: bei klassischen DMS ist der Benutzer gefordert, viele manuelle Schritte vornehmen zu müssen (z.B. Einpflegen der Metadaten). Mit intelligenten Ablagesystemen kann dies stark reduziert werden: automatische Vergabe, Vererbung und Korrektur von Metadaten stellen eine hohe Qualität der Daten sicher; die Metadatenstruktur hilft zudem, die benötigten Dokumente direkt zu finden aber auch die Ablageorte entsprechend zu lokalisieren. Metadaten werden dabei auch durch die Einbindung externer Systeme automatisch aktuell gehalten.

Betrachtet man die oben erwähnten Beispiele und fragt einen SharePoint-Entwickler, wie dies am besten realisiert werden kann, dann habe ich öfters eine klare Antwort erhalten: wir müssen dies programmieren. Ach ja? Leider hat sich dies mehrheitlich bewahrheitet, weil sich SharePoint auf der Konfigurationsebene schwer tut. Gerade dann, wenn die eigenen Element und Funktionen so intelligent verknüpft werden sollen, dass daraus wirklich eine Applikation entsteht. Diese Verknüpfungen können oft nur programmatisch und mit entsprechendem Aufwand gelöst werden.

Und wo hilft nun MatchPoint in diesem Bereich, was SharePoint alleine nicht kann? Um dies zu beantworten, betrachten wir als erstes die Architektur von MatchPoint:

2950-matchpoint_sharepoint_architecture.png

Naja, sind wir ehrlich: eine solche Grafik bietet auch Microsoft und das klingt da genau gleich gut. Der grosse Unterschied bei MatchPoint ist, dass die im Framework (Service Layer/WebParts) enthaltenen Elemente darauf ausgelegt sind, miteinander kombiniert zu werden. Zudem baut die Architektur von MatchPoint auf der von SharePoint bereitgestellten Service orientierten Architektur auf. Dies stellt sicher, dass ein homogenes und hochgradig konfigurierbares System bereitgestellt wird.

Für den Entwickler sind im MatchPoint-Framework deshalb die folgenden Punkte besonders interessant. Diese stellen die besonderen Stärken des Frameworks dar (die Liste ist nicht abschliessend):

  • Configuration Framework: zentrales Element von MatchPoint. Das Konfigurations-Framework erlaubt über XML-Konfigurationen die entsprechenden Lösungen zu realisieren. Die XML-Konfigurationen können dabei dank dem MatchPoint-Editor direkt in der SharePoint-Oberfläche vorgenommen werden (diese werden dabei gegen ihr Schema validiert).
  • Connection Framework: Dient dazu, die einzelnen WebParts und Funktionen innerhalb des Frameworks miteinander zu vernetzen. So kann eine Aktion in einem bestimmten WebPart zu einer weiteren Aktion in einem anderen WebPart führen. Dies geht weit über das klassische DataProviding von SharePoint-WebParts hinaus!
  • Expression Engine: mit der Expression-Engine lassen sich entsprechende Logiken konfigurieren und auf bestimmte Gegebenheiten reagieren (z.B. zur Personalisierung). Dies ist besonders interessant in Kombination mit dem Configuration und Connection Framework.
  • Data Providers: Anbindung von Daten aus Drittsystemen. Diese können zum Import von Metadaten dienen (z.B. Kundendaten aus SAP) oder für die Inhaltsabfrage/-aggregation durch die einzelnen MatchPoint-WebParts. Auch diese basieren auf einfachen XML-Konfigurationen.
  • Tagging Infrastructure: Der Term Store von SharePoint 2010 bietet eine Basis für die Vergabe von Metadaten. MatchPoint geht hier einen Schritt weiter, in dem es ein dynamisches Modell erlaubt, das sich um automatisches Tagging, Vererbung wie auch um Anpassungen bei Inhaltsverschiebungen etc. kümmert. Dabei können mit den DataProviders die Metadaten automatisiert eingelesen und aktualisiert werden (ein solcher Mechanismus bietet der Termstore OOB nicht an).
  • Provisioning Templates: Mittels einfachster Konfigurationen können Templates definiert werden, die Sites/Workspaces/Dossiers anlegen und mit entsprechenden Inhalten/Metadaten provisionieren. Vgl. unten Site Creator WebPart
  • Role Management: Berechtigungsvergabe innerhalb eines Workspaces – dies wird insbesondere in kollaborativen Szenarien verwendet. Ein Projektleiter kann so sehr einfach definieren wer im Workspace mitarbeitet und das Role Management kümmert sich automatisch um die Berechtigungen (Benutzer muss die komplexen Strukturen von SharePoint nicht kennen).
  • Grenzen sprengen: das ist zwar nicht wirklich ein Funktion, aber als SharePoint-Entwickler stösst man öfters an gewisse Grenzen von SharePoint. Eine zentrale Grenze ist die Site Collection: als Beispiel ist die Frage im Vordergrund, wie Aggregationen über mehrere Site Collections gelöst werden. Mit SharePoint-Standardmitteln: Programmieren. Mit MatchPoint: Die Grenze existiert gar nicht. Wie sich der Content auf Site Collections etc. verteilt, spielt hier keine Rolle. Dank MatchPoint hat man über die entsprechende Konfiguration auf sämtliche Inhalte in einer Farm den einfachsten Zugriff.

Nebst den grundsätzlichen Funktionen des Framework wie sie oben beschrieben sind, bietet das Framework auch ein Set von zehn verschiedenen WebParts an. Diese dienen der Ein-/Ausgabe von Daten an den Endanwender und lassen sich entsprechend über Konfigurationen steuern. Alle MatchPoint-WebParts bauen auf den oben abgebildeten Funktionen auf. D.h. alle verstehen das Configuration Framework, das Connection-Framework, die Expression Engine etc.

Für den Entwickler sind die folgenden WebParts interessant (auch hier ist die Aufzählung nicht abschliessend):

  • Data Grid WebPart: Tabellarische Darstellung von Aggregationen und Suchergebnissen (insbesondere auch über mehrere SiteCollections). Dabei stehen die typischen SharePoint-Funktionen aus Listen/Bibliotheken wie Sortierung und Filterung ergänzend zur Verfügung.
  • Composite WebPart: mit dem Composite-WebPart können Aggregationen / Suchergebnisse speziell gerendert werden. Ein Beispiel: Bildersuche bei der die Ergebnisse als Thumbnails dargestellt werden.
  • Site Creator WebPart: Viele Firmen nehmen den klassischen Weg von SharePoint für die Erstellung einer Site als Zumutung wahr. Es braucht zu viele manuelle Schritte bis ein Space im Sinne des Unternehmens einsetzbar ist. Ursprünglich haben wir selbst in mehreren Projekten spezifische Site-Wizards gebaut, um diesem Problem zu begegnen. Mit dem Site Creator von MatchPoint erübrigt sich dies, weil damit über Konfigurationen die Site-Erstellung angeboten und für den jeweiligen Fall angepasst werden kann. Der Site Creator kümmert sich zudem um automatische Provisionierung der Inhalte und der relevanten Metadaten. Zudem können dabei auch gleich die entsprechenden Benutzer automatisch berechtigt werden. Für den Endanwender geschieht dies somit alles in einem Schritt.
  • Form WebPart: Hiermit kann ein Benutzer bestimmte Angaben erfassen. Diese können z.B. dazu verwendet werden, eine Liste bequem aufgrund von Benutzereingaben zu filtern.
  • Chart WebPart: Darstellung von Informationen in grafischer Form. Dies kann das Resultat von Suchabfragen wie auch Abfragen von anderen Quellen (z.B. SQL-Datenbank; Konfiguration über die DataProviders) sein.
  • Image Tag WebPart: Darstellung von Metadaten mittels grafischer Ausgabe (z.B. wird ein Prozessablauf dargestellt und ein Benutzer kann auf den entsprechenden Schritt klicken).
  • Workflow-Kit: dies ist eine Extension zum MatchPoint-Framework, welches die Konfiguration von Workflows anbietet, die aufgrund der Metadaten gesteuert werden. Somit ist dies eine einfache Art und Weise Status getriebene Workflows zu realisieren (Anmerkung: State Driven Workflows können im SharePoint-Kontext ansonsten nur mit Visual Studio programmiert werden).

Fazit zu MatchPoint und seinen Funktionen

Microsoft hat es leider verschlafen mit SharePoint ein einfaches Konfigurationsframework bereitzustellen, so dass effektiv über einfachste Mittel leistungsstarke Lösungen realisiert werden können. In diese Lücke springt MatchPoint und zeigt auf beeindruckende Weise, wie ein solches Framework wirklich funktionieren kann. Das Potenzial in der Kombination SharePoint und MatchPoint ist enorm. Die üblichen technischen Grenzen – insbesondere auf Site Collection-Basis – werden mit MatchPoint elegant gelöst. Aggregationen, Sichten etc. können über die ganze Farm hinweg erstellt werden. Aufgrund konkreter Beispiele wollen wir dies in den nächsten Artikeln der Serie vertiefen.

Weitere Details zum MatchPoint Framework können Sie der Website des Herstellers entnehmen.

MatchPoint (Teil 1): Entwicklung komplexer SharePoint-Lösungen

Mit diesem Blog-Post beginnen wir eine Serie zum Thema Entwicklung von komplexen SharePoint-Lösungen. Es stellt sich zuerst die Frage: ab wann ist eine SharePoint-Lösung komplex? Nun, leider ist man schneller in diesem Bereich als allgemein angenommen, denn das Produkt selbst ist aufgrund seines Funktionsumfangs und den vielen möglichen Wegen, wie eine Lösung aufgebaut werden kann, komplex genug.

SharePoint sollte als Framework betrachtet werden (es ist keine fixfertig Anwendung wie Microsoft Word das installiert wird und dann ist gut). Es ist ein Baukasten, der viele verschiedene Elemente und Funktionen enthält, mit denen ein Benutzer „arbeiten“ kann. Die Stärke liegt darin, wenn kleinere Teams/Arbeitsgruppen sich komplett selbst organisieren und es zur Zusammenarbeit anwenden. Sobald dies in etwas grösserem Zusammenhang betrachtet werden muss, besteht oft der Drang, dass eine gewisse Vereinheitlichung, Steuerung und auch übergreifende Funktionalitäten anzubieten.

Und hier beginnt die eigentliche Komplexität: das alles muss gut und sauber geplant und konzipiert werden. Und leider sind dank der Hochglanz-Broschüren des Produktes oft die Erwartungshaltungen wesentlich höher, als was dann mit Standardmitteln effektiv möglich ist. Ich habe als Berater schon sehr oft den Satz gehört „ich erwarte aber von einem Produkt wie SharePoint, dass es das einfach standardmässig kann“. Und hier lässt sich meist mit „ja, das geht…. ABER….“ antworten.

Es bleibt die Frage, mit welchen Mitteln baue ich denn überhaupt eine richtig gute SharePoint-Lösung? Diese soll exzellente Personalisierungsmöglichkeiten bieten, hoch dynamisch sein und natürlich völlig unterschiedliche Fragestellungen auf einmal lösen. Folgende Möglichkeiten stehen zur Verfügung:

  • Fokus auf Out-of-the-Box-Mitteln: ja, eine SharePoint-Lösung kann rein auf Basis von OOB-Mitteln realisiert werden. Das kann aber nur dann funktionieren, wenn Sie das Produkt und seine Funktionen so akzeptieren, wie es ist und Ihre Anforderungen sich am Produkt ausrichten. Und dies ist so in der Realität nicht anzutreffen, denn die Funktionen mögen für eine Firma wie Microsoft passen — aber ticken alle Firmen weltweit genau gleich wie Microsoft? Hier ist oft entsprechendes Frustpotential vorherzusehen (auf längere sichtweise)
  • Zusätzliche Eigenentwicklungen: SharePoint ist ein Framework und bietet somit eine weitere klare Stärke: das Teil kann praktisch unendlich mit allen sich erdenklichen Funktionalitäten erweitert werden. Hier steht im Prinzip die gesamte Funktionsfülle von Visual Studio und dem .NET-Framework zur Verfügung. Nachteil dieser Variante sind die hohen Kosten, erhöhte Projektrisiken, höhere Wartungsaufwände, komplexeres Change Management, Upgrade-Fähigkeiten etc.
  • Einsatz von Add-Ons: der Markt für Add-Ons/Erweiterungen zu SharePoint ist massiv am Wachsen. Dies zeigt, dass SharePoint nur Basis-Instrumente anbietet, aber nicht einfach alles damit gelöst werden kann. Betrachten wir die verschiedenen Kategorien von Add-Ons:
    • Ersatz von Standardfunktionen: diese Kategorie von Add-Ons zielt darauf ab, ganze Funktionen SharePoint mit mächtigeren Instrumenten zu ersetzen. Beispiel hierfür sind Workflow-Lösungen, Search-Lösungen, Analytics-Lösungen etc.
    • Erweiterungen mit neuen Funktionen: dies sind oft spezifische WebParts oder ganze Lösungen, die komplett neue Funktionen für SharePoint bereitstellen. Dies sollte jeweils genauer betrachtet werden, bevor ein individuelles WebPart entwickelt wird. Auf der Website „Codeplex“ findet sich eine Vielzahl von Open-Source-WebParts und Funktionen, die dies untermauern.
    • Funktionale-Frameworks: diese gehen weit über einzelne WebParts etc. hinaus. Diese umfassen eine Vielzahl von Funktionen / Möglichkeiten die sich ideal vernetzen und sich mit den Standardfunktionen von SharePoint kombinieren lassen. Ein solches Framework ist MatchPoint.

In unserer Serie wollen wir uns auf das SharePoint-Framework MatchPoint fokussieren und aufzeigen, welche Stärken und Vorteile es bei der Entwicklung komplexer Lösungen bringt.

Die Serie besteht aus den folgenden Artikeln:

Stolperfalle: WebParts auf Wiki-Seiten von SharePoint 2010

Team Sites von SharePoint 2010 haben eine neue Startseite erhalten: diese ist Wiki basiert und ermöglicht so ein einfaches und individuelles anpassen. Diese Startseite wurde als Feature einer Team Site integriert und lässt sich demzufolge einfach über den Feature-Mechanismus deaktivieren (womit dann der Funktionsumfang einer Team Site identisch einer Team Site der Vorgängerversion übereinstimmt).

Auf den Wiki-Seiten lassen sich neu auch direkt WebParts integrieren. Das lässt einem sehr schnell sehr viel Spielraum und es nicht mehr notwendig sich für alle möglichen Varianten Seitentypen auszudenken, die über die notwendigen WebPart-Zonen verfügen. In den Vorgängerversionen von SharePoint konnten WebParts nur in diesen vorgesehenen Zonen platziert werden. Als Endanwender gewinnt man also mehr Flexiblität und im normalen Kollaborationsgebrauch sind wohl weniger individuelle Entwicklungsarbeiten notwendig, da eben die Einschränkung der Zonen in den Wiki-Seiten entfällt.

Vorsicht vor unsichtbaren WebParts
Im Gebrauch dieser neuen Möglichkeiten ist mir nun aber ein Stolperstein aufgefallen, über den über kurz oder lang sicherlich jeder Anwender einmal fallen wird: unsichtbare WebParts. Es gibt einzelnen WebParts, die keine visuelle Darstellung im normalen Modus haben oder wenn sie nicht konfiguriert sind, keine Informationen anzeigen.

Ein Beispiel hierzu: Filter-WebParts. Es gibt in SharePoint verschiedene Filter-WebParts um bestimmte Inhalte auf einer Seite bequem Filter zu können. Diese Filter-WebParts sind sehr mächtig und ermöglichen eine schnelle und einfache Konfiguration solcher Filterungsmöglichkeiten. Standardmässig sind die Filter-WebParts beim Hinzufügen nicht konfiguriert und gleichzeitig so definiert, dass sie im normalen Modus nichts anzeigen. Nur im Edit-Modus sind sie als WebParts zu erkennen und können somit über die WebPart-Eigenschaften konfiguriert werden.

Das Problem beginnt jetzt aber erst: wenn ich eine Wiki-Seite bearbeite, dann bearbeite ich das Element aus einer Seitenbibliothek und nicht die effektive „Team Seite“. Die Filter-WebParts erkennen diesen Edit-Modus nicht und zeigen aus diesem Grund beim Bearbeiten der Wiki-Seite genau dasselbe an, wie wenn ich nichts bearbeite: nämlich nichts. Ich sehe das WebPart, das ich gerade auf die Seite eingefügt habe nicht. Es ist aber existent. Ein Ausschalten des Features „Wiki-Startseite“ beweist dies: wenn ich die Seite dann editiere, sehe ich das WebPart und kann es auch konfigurieren…. Da haben wohl einige Microsoft-Entwickler nicht zu Ende gedacht – fragt sich, wie so etwas eine Beta-Phase überstehen konnte.

1634-FilterUnsichtbar.JPG-thumb-500x379-1629.jpg

Ein Trick hilft: nach dem Einfügen des Filter-WebParts edititieren Sie zuerst ein anderes WebPart auf derselben Seite (z.B. das Listen-WebPart, das Sie filtern wollen). Das setzt die gesamte Site in den höher gelagerten Edit-Modus und plötzlich erscheint das Filter-WebPart wie aus dem Nichts. Nun können Sie auch dieses WebPart über den normalen Weg konfigurieren. Wenn Sie das WebPart einmal konfiguriert haben, dann ist dieses ab sofort auch im einfachen Edit-Modus der Wiki-Seite direkt ansprechbar. Ein etwas kurioser Weg, aber er hilft :-)

Hier die Wiki-Seite im Edit-Modus (WebPart Documents wird bearbeitet):

1635-FilterSichtbar.JPG-thumb-500x401-1630.jpg

Und hier dann die Wiki-Seite im normalen Modus, nachdem dann endlich das Filter-WebPart konfiguriert werden konnte:

1637-FilterSichtbar2.JPG-thumb-500x431-1631.jpg

SharePoint 2010. Schulung @ Microsoft. Namics

Am 4. und 5 März haben 18 Namics Mitarbeiter eine erste intensive Schulung zum neuen SharePoint 2010 Server direkt vor Ort bei Microsoft geniessen können. Damit stellt Namics sicher, dass die Mitarbeiter aus den SharePoint-Teams direkt aus erster Hand geschult und fit für die neue SharePoint-Version gemacht werden.

Thematisch wurden die folgenden Themen behandelt – sei es in Form von theoretischen Blöcken aber auch direkt mit Hands On Labs um das Thema individuell zu vertiefen.

-Introducing the Architectural Changes of SharePoint 2010
-SharePoint 2010 Developer Roadmap
-Visual Studio 2010 Tools for SharePoint 2010
-UI Enhancements
-Document Management
-Client Object Model
-Workflow
-Services Architecture
-Capacity and Performance Planning
-Accessing External Data (BCS)
-Enterprise Content Management
-Extending Search

Es zeigt sich, dass SharePoint 2010 noch mächtiger und umfassender wird und das die Themenbreite so gross ist, dass man sich in den einzelnen Themen noch klarer spezialisieren muss. Dies haben wir bei Namics bereits entsprechend aufgegleist, damit wir auf die künftigen Anforderungen im Rahmen der Projekte idealerweise aufgestellt sind.

An dieser Stelle herzlichen Dank an Microsoft für die exklusive Durchführung dieser Schulung für Namics!

Hier einige Impressionen und ja eines der „Diplome“ :-)

1135-schulung1-thumb-250x333-1134.jpg
1138-schulung2-thumb-250x187-1137.jpg
1141-2010Workshop-thumb-250x343-1140.jpg

Namics an den X.DAYS im März 2010

Am 17. und 18. März findet in Interlaken der nationale Business & ICT Event X.DAYS statt, an dem sich das „Who is Who“ der ICT-Branche einfindet.

Wir freuen uns auf Ihren Besuch an den X.DAYS. Sie finden uns während dieser Zeit an den folgenden Orten:

Ihre Ansprechpartner bei Namics an den X.DAYS sind Mischa Mundwiler und Troy Lüchinger.

Wir freuen uns auf Ihren Besuch an den X.DAYS!