Freigeben über


Kundendatenbank-App-Struktur

Komplexe Branchen-Apps verfügen häufig über viele Seiten und Features und viele Codezeilen. Aus diesem Grund ist es von entscheidender Bedeutung, dass Sie Ihre App um eine vorhersehbare Struktur entwerfen. Es gibt mehrere Anwendungsentwurfsmuster, die für Unternehmens-Apps geeignet sind, aber sie sind alle um das Ziel herum aufgebaut, eine große Anwendung einfacher zu verstehen und zu bearbeiten.

Während das Lernprogramm zur Kundendatenbank eine Einzelseiten-App zur Vereinfachung darstellt, implementiert es das Modell-View-ViewModel (MVVM)-App-Designmuster, um diese Ideen in Aktion zu präsentieren. Wie der Name schon sagt, trennt das MVVM-Entwurfsmuster die Kern-App-Logik in drei Kategorien:

  • Modelle sind die Klassen, die die Daten der Anwendung enthalten.
  • Ansichten sind die Benutzeroberfläche einer beliebigen Seite.
  • ViewModels stellen die Anwendungslogik bereit. Dies kann das Behandeln von Benutzeraktionen aus der Ansicht und/oder das Verwalten von Interaktionen mit den Modellen umfassen.

Obwohl diese App kein perfektes und archetypisches Beispiel für MVVM ist, zeigt sie die Hauptprinzipien der Trennung von Bedenken in Aktion. Sehen Sie sich die App hier an.

Anwendungsstruktur

Nachdem Sie die App geöffnet haben, untersuchen Sie zunächst die Projektmappen-Explorer. Einige der Elemente, die Sie sehen, sollten vertraut sein, wenn Sie bereits mit einer UWP-App gearbeitet haben, aber sie sehen auch eine Sammlung von Ordnern, die die Komponententeile der App enthalten.

Startpunkt der App im Projektmappen-Explorer

Ansichten

Die Benutzeroberfläche der App wird im Ordner "Ansichten" definiert. Da es sich bei unserem Lernprogramm um eine Einzelseiten-App handelt, bedeutet dies, dass es nur eine Ansicht gibt – CustomerListPage. Es verfügt sowohl über XAML-UI-Markup als auch xaml.cs CodeBehind – diese beiden Dateien bilden eine Ansicht. Sie fügen UI-Elemente zu "CustomerListPage.xaml" hinzu.

Hinweis

Möglicherweise stellen Sie fest, dass diese App nicht über eine MainPage verfügt. Das liegt daran, dass wir in App.xaml.cs angeben, dass die App beim Starten CustomerListPage starten soll.

ViewModels

Obwohl diese App nur über eine Ansicht verfügt, gibt es zwei ViewModels. Warum?

CustomerListPageViewModel.cs ist ein Standardmäßiges ViewModel im MVVM-Muster. Hier befindet sich die grundlegende Logik der App-Seite, und die Seite, mit der Sie am häufigsten im Lernprogramm arbeiten. Jede vom Benutzer ausgeführte UI-Aktion wird zur Verarbeitung über die Ansicht an dieses ViewModel übergeben.

CustomerViewModel.cs ist jedoch keiner bestimmten Ansicht zugeordnet. Stattdessen ordnet sie ein programmgesteuertes Konzept (welche Eigenschaften bearbeitet wurden) den Daten zu, die im Modell eines einzelnen Kunden enthalten sind.

Modelle

Diese App enthält drei Modelle, die die Daten der App speichern und Schnittstellen für die Interaktion mit dem Repository bereitstellen. Obwohl es sich hierbei um wichtige Teile der App handelt, handelt es sich nicht um etwas, das Sie direkt im Lernprogramm bearbeiten werden.

Am wichtigsten ist Customer.cs, in dem die Datenstruktur des Kunden beschrieben wird, die Sie im Lernprogramm verwenden werden.

Hinweis

Das Lernprogramm ignoriert die Eigenschaften "E-Mail" und "Telefon " des Customer-Objekts. Wenn Sie darüber hinausgehen möchten, was hier dargestellt wird, ist das Hinzufügen dieser beiden Eigenschaften zur Benutzeroberfläche der App ein guter erster Schritt.

Repository

Der Repositoryordner enthält Klassen, die die lokale SQLite-Datenbank erstellen und interagieren. Für das Lernprogramm wird die SQLite-Datenbank wie folgt dargestellt. Während Sie Code zum CustomerListPageViewModel.cs hinzufügen, um von diesen Klassen definierte Methoden aufzurufen, müssen Sie keine Änderungen vornehmen, um sie einzurichten.

Weitere Informationen zu SQLite in UWP finden Sie in diesem Artikel.

Wenn Sie den Abschnitt "Weitergehen" des Lernprogramms ausprobieren, erstellen Sie hier eine Klasse zum Herstellen einer Verbindung mit der Remote-REST-Datenbank. Außerdem wird die im Abschnitt "Models" definierte ICustomerRepository-Schnittstelle implementiert, sieht jedoch sehr anders aus als das SQLite-Gegenstück.

Andere Elemente

Wie bei UWP-Apps üblich, wird das Anwendungsstartverhalten in der App.xaml.cs Klasse definiert. Der größte Teil des Codes hier ist der Standardcode für jede UWP-App. Aber wir haben bereits einige kleine Änderungen vorgenommen:

  • Wir haben angegeben, dass die App customerListPage beim Start anzeigen soll.
  • Wir haben ein Repository-Objekt erstellt, das die verwendete Datenquelle enthält.
  • Wir haben eine SQLiteDatabase-Methode hinzugefügt, die die lokale Datenbank initialisiert und als angegebenes Repository festlegt.

Wenn Sie den Abschnitt "Weitergehen" ausprobieren, fügen Sie eine ähnliche Methode zum Initialisieren eines REST-Repositoryobjekts hinzu. Da wir unsere Bedenken getrennt haben und dieselbe definierte Schnittstelle für SQLite- und REST-Vorgänge verwenden, ist dies der einzige vorhandene Code, den Sie ändern müssen, um REST anstelle von SQLite in Ihrer App zu verwenden.

Nächste Schritte

Wenn Sie das Lernprogramm bereits abgeschlossen haben, können Sie sich die vollständige Beispiel-App ansehen, um zu sehen, wie diese Features in größerem Umfang implementiert werden.

Andernfalls sollten Sie jetzt, da Sie wissen, warum alles dort ist, zum Lernprogramm zurückkehren und mit der Struktur arbeiten, die wir gerade behandelt haben.