Integrationsoptionen von SharePoint 2010 und Microsoft Azure (Teil 3)
Kommentare

Beispielszenario
Zu guter Letzt soll nun ein komplettes Beispiel zeigen, wie einfach die Office-365-Dienste oder auch ein On-Premise SharePoint Server mit einem externen System integriert werden kann.

Beispielszenario

Zu guter Letzt soll nun ein komplettes Beispiel zeigen, wie einfach die Office-365-Dienste oder auch ein On-Premise SharePoint Server mit einem externen System integriert werden kann. Als Beispiel dient uns eine Kundendatenbank. Sie stellt das externe System dar. Die Datenbank muss ausfallsicher sein, was bei Einsatz eines On-Premise SQL Server Cluster erhebliche Lizenz- und Wartungskosten bedeuten würde. Die Datenbank wird also auf SQL Azure gehosted. SharePoint ist On-Premise im Einsatz, aber auch als SharePoint Online. Also bleibt zum Zugriff nur die Möglichkeit, via JavaScript (wie in Listing 1) zuzugreifen (die einfache Variante) oder via Business Connectivity Services, da im Sinne einer Erweiterbarkeit darauf geachtet werden muss, dass die Lösung nicht nur am „erwachsenen“ Inhouse-SharePoint-Server läuft, sondern auch am SharePoint-Online-Account zukünftig eingesetzt werden kann.

Erster Schritt ist die Erstellung eines SQL-Azure-Datenbankservers und einer entsprechenden Datenbank. Dies geschieht komfortabel im Managementportal von Azure [4] unter DATABASE. Hier kann zu einer bestehenden Subscription ein neuer Datenbankserver erstellt und komplett verwaltet werden (Abb. 4). Die Erstellung des Servers und der Datenbanken sind selbsterklärend und mit wenigen Klicks getan. Sobald eine Datenbank erzeugt wurde, zeigt Azure in den PROPERTIES (rechts) den URL des Servers sowie den ConnectionString – damit ist man voll ausgestattet und kann auf den SQL Server zugreifen.

Nächster Schritt ist es, die SQL-Azure-Datenbank via OData-REST-Schnittstelle verfügbar zu machen, um direkt via HTTP/HTTPS Request und entsprechenden URLs auf die Daten zuzugreifen. Bis vor Kurzem gab es den SQL Azure OData Service noch direkt über die SQL Azure Labs. Leider wurde dieser (Lab-)Dienst eingestellt. Um eine SQL-Azure-Datenbank via Web Service zugreifbar zu machen, sind nun einige manuelle Schritte erforderlich. Im Wesentlichen wird der Visual Studio 2010 Entity Data Model Designer verwendet, um einen WCF Service zu einem bestehenden Datenmodell zu erzeugen. Eine genaue Anleitung findet sich unter [5].

Alternativ kann man natürlich auch selbst einen „normalen“ eigenen WCF Service entwickeln, der dann auf SQL Azure zugreift.

Abb. 4: SQL-Azure-Datenbank(server) erstellen
Abb. 4: SQL-Azure-Datenbank(server) erstellen

Da der OData-Dienst, wie erwähnt, nicht mehr vorhanden ist, widmen wir uns der Erstellung eines WCF Web Service, der auf SQL Azure zugreift. Der Service selbst wird mit dem Azure SDK und der Projektvorlage WEBSERVICE erstellt. Eine genauere Einführung in die Erstellung des Azure WCF-Service findet sich unter [6].

Ist der WCF-Service soweit implementiert und vorhanden, kann er, zusätzlich zum Deployment in Azure, auch lokal mittels F5 gestartet werden. Dies installiert und initialisiert das Azure Debugging Environment – eine Art Emulator für Windows Azure, der Azure Compute und Azure Storage Emulatoren bereitstellt, um Web Services und Webapplikationen, die in die Azure Cloud ausgerollt werden sollen, lokal zu debuggen (Abb. 5). Kommt es beim ersten Start des Emulators zu einer Fehlermeldung, liegt das meist daran, dass die Umgebung eine lokale Instanz von SQL Express sucht. Um die Umgebung an die bestehende Konfiguration der Entwicklermaschine anzupassen, wird der Storage Emulator mit dem Kommandozeilentool DSInit.exe konfiguriert, unter C:Program FilesWindows Azure Emulatoremulatordevstore zu finden.

Abb. 5: WCF-Service im lokalen Azure-Emulator
Abb. 5: WCF-Service im lokalen Azure-Emulator

Listing 1 zeigt, wie der Service direkt aus JavaScript konsumiert wird – im Rahmen eines Content Editor Webparts. Alternativ dazu kann mittels SharePoint Designer der Web Service auch über die Business Connectivity Services eingebunden werden (Abb. 6). Das ist aus architektonischer Sicht sicher die bessere Variante. Zu guter Letzt kann natürlich mit Visual Studio 2010 auch ein BCS Model erstellt und programmatisch über die BCS auf den Dienst zugegriffen werden, um komplexe Szenarien zu unterstützen.

Abb. 6: WCF-Service mit SharePoint Designer einbinden
Abb. 6: WCF-Service mit SharePoint Designer einbinden

Fazit

Die Cloud-Dienste von Microsoft bieten eine Vielzahl an Möglichkeiten, SharePoint 2010 in bestehende Systeme kostengünstig zu integrieren, oder auch System ganz oder teilweise in die Cloud auszulagern. SharePoint wiederum bietet einfache Mechanismen, um No-Code-Integrationslösungen zu realisieren, aber auch ein mächtiges Framework – die Business Connectivity Services – um allen komplexen Szenarien Herr zu werden.

Andreas Aschauer studierte Software Engineering an der TU Wien. Neben dem Studium und danach war er als Softwareentwickler und Consultant bereits bei verschiedenen internationalen Konzernen tätig, wo er seit Version 1.0 des .NET Frameworks Desktop- und Webanwendungen entwickelte. Seit 2009 ist er Development Trainer mit Schwerpunkt ASP.NET und Microsoft SharePoint. Als Geschäftsführer und Inhaber der Firma CodeForce GmbH führt er, gemeinsam mit Mario Meir-Huber, Projekte im Microsoft-SharePoint-Umfeld durch, sowohl Beratung als auch Entwicklung. Als aktiver Blogger (sharepointtrench.com) sowie als Sprecher auf internationalen Konferenzen vermittelt er SharePoint-Wissen und auch klassische Software-Engineering-Themen.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -