Werkstattbericht – Datenmodell und MVVM

Bereits vor der Sommerpause haben wir an verschiedenen Stellen davon berichtet, dass wir umfangreiche Änderungen an einigen Hintergrundkomponenten von MeisterGeister vornehmen und damit auch immer wieder Verzögerungen bei der Weiterentwicklung einiger Tools entschuldigt.

Nun, daber was sind diese ominösen „Hintergrundarbeiten“ eigentlich? Und was habt ihr Nutzer überhaupt davon? Diese Fragen wollen wir in diesem Blog-Artikel klären…

MeisterGeister hat in den vergangenen 2 Jahren eine enorme Entwicklung erlebt: Die Anforderungen sind stark gewachsen und vor allem hat sich ein beachtlich umfangreiches Entwicklerteam entwickelt. Diese Veränderungen wirken natürlich bis in den Quellcode und den Aufbau der Sofware hinein… Nun, vereinfacht gesagt: Das was mit einem Entwickler gut funktioniert, ist bei fünf Entwicklern einfach nicht mehr praktikabel! Frühere Architekturentscheidungen sind inzwischen unpraktisch geworden und bremsen die Innovation im MeisterGeister-Projekt.
Aus diesem Grund haben wir uns vor einiger Zeit entschieden, den umfangreichen Schritt zu tun und diese alten Strukturen hinter uns zu lassen und einige neue Datenmodelle und Architekturmuster einzuführen. Das was uns jetzt einiges an Arbeit macht, wird uns später sehr viel bringen und euch natürlich auch ;-).

Aber was habt ihr nun davon? Also zunächst werdet ihr nicht viel von diesen Änderungen sehen, da sie sich hauptsichlich „unter der Oberfläche“ abspielen und wir sehr darauf achten, alle bisherigen Funktionen auf die neuen Strukturen zu überführen. Der große Vorteil wird darin bestehen, dass wir endlich bei einigen Projekten ordentlich Gas geben können und wir deutlich schneller und einfacher die bestehenden Tools weiterentwickeln können und neue innovative Tools angehen können. Derzeit bremsen uns verkrustete Programmstrukturen noch sehr stark, was bald nicht mehr der Fall sein wird. Wir werden dann zum Beispiel endlich lange erwartete Verbesserungen im Kampf-Tool umsetzen können… 🙂

Während dieser Umbauarbeiten werden wir aber auch einige kleinere Verbesserungen sogleich umsetzen, von denen ihr auch direkt etwas habt: Einige Darstellungen werden verbessert, Bedienstrukturen vereinfacht und vereinheitlicht, Designs vereinheitlicht und wir versuchen die Performance zu optimieren. Ganz besonders betroffen von diesen Arbeiten ist die gesamte Helden-Verwaltung. Diese bekommt „unter der Haube“ quasi einen komplett neuen Motor! 😉 Aber auch das Proben-Tool und das Kampf-Tool sind nicht unwesentlich von den Umbauarbeiten betroffen.

Exkurs für technisch Interessierte

Für all jene unter euch, die sich für die technischen Details interessieren, wollen wir an dieser Stelle eure Neugier gerne befriedigen :-). Alle anderen dürfen diesen Absatz gerne überspringen…
Eine wichtige Änderung, die wir vornehmen, ist die klarere Trennung der Architekturebenen. Dabei folgen wir dem Entwurfsmuster MVVM (Model View ViewModel). Dieses Muster basiert auf dem Model View Controller (MVC) Muster und erweitert es um einige Spezialitäten für WPF. Diese Muster sehen eine klare Trennung zwischen den verschiedenen Programmebenen vor: Die Benutzeroberfläche muss z.B. klar von der Programmlogik getrennt sein. Aus historischen Gründen besteht der MeisterGeister Code zu großen Teilen aus stark verzahnten Komponenten, mit viel CodeBehind-Logik. Die neue Architektur ist viel flexibler und robuster und einfacher zu warten und zu erweitern.
Die zweite große Umstellung besteht in unserem Datenmodell: Ursprünglich wurde die MeisterGeister-Datenbank mittels DataSet abgebildet. Dieses Datenmodell ist allerdings in einigen Punkten sehr unpraktisch und durch die gewachsenen Strukturen wurden wir dadurch stark behindert. Deshalb stellen wir das gesamte Datenmodell auf das Entity Data Model um. Anders als beim DataSet, werden beim EE-Model die einzelnen Datenbankeinträge nicht als Tabellenzeile dargestellt, sondern als einzelne Objekte. Die Handhabung dieses Models ist zwar etwas komplizierter, aber wir haben dadurch viele Vorteile.
Im Rahmen dieser Umbauarbeiten setzen wir außerdem einige sehr hilfreiche Konzepte aus dem Bereich der .NET- und WPF-Entwicklung ein, die vieles vereinfachen, darunter DataBinding und LINQ.
Diese Daten- und Architekturmodelle existieren bereits seit einigen MeisterGeister-Versionen parallel. Zur nächsten Version (1.6) wollen wir dann vollständig auf die neuen Modelle umgestellt haben!

Den Fortschritt der Arbeiten könnt ihr in unserem Forum verfolgen.

So, wir hoffen, dass wir mit diesem Artikel etwas Licht ins Dunkel bringen konnten?! Wir arbeiten bereist mit Hochdruck an der kommenden Version und wir freuen uns schon darauf, sie euch präsentieren zu können. Wir hoffen, dass es in ein paar Wochen soweit sein wird… Bis dahin: Bleibt uns treu! 😉

Eure Meistergeister

2 Gedanken zu „Werkstattbericht – Datenmodell und MVVM

  1. Pingback: Neue Version 2.0.0 erschienen | DSA MeisterGeister

  2. Pingback: Fünf Jahre MeisterGeister | DSA MeisterGeister

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload CAPTCHA.