© StonePictures/Shutterstock.com
Teil 4: Daten aus der Cloud und Daten vom Server (SQL) für LoB-Apps

Daten, Daten und nochmals Daten


Daten sind der Stoff aus denen Applikationen gemacht sind. Das ist bei Apps für die Universelle Windows Plattform (UWP) nicht anders. Ganz im Sinne von Mobile First ist das Hauptszenario, die Daten von einem cloudbasierten Backend abzurufen. Das Anwendungsfeld für UWP-Apps hat sich jedoch verändert: Mittlerweile nutzen wir sie auch, um mit Unternehmensdatenbanken zu arbeiten. Dieser Artikel unternimmt einen Streifzug durch die Möglichkeiten der Datenwelt für die UWP.

Ohne Zugriff auf Daten kommt kaum eine Software aus. Das trifft auch auf Apps für die Universelle Windows Plattform (UWP) zu. Zu Beginn der Einführung der UWP stellte sich das Thema zunächst in einer anderen Form dar: UWP-Apps waren ursprünglich für mobile Geräte und damit für andere Nutzungsszenarien ausgelegt als klassische Windows-Applikationen. Mit einem Smartphone greift man i. d. R. nicht direkt auf einen SQL-basierten Unternehmensserver zu. Vielmehr werden die Daten über das Internet von entfernten Clouddiensten bezogen, ggf. werden über Konnektoren weitere Daten aus der Unternehmenswelt angebunden. Mit dem Aus von Windows 10 Mobile haben sich die Umstände geändert. Der Einsatz der UWP zielt heute teilweise auf ein Ersetzen klassischer Windows-Applikationen. Statt mobiler Geräte werden ebenso Notebooks und Desktoprechner adressiert. Unternehmensanwendungen für Windows benötigen sehr häufig einen Zugriff auf größere Datenmengen, die üblicherweise auf SQL-basierten Datenbankservern gespeichert sind. Mit dem Update auf Windows 10 Anniversary Edition wurde auch für die UWP die Möglichkeit eröffnet, auf klassische Datenbanken zuzugreifen.

In diesem Teil der Artikelserie über UWP-Apps beschäftigen wir uns mit den Möglichkeiten der Datenversorgung. Dabei soll es um die folgenden Problemstellungen gehen:

  • Speicherung und Zugriff auf lokale Daten, konkret auf die SQLite-Datenbank

  • Möglichkeiten des Zugriffs auf eine SQL-Serverdatenbank

  • Zugriff auf eine dokumentenbasierte NoSQL-Datenbank, konkret auf MongoDB

  • Zusammenarbeit mit anderen Datenbanken, zum Beispiel MySQL

  • Anbindung der App an das Azure Portal und Nutzung der dort gebotenen Optionen zur Datenspeicherung

  • Nutzung von Web Services über Netzwerkzugriffe, d. h. RESTful Services

Wenn Sie nicht alltäglich mit Datenbanken hantieren, gibt Ihnen der Textkasten „Grundbegriffe aus der Datenbankwelt“ einen kleinen Überblick über die theoretischen Basics.

Es ist unbedingt zu beachten: Die nachfolgend dargestellten Optionen zum Zugriff auf die Daten sind rein technischer Natur. Konzeptionell ist dagegen die Frage danach, welche Form der Datenspeicherung sinnvoll ist. Dazu müssen Sie folgende Sachverhalte klären: Sollen die Daten in einer relationalen Datenbank ableget werden? Handelt es sich um einen klassischen Datenbankserver oder wird dieser als PaaS-Dienst in der Cloud gehostet? Können Daten über Web Services (REST) aus der Cloud abgerufen werden? Erst dann kann es um die technische Umsetzung gehen. Beginnen wir mit den Möglichkeiten der Datenspeicherung auf dem Client.

Datenspeicherung lokal – Nutzung der SQLite-Datenbank

SQLite ist eine kleinere, eigenständige und zuverlässige Datenbank. Die zugehörigen Bibliotheken werden in der Programmiersprache C geschrieben. Die Interaktion zwischen den Anwendungsprogrammen und der Datenbank erfolgt auf der Basis eines SQL-Dialekts. SQLite ist eine eingebettete Datenbank und wird direkt auf den Geräten, oft mobile Devices, verwendet. Das SQLite-Dateiformat ist stabil, plattformübergreifend und abwärtskompatibel. Die Entwickler der Datenbank haben sich verpflichtet, dieses Format bis mindestens 2050 beizubehalten. Der Code der Datenbank ist Public Domain und steht zur freien Nutzung bereit. Die Nutzung von SQLite in UWP-Apps bietet die folgenden Vorteile:

  • Es ist kein unabhängiger Datenbankserver notwendig, d. h. Client und Server (Datenbank) laufen im gleichen Prozess.

  • SQLite steht zur freien Nutzung zur Verfügung. Mit der Einbindung sind keine Einschränkungen bezüglich der Lizenzbestimmungen für die UWP-App verbunden.

  • Da SQLite plattformübergreifend funktioniert, kann es auch für einen sehr einfachen Datenaustausch verwendet werden.

Um eine SQLite-Datenbank aus der UWP zu verwenden, muss man eine entsprechende Abstraktionsschicht einsetzen. Dazu gibt es grundsätzlich zwei Optionen:

  1. Einsatz des Entity Framework Core

  2. Nutzung der Open-Source SQLite-Bibliothek von Microsoft [1]

Das Entity Framework (EF) Core ist eine objektrelationale Zuordnung, die über domänenspezifische Objekte die Verwendung relationaler Datenbanken ermöglicht. Wenn man EF Core bereits für die Arbeit mit Daten in anderen Apps einsetzt, kann man den zugehörigen Code nach Anpassungen in eine App für die UWP migrieren. Zum Einsatz und zur Konfiguration des EF Core wurde im Windows Developer Magazin schon an verschiedenen Stellen berichtet. Daher beschränken sich die folgenden Darstellungen auf grundlegende Ausführungen. Voraussetzungen für die Anwendung von EF Core sind Windows 10 Fall Creators Update (Build 16299), Visual Studio 2017 (Version 15.7) mit einem Workload für die UWP-Entwicklung und NET Core 2.1 SDK.

Abbildung 1 zeigt die Architektur zur Nutzung der SQLite Datenbank aus einer UWP-App mit Hilfe des Entity Framework Core.

krypczyk_uwp4_1.tif_fmt1.jpgAbb. 1: Architektur einer UWP-App mit Datenzugriff über EF Core [2]
Install-Package EntityFramework.SQLite -Pre Install-Package EntityFramework.Commands -Pre

Statt der Installation über die Kommandozeile kann man auch den NuGet Package Manager verwenden und die ent...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang