Architektur einer Windows Store App am Beispiel von SDX WorkTime Pro

14. Oktober 2013

div class=”articleAbstract”>

Vor dem anstehenden Release von SDX WorkTime Pro im Windows Store beschreibt dieser Artikel die zugrundeliegende Architektur der Windows Store App.

SDX WorkTime Pro ist eine App für Windows 8 zur Zeiterfassung mit Anbindung an Microsoft Dynamic CRM oder als Offline-Version mit lokaler Datenhaltung. Die CRM-Version wird auch von der SDX intern für die Erfassung von Arbeits- und Leistungszeiten verwendet. Die Offline-Version bietet sich zum Beispiel für Freelancer an.

Die Zeiten werden über ein individuelles UI-Design entsprechend den Windows 8 Design Guidelines erfasst. Die angebotene Funktionalität umfasst unter anderem:

  • Erfassen von Zeiten über Vorlagen bzw. direkt mittels eines Kalenders
  • Verwalten von Tasks (nur in der Offline-Version)
  • CSV-Export zur Auswertung erfasster Zeiten

Die folgende Abbildung zeigt den Startbildschirm der Anwendung:

wtpro

Anforderungen an die Architektur

Aufgrund der angestrebten Funktionalität für die Windows Store App und der technischen Machbarkeitsstudie im Vorfeld des Projekts ergeben sich folgende Anforderungen an die Architektur der Windows Store App:

  • Eine Abstraktion der Datenhaltung ist dringend notwendig, um zwischen dem Zugriff auf eine Microsoft Dynamics CRM-Instanz und einer lokalen Datenhaltung wechseln zu können.
  • Aufgrund der sehr eingeschränkten OData Schnittstelle für Windows Store Apps entstehen deutliche Performanceprobleme bei den Abfragen gegen das Microsoft Dynamics CRM-System. Deshalb ist ein Caching der Daten in der Windows Store App unabdingbar.
  • Da sowohl in Windows 8 als auch in Windows 8.1 kein durchgängiges Konzept für die Eingabevalidierung von Windows Store Apps zur Verfügung stellt, soll hierfür die selbstentwickelte WinRT XAML Validation Bibliothek zum Einsatz kommen (der zugehörige dotnetpro-Artikel ist kostenlos verfügbar).

Systemarchitektur von WorkTime Pro

Die folgende Abbildung beschreibt die Systemumgebung, in der sich die Windows Store App befindet:

Systemarchitektur

In der CRM-Variante greift die Windows Store App über die WCF Data Services mit OData auf eine Microsoft Dynamics CRM-Instanz zu. Unabhängig davon gibt es wie oben dargestellt noch eine Weblösung. Hierbei erfolgt der Zugriff auf das CRM-System mit SOAP über das Microsoft Dynamics CRM 2011 SDK, welches für Windows Store Apps leider noch nicht zur Verfügung steht.

Anwendungsarchitektur von WorkTime Pro

Die Anwendungsarchitektur von WorkTime Pro ist als klassische Schichtenarchitektur konzipiert und gliedert sich in drei grundlegende Schichten mit jeweils spezifischen Aufgaben:

  • Presentation Layer
  • Presentation Logic
  • Data Access Layer

Die folgende Abbildung gibt einen Überblick über die Anwendungsarchitektur:

anwendungsarchitektur

Presentation Layer:
Der Presentation Layer beinhaltet die eigentlichen Views und die zugehörige Abstraktion der Views in Form von View Models. Diese View Models werden für jeden View neu instanziiert, d.h. es findet kein übergreifendes Caching von View Models statt.

Presentation Logic:
Die Presentation Logic besteht aus mehreren Teilkomponenten:

  • Das Presentation Data Model stellt das Anzeige-Datenmodell dar, auf dem die Presentation Logic und die Presentation Layer agieren. Es beinhaltet die grundlegenden Daten aus dem Base Data Model, aber auch berechnete bzw. aggregierte Werte.
  • Die Presentation Services stellen zustandslose Services mit spezifischen Methoden zum Aufruf durch die View Models dar. Sie sind auch verantwortlich für die Eingabevalidierung durch Aufruf separater Validatoren.
  • Die Repositories koordinieren zustandslos den Zugriff auf die Daten und übernehmen die Verwaltungslogik für die eigentlichen Caches. Hierzu sichern sie die Konsistenz der vorgehaltenen Daten in den Caches, wenn der Benutzer Daten ändert oder neue Daten von den Data Services abgerufen werden. Wenn Daten noch nicht in den Caches liegen oder „Realdaten“ angefordert werden, greifen die Repositories auf die Data Services zu. Zusätzlich mappen sie mit Hilfe der Data Mappers das physische Datenmodell (Base Data Model) auf die Anzeigedaten (Presentation Data Model).

Data Access Layer:
Der Data Access Layer stellt die plattformspezifische Realisierung der CRUD-Methoden dar. Für die CRM-Version wird über OData auf Microsoft Dynamics CRM zugegriffen. Für die lokale Version wird SQLite als Datenspeicher verwendet.

Fazit

Vom prinzipiellen Aufbau her unterscheidet sich die die Architektur einer Windows Store App nicht grundlegend von der Architektur einer typischen WPF- oder Silverlight-Anwendung. Vielmehr nehmen die jeweiligen Anforderungen an die App  Einfluss auf die zugrundeliegende Architektur.