Zum Fußzeileninhalt springen
Iron Academy Logo
C#-Anwendung
C#-Anwendung

Andere Kategorien

App-Logikplanung — Ein tieferer Einblick in den Ansatz von Tim Corey

Tim Corey
17m 14s

In seiner "C# App Start To Finish"-Serie erklärt Tim Corey, dass der Aufbau einer Anwendung nicht nur das Schreiben von Code umfasst. Die wahre Herausforderung besteht darin, die Logik der App zu planen — wie die verschiedenen Teile der Anwendung interagieren, kommunizieren und Daten zwischen Bildschirmen und Komponenten bewegen. In Lektion 05 zu Logikplanung konzentriert sich Tim auf die Logikplanung und betont, dass dies die Phase ist, in der entschieden wird, wie die Anwendung insgesamt funktionieren wird.

Er erinnert daran, dass der Kurs bis zu diesem Punkt bereits Anforderungen abgesteckt, die Gesamtstruktur gebaut, das Daten-Backend entworfen und das Frontend skizziert hat. Nun, sagt Tim, sei der nächste Schritt, alles durch Logik zu verbinden.

Tim stellt klar, dass diese Lektion noch nicht in den Code eintaucht. Stattdessen möchte er die globalen Ideen, das große Ganze und die gesamte Logik hinter der Anwendung abdecken. Er ermutigt dazu, Notizen auf Papier zu schreiben und Pfeile zu zeichnen, um darzustellen, wie jedes Formular und jeder Button funktionieren sollte, was ähnlich ist wie das Abbilden von Geschäftsprozessen in professionellen Entwicklungsumgebungen. Diese Planung hilft, die App-Logik klar zu machen, bevor mit dem Codieren begonnen wird.

Warum Logikplanung wichtig ist

Tim beginnt, indem er feststellt, dass das Verdrahten von Formularen der Hauptteil der Anwendungslogik ist. Sobald die Formulare korrekt verbunden sind, sind die verbleibenden Aufgaben meist kleiner. Er erklärt, dass der Logikplanungsprozess hilft, die Funktionalität, Prozesse und Steuerungen zu verstehen, die die Anwendung unterstützen muss.

Tim sagt, wenn er dies auf Papier tun würde, würde er aufschreiben, was jede Komponente tun soll, und Pfeile zwischen ihnen zeichnen. Auch wenn die Klasse auf dem Bildschirm arbeitet, plant er, durch jedes Formular zu gehen und die Logik hinter jedem Teil zu erklären.

Turnier-Erstellungsformular Logik

Tim beginnt mit dem Turnier-Erstellungsformular, einem der einfacheren Formulare. Er erklärt die Logik hinter jedem Button und wie sie zusammen arbeiten sollten.

Neues Team erstellen-Button

Tim erklärt, dass der "Neues Team erstellen"-Button das Team-Erstellungsformular öffnet. Nachdem ein Team erstellt wurde, schließt sich das neue Formular und die erstellten Teamdaten werden an das Turnier-Erstellungsformular zurückgegeben. Das Team sollte im Team-/Spielerlistenfeld erscheinen, und dies wird erreicht, indem eine Methode erstellt wird, die aus dem Team-Erstellungsformular aufgerufen werden kann.

Tim führt auch das Konzept der Verwendung von Schnittstellen für diese Kommunikation ein und erklärt, dass Schnittstellen es Formularen ermöglichen, miteinander zu interagieren, ohne direkt voneinander zu wissen. Dies ist ein klassisches Beispiel dafür, wie Geschäftslogik und Softwarearchitektur zusammenarbeiten, um Qualität, Integrität und saubere Interaktionen zwischen Komponenten zu erhalten.

Team hinzufügen-Button

Tim erklärt, dass der "Team hinzufügen"-Button einfach ist. Er prüft, welches Element im Dropdown ausgewählt ist, fügt dieses Team der Turnierliste hinzu, entfernt es aus dem Dropdown und aktualisiert dann beide Listen. Diese Logik stellt sicher, dass die Auswahl des Benutzers korrekt in der UI und den zugrunde liegenden Daten widergespiegelt wird.

Preis erstellen-Button

Tim erklärt, dass der "Preis erstellen"-Button ähnlich wie der "Neues Team erstellen"-Button funktioniert. Er öffnet das Preisformular, wartet darauf, dass der Preis erstellt wird, und fügt diesen dann dem Preislistenfeld hinzu. Die Logik ist die gleiche, aber die Klasse und der Datentyp sind unterschiedlich.

Ausgewählte Buttons löschen

Tim erklärt, dass die Löschbuttons das ausgewählte Element aus dem Listenfeld entfernen. Im Fall von Teams gibt die Logik auch das gelöschte Team zurück zur Dropdown-Liste, damit der Benutzer es später erneut hinzufügen kann. Diese Art der Echtzeitaktualisierung verbessert die Benutzererfahrung und hilft, die Daten über die UI hinweg korrekt zu halten.

Turnier erstellen-Button

Tim erklärt, dass dies der große Button ist, da er die meiste Logik auslöst. Beim Klicken muss er alle Informationen validieren:

  • Der Turniername darf nicht leer sein

  • Die Teilnahmegebühr darf nicht negativ sein

  • Mindestens zwei Teams müssen existieren

Nach der Validierung erklärt Tim den nächsten großen Schritt: die Erstellung des Spielplans. Die Turnier-Spielplanlogik bestimmt, wie viele Teams im Turnier sein sollten und wie viele Freilose benötigt werden. Tim verweist auf ein Begleitdokument, in dem er die Formel für diese Berechnung niedergeschrieben hat. Zum Beispiel, wenn das Turnier 10 Teams hat, muss das Turnier mit 16 Teams beginnen, was bedeutet, dass 6 Freilose in der ersten Runde benötigt werden.

Tim merkt auch an, dass die Logik die Reihenfolge der ersten Runde randomisieren muss. Sobald alles abgeschlossen ist, ist das Formular fertig und die Anwendung kann fortschreiten.

Team-Formular Logik

Tim geht weiter zum Team-Formular und erklärt die Logik hinter seinen Buttons.

Mitglied hinzufügen-Button

Tim sagt, dass dieser Button ein bestehendes Mitglied aus einer Dropdown-Liste zum Team-Listenfeld hinzufügt. Es entfernt dann dieses Mitglied aus dem Dropdown und aktualisiert beide Listen. Tim hebt hervor, dass dies eine ähnliche Logik wie der "Team hinzufügen"-Button ist.

Mitglied erstellen-Button

Tim erklärt, dass der "Mitglied erstellen"-Button die vier Eingabefelder verwendet, um ein neues Teammitglied zu erstellen, es dem Listenfeld hinzufügt und die Felder leert. Dies ist ein typisches Beispiel für häufige Aufgaben in der Anwendungslogik, bei denen Benutzereingaben verarbeitet und in der UI widergespiegelt werden müssen.

Team erstellen-Button

Tim sagt, dass der "Team erstellen"-Button das Team validieren und dann an den Aufrufer zurücksenden muss. Er merkt an, dass das Formular einen Löschspieler-Button fehlt, der hinzugefügt werden sollte, um die anderen Formulare zu ergänzen und eine konsistente Benutzererfahrung zu bieten. Tim erklärt, dass konsistentes UI-Verhalten wichtig für die Benutzervertrautheit und -komfort ist.

Preisformular Logik

Tim beschreibt das Preisformular als einfacher. Es hat vier Textfelder und einen Button.

Beim Klicken auf den "Preis erstellen"-Button:

  • Validiert die Preisinformationen

  • Sendet die Daten zurück an das aufrufende Formular

  • Schließt das Formular

Tim erklärt, dass dieses Formular im Wesentlichen das gleiche wie das Team-Erstellungsformular ist, jedoch mit weniger Komponenten.

Turnier-Dashboard Logik

Tim erklärt das Turnier-Dashboard-Formular als einfach, aber wesentlich.

Es listet bestehende Turniere auf. Der "Turnier laden"-Button öffnet den Turnier-Viewer für das ausgewählte Turnier, und der "Turnier erstellen"-Button öffnet das Turnier-Erstellungsformular.

Tim merkt an, dass, wenn ein Turnier erstellt wird, es zur Dropdown-Liste hinzugefügt werden sollte, damit der Benutzer es sofort laden kann. Diese Logik ist ein grundlegendes Beispiel für Datenzugriff und Echtzeitaktualisierung innerhalb einer App.

Turnier-Viewer Logik

Tim beschreibt den Turnier-Viewer als das komplexeste Formular, da es die meiste Logik enthält.

Turniername

Tim erklärt, dass der Turniername aktualisiert wird, wenn das Formular geladen wird. Das Formular erhält ein Turnierobjekt und zeigt den Namen an.

Runden-Dropdown

Tim erklärt, dass dieses Dropdown berechnet wird und nicht aus einer Datenbank geladen wird. Es schaut auf die Liste der Runden und bestimmt, wie viele existieren. Wenn ein Turnier vier Runden hat, muss das Dropdown Runde 1 bis Runde 4 anzeigen.

Nur nicht gespielte Checkbox

Tim sagt, dass wenn die Checkbox aktiviert ist (Standard), das Spielpaarungslistenfeld gefiltert wird, um nur ungespielte Spiele anzuzeigen. Wenn deaktiviert, erscheinen alle Spielpaarungen.

Spielpaarungspunkte Bereich

Tim erklärt, dass durch das Auswählen einer Spielpaarung der Bereich auf der rechten Seite mit Teamnamen und Punkten aktualisiert wird. Der Punkteregistrierungs-Button ermöglicht es dem Benutzer, Punkte zu aktualisieren und die Spielpaarung abzuschließen.

Auslösen der nächsten Runde

Tim erklärt, dass, wenn das letzte nicht gespielte Spielpaar in einer Runde bewertet wird, die nächste Runde starten sollte. Wenn es das letzte Meisterschaftsspiel ist, endet das Turnier und die Preise werden vergeben. Tim merkt auch an, dass das System E-Mails an die Teilnehmer sendet, wenn sie zum Spielen eingeplant sind und wenn Ergebnisse verfügbar sind.

Punkteänderungsregeln

Tim fragt, ob Punkte aktualisiert werden können, nachdem sie festgelegt wurden. Er folgert, dass ja, aber nur solange die aktuelle Runde noch aktiv ist. Wenn die Punkte nach dem Start der nächsten Runde geändert werden, könnte dies große Probleme verursachen, da Teams möglicherweise gegen die falschen Gegner spielen.

Daher sagt Tim, dass der Punkteregistrierungs-Button eine Logik benötigt, um sicherzustellen, dass die Punkte nur in der aktuellen Runde geändert werden können.

Wie geht es weiter?

Tim erkennt an, dass einige Logiken noch geplant werden müssen, wie z.B.:

  • Datenzugriff und -speicherung

  • Umgang mit verschiedenen Datenquellen

  • E-Mail-Logik

  • Auslösen von Spielpaarungen

Er sagt, dass diese besser innerhalb des Codes geplant werden, sodass das Team sie angehen wird, sobald sie mit dem Codieren beginnen. Dies ist ein Beispiel für geschäftliche Integrität in der Softwareentwicklung – nicht Überplanung, sondern das Bauen und Anpassen während der Implementierung.

Schlussfolgerung: Planung vor dem Codieren

Tim schließt sein Video ab, indem er feststellt, dass die Planungsphase abgeschlossen ist:

  • Datenentwurf ist abgeschlossen

  • UI-Layout ist gezeichnet

  • Logik hinter jedem Formular ist geplant

Der nächste Schritt ist, dies in Code zu übersetzen. In der nächsten Lektion wird Tim die Klassenbibliothek erstellen und beginnen, das Daten-Design in die eigentliche Anwendung zu implementieren.

Hero Worlddot related to App-Logikplanung — Ein tieferer Einblick in den Ansatz von Tim Corey
Hero Affiliate related to App-Logikplanung — Ein tieferer Einblick in den Ansatz von Tim Corey

Verdienen Sie mehr, indem Sie teilen, was Sie lieben

Erstellen Sie Inhalte für Entwickler, die mit .NET, C#, Java, Python oder Node.js arbeiten? Verwandeln Sie Ihr Fachwissen in ein zusätzliches Einkommen!

Iron Support Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an