Der dritte Teil unserer Mini-Serie zu den SharePoint-2010-Listen widmet sich den Neuerungen, die vor allem für Entwickler von Interesse sind. Zu den beiden vorangegangenen Teilen geht’s hier :
- Teil 1: Large Lists and Throttling, Multi Column Indexes, Unique Fields
- Teil 2: Inline Editing, Projected Fields, Referential Integrity, List Validation
- Teil 3: Relational Joins, XSL Support, External Lists
Relational Joins
Für Datenabfragen aus mehreren Listen bietet SharePoint 2010 nun eine wesentlich bessere Unterstützung für Joins. Diese lassen sich über das SharePoint-API, LINQ to SharePoint, CAML oder mit SharePoint Designer 2010 festlegen. Um über das API mit Joins arbeiten zu können, wurde die SPQuery-Klasse um das Property Joins erweitert. Dabei wird die Verknüpfungen in CAML-Syntax formuliert und anschliessend dem Joins-Property zugewiesen (analog wie beim Query-Property von SPQuery).
Noch eleganter lassen sich Joins via LINQ to SharePoint bewerkstelligen. Abfragen auf Listen können dabei direkt in C#- oder VB-Code mit LINQ in SQL-ähnlicher Syntax und mit Unterstützung von IntelliSense formuliert werden. LINQ to SharePoint generiert dann im Hintergrund den benötigten CAML-Code. Seit Beta 2 sind Joins via LINQ to SharePoint nur noch mit Einschränkungen (nur noch implizite Joins werden unterstützt) nutzbar, da Microsoft keine Ausführung von sogenannten ineffizienten Queries (das AllowInefficientQueries-Property der DataContext-Klasse wurde auf internal gesetzt) mehr erlaubt.
XSL Support
Entwickler, die schon mal eigene Views basierend auf CAML (via schema.xml) erstellt haben, kennen die Problematik: Selbst für eine einfache Liste werden mehrere 1000 Zeilen CAML-Code benötigt. Neu kommt in Listenansichten XSL (Extensible Stylesheet Language) zum Einsatz, mit der sich XML-Daten in eine andere Syntax (z.B. HTML) transformieren lässt. Dank XSL wird für eine View wesentlich weniger Code benötigt. Die Standard-Ansicht einer Custom List benötigt beispielsweise gerade mal noch rund 160 Zeilen CAML-Code (siehe Bild).
Die eigentliche Formatierung der Liste wird mit Hilfe einer ausgelagerten XSL-Datei (main.xsl) durchgeführt, die aus der CAML-Definition der Listenansicht referenziert wird. Die main.xls-Datei besteht wiederum aus einer Reihe von verschachtelten XSL-Files. Natürlich kann man hier auch eigene XSL-Stylesheets verwenden, um den Look der Listenansichten komplett dem eigenen Gusto anzupassen. Im Vergleich mit SharePoint 2007 erhalten Entwickler nun wesentlich bessere Möglichkeiten, um in das HTML-Rendering der Listenansichten einzugreifen.
XSLT List View WebPart
Das bisherigen List View WebPart (LVWP), das für die Darstellung von Listeninhalten auf WebPart-Seiten zuständig ist, wird in SharePoint 2010 übrigens ebenfalls durch ein XSL-basierendes WebPart (XSLT List View WebPart) abgelöst. SharePoint Designer 2010 bietet entsprechende Werkzeuge, um die WebPart-Ansichten anpassen zu können.
External Lists
Zu den interessantesten Neuerung in SharePoint 2010 gehören mit Sicherheit die Business Connectivity Services (BCS), über die sich Daten von externen Systemen (Datenbankserver, ERP, CRM etc.) einbinden lassen. Im Gegensatz zur Vorgängertechnologie in SharePoint 2007, dem Business Data Catalog (BDC), können Daten via BCS nun auch in angedockte Datenquellen zurückgeschrieben und sogar im Offline-Betrieb (mit SharePoint Workspace) genutzt werden.
Die angebundenen Daten werden in Form von sogenannten External Lists eingebunden, die sich jetzt weitgehend wie native SharePoint-Listen verhalten. Der Endbenutzer merkt dabei kaum noch, dass er mit Daten arbeitet, die extern gespeichert sind. Erwähnenswert in diesem Zusammenhang ist noch, dass sich External Lists auch über die in Teil 2 beschriebenen Projected Fields in die Ansicht einer anderen Liste einbinden lassen.
2 Kommentare.
[…] Teil 3: Relational Joins, XSL Support, External Lists […]
[…] Teil 3: Relational Joins, XSL Support, External Lists […]