← Alle Kurse
Architecture · Kostenloser Kurs

Echtzeit-Apps mit Server-Push

Die meisten Masken in Geschäftsanwendungen warten darauf, dass der Benutzer auf „Aktualisieren“ klickt. In diesem Kurs lernen Sie, Wisej.NET-Apps zu bauen, die sich selbst aktualisieren – Änderungen werden in dem Moment, in dem etwas passiert, vom Server an jeden verbundenen Browser gepusht. Alles entsteht rund um das realistische Projekt TicketOps Live. Sieben Module behandeln die Architektur von Echtzeit-Webanwendungen, Anwendungskontext und Session-Lebenszyklus, Server-Push innerhalb einer Session mit Hintergrundaufgaben, Timer und Polling-Fallbacks für den Aktualisierungstakt, Live-Data-Binding und Echtzeit-Grids sowie Push an mehrere Benutzer über Services und Event-Hubs – bevor Sie alles für die Produktion härten und das Abschlussprojekt ausliefern. Der Kurs richtet sich an Entwickler, die die Grundlagen beherrschen und WebSocket-Push, Hintergrundaufgaben und Live-Daten auf die Wisej.NET-Art umsetzen möchten.

WebSocket-Push, Hintergrundaufgaben, Polling-Fallback und Live-Data-Binding für Wisej.NET-Apps, die sich selbst aktualisieren – umgesetzt am Projekt TicketOps Live.

Kostenlosen Kurs starten

Auch verfügbar auf: EnglishFrançaisItalianoEspañol

Lehrplan

Modul 1: Echtzeit-Webarchitektur in Wisej.NET

Modul 1 von Echtzeit-Apps mit Server-Push – der Echtzeit-Lernpfad von Wisej.NET. Lesen Sie den Lektionsleitfaden und den Lab- und Prüfungsleitfaden, sehen Sie sich den Video-Walkthrough „WebSocket-Push oder Polling: das mentale Modell“ an, bestehen Sie den Wissenstest und schließen Sie dann das Praxis-Lab in TicketOps Live ab.

  1. LektüreLektionsleitfaden · 14 Min.

    Servergesteuerte Echtzeit-Architektur: WebSocket-Push, Aktualisierungen innerhalb eines Requests und Polling als Fallback im serverseitigen Modell von Wisej.NET. Das Konzept, das mentale Modell und die Fallstricke im Produktivbetrieb – lesen Sie das vor dem Lab.

    Lektionsleitfaden lesen (PDF)

  2. LektüreLab- und Prüfungsleitfaden · 10 Min.

    Was Sie im Praxis-Lab bauen, die Aufgaben, die vorgeschlagene Implementierung und die Abnahmekriterien.

    Lektionsleitfaden lesen (PDF)

  3. VideolektionWebSocket-Push oder Polling: das mentale Modell · 13 Min.

    WebSocket-Push oder Polling: das mentale Modell – ein geführter Video-Walkthrough zu Modul 1, den Sie direkt hier im Player ausführen können.

    Transkript der Sprecherstimme

    Verwenden Sie TicketOps Live, um zu untersuchen, wie ein Betriebsbildschirm Änderungen empfängt. Der wichtige Unterschied besteht darin, was ein Update auslöst, denn das bestimmt, ob der Browser danach fragen muss.

    Der Server ist Eigentümer der Steuerelemente und ihres Status. Der Browser präsentiert seine Widgets. Wisej.NET synchronisiert Änderungen zwischen ihnen und ermöglicht es Hintergrundaufgaben, sichtbare Aktualisierungen über WebSocket bereitzustellen.

    Ändern Sie die Beschriftung während einer Schaltflächenanfrage wie gewohnt. Wisej.NET nimmt diese Änderung in seine Antwort auf, sodass ein expliziter Aktualisierungsaufruf für diese anforderungsgebundene Aktion nicht erforderlich wäre.

    Für die Hintergrundverarbeitung ist keine Tastenreaktion ausstehend, um die Änderungen zu übernehmen. Nachdem Sie die Steuerelemente in der Sitzungsaufgabe aktualisiert haben, senden Sie die Änderungen explizit über die vorhandene WebSocket-Verbindung.

    Vergleichen Sie den Klick mit der Hintergrundsequenz. Man reist mit einer Anfrage-Antwort; der andere kommt mit fortschreitender Arbeit, während die Abfrage einen Fallback bietet, wenn WebSocket nicht verfügbar ist.

    Wählen Sie einen Mechanismus anhand seines Auslösers. Anforderungsantworten folgen Benutzeraktionen, Push folgt Serverereignissen und Abfrageprüfungen werden wiederholt durchgeführt, auch wenn kein neues Ereignis aufgetreten ist.

    Verbindungs- und Aktualisierungsstatus zur Konsole hinzufügen. Erläutern Sie die ausgewählten Mechanismen im Architekturhinweis, damit Benutzer und Betreuer erkennen können, wie aktuelle Informationen auf den Bildschirm gelangen.

  4. LektüreKI-Coding-Übung · 20 Min.

    Erstellen Sie das Beispielprojekt TicketOpsLive dieses Moduls mit ChatGPT oder Claude aus einem fertigen Prompt, der das Modell auf die Spezifikation des Moduls verweist – und prüfen, starten und erweitern Sie dann, was Sie erhalten, auch im Vergleich mit unserem eigenen Referenz-Build auf GitHub.

    Lektionsleitfaden lesen (PDF)

  5. WissenstestWissenstest – Modul 1 · 10 Min. · Bestehensgrenze 80%
  6. Praktisches LabLab – Die Live-Statusseite erstellen · 45 Min.

    Ziel: Erstellen Sie die erste Maske von TicketOps Live: eine Page mit einer Live-Statusleiste, einem Uhr-Label, einer Fortschrittsanzeige und einem simulierten Server-Heartbeat, der den Browser ohne Klick des Benutzers aktualisiert. Abnahmekriterien: Die UI aktualisiert sich einmal pro Sekunde, nachdem auf „Start“ geklickt wurde; der Browser zeigt Änderungen ohne weitere Klicks an; „Stop“ beendet die Schleife innerhalb einer Sekunde; zweimaliges Starten erzeugt keine zwei konkurrierenden Schleifen; der Code prüft, ob die Page verworfen (disposed) wurde.

Modul 2: Anwendungskontext, Sessions und Lebenszyklus

Modul 2 von Echtzeit-Apps mit Server-Push – der Echtzeit-Lernpfad von Wisej.NET. Lesen Sie den Lektionsleitfaden und den Lab- und Prüfungsleitfaden, sehen Sie sich den Video-Walkthrough „Wem gehört die UI? Sessions, Kontext, Beenden und Timeout“ an, bestehen Sie den Wissenstest und schließen Sie dann das Praxis-Lab in TicketOps Live ab.

  1. LektüreLektionsleitfaden · 14 Min.

    Sessions, Anwendungskontext und Lebenszyklus: die UI des richtigen Benutzers ansprechen, die Falle statischer Felder vermeiden und beim Beenden und beim Timeout aufräumen. Das Konzept, das mentale Modell und die Fallstricke im Produktivbetrieb – lesen Sie das vor dem Lab.

    Lektionsleitfaden lesen (PDF)

  2. LektüreLab- und Prüfungsleitfaden · 10 Min.

    Was Sie im Praxis-Lab bauen, die Aufgaben, die vorgeschlagene Implementierung und die Abnahmekriterien.

    Lektionsleitfaden lesen (PDF)

  3. VideolektionWem gehört die UI? Sessions, Kontext, Beenden und Timeout · 13 Min.

    Wem gehört die UI? Sessions, Kontext, Beenden und Timeout – ein geführter Video-Walkthrough zu Modul 2, den Sie direkt hier im Player ausführen können.

    Transkript der Sprecherstimme

    Öffnen Sie das Beispiel in zwei Browser-Registerkarten, um die Identität vom Sitzungseigentum zu trennen. Derselbe angemeldete Benutzer kann über unterschiedliche Schnittstelleninstanzen verfügen, die keinen zufälligen Status aufweisen dürfen.

    Unterscheiden Sie zwischen Benutzer, Sitzung, ausführendem Thread, Anwendungskontext und gemeinsam genutztem Dienst. Ein Thread kann verschiedene Ereignisse bedienen; Es ist nicht das Objekt, das die Steuerelemente eines Benutzers besitzt.

    Ordnen Sie die Sitzungsbezeichnungen, die Lebenszyklusliste und die Befehle im Designer an. Aussagekräftige Steuerelementnamen helfen bei der Überprüfung des Lebenszykluscodes dabei, jede sichtbare Diagnose mit ihrem Handler zu verbinden.

    Sitzungs- und Thread-IDs zusammen anzeigen. Eine stabile Sitzung neben sich ändernden Threads macht deren unterschiedliche Lebensdauer sichtbar und erklärt, warum die Thread-Identität den Schnittstelleneigentümer nicht identifizieren kann.

    Erfassen Sie den Anwendungskontext beim Laden der Seite und verwenden Sie ihn für spätere Aktualisierungen. Schützen Sie die entsorgten Steuerelemente und melden Sie sie beim Beenden ab, damit Hintergrundrückrufe ihren Besitzer nicht überleben.

    Vergleichen Sie die Lebenszyklusprotokolle in beiden Registerkarten. Durch das Schließen eines wird das Abonnement freigegeben, während das andere fortgeführt wird. Dies zeigt, dass die Bereinigung auf eine Sitzung beschränkt ist und nicht auf ein globales Herunterfahren.

    Ordnen Sie jeden Wert seinem tatsächlichen Besitzer zu. Steuerelemente und Sitzungsdienste halten den Sitzungsstatus; Global gemeinsam genutzte Dienste dürfen einen aktuellen Benutzer nicht in statischen Feldern speichern.

    Erstellen Sie den Inspektor und schreiben Sie eine Bereinigungsregel für jedes Abonnement und jede Aufgabe. Das resultierende Protokoll sollte sowohl die Erstellung als auch die Freigabe sitzungseigener Arbeit verständlich machen.

  4. LektüreKI-Coding-Übung · 20 Min.

    Erstellen Sie das Beispielprojekt TicketOpsLive dieses Moduls mit ChatGPT oder Claude aus einem fertigen Prompt, der das Modell auf die Spezifikation des Moduls verweist – und prüfen, starten und erweitern Sie dann, was Sie erhalten, auch im Vergleich mit unserem eigenen Referenz-Build auf GitHub.

    Lektionsleitfaden lesen (PDF)

  5. WissenstestWissenstest – Modul 2 · 10 Min. · Bestehensgrenze 80%
  6. Praktisches LabLab – Session-Inspektor und Lebenszyklus-Logger erstellen · 45 Min.

    Ziel: Fügen Sie ein Diagnose-Panel hinzu, in dem Sie als Entwickler die aktuelle Session, den Anwendungskontext, Browserdetails und die für Echtzeit-Updates relevanten Lebenszyklus-Events sehen. Abnahmekriterien: Der Zähler ist sessionspezifisch, nicht statisch; ein Hintergrund-Update ändert die richtige Browser-Session; das Diagnose-Panel zeigt an, wann das Hintergrund-Update eintrifft; Sie können erklären, was nach einem Neuladen und nach einem Session-Timeout passiert.

Modul 3: Server-Push in einer Session mit Hintergrundaufgaben

Modul 3 von Echtzeit-Apps mit Server-Push – der Echtzeit-Lernpfad von Wisej.NET. Lesen Sie den Lektionsleitfaden und den Lab- und Prüfungsleitfaden, sehen Sie sich den Video-Walkthrough „Fortschritt ohne Neuladen: Monitor für Hintergrundimporte“ an, bestehen Sie den Wissenstest und schließen Sie dann das Praxis-Lab in TicketOps Live ab.

  1. LektüreLektionsleitfaden · 14 Min.

    Push innerhalb einer Session: lange Arbeit außerhalb des Klick-Handlers ausführen, Fortschritt melden, kooperativen Abbruch unterstützen und die UI im finally-Block wiederherstellen. Das Konzept, das mentale Modell und die Fallstricke im Produktivbetrieb – lesen Sie das vor dem Lab.

    Lektionsleitfaden lesen (PDF)

  2. LektüreLab- und Prüfungsleitfaden · 10 Min.

    Was Sie im Praxis-Lab bauen, die Aufgaben, die vorgeschlagene Implementierung und die Abnahmekriterien.

    Lektionsleitfaden lesen (PDF)

  3. VideolektionFortschritt ohne Neuladen: Monitor für Hintergrundimporte · 13 Min.

    Fortschritt ohne Neuladen: Monitor für Hintergrundimporte – ein geführter Video-Walkthrough zu Modul 3, den Sie direkt hier im Player ausführen können.

    Transkript der Sprecherstimme

    Verschieben Sie den langen Import in eine Aufgabe, die seiner Sitzung gehört. Die Seite kann während des Fortschritts reaktionsfähig bleiben, anstatt den Benutzer auf eine lange Anfrage warten zu lassen.

    Behandeln Sie den Vorgang als einen Lebenszyklus: Bereiten Sie Kontrollen und Abbrüche vor, starten Sie die Aufgabe, melden Sie den begrenzten Fortschritt und stellen Sie die Schnittstelle nach Abschluss wieder her. Jeder Ausgang benötigt die gleiche Bereinigung.

    Erstellen Sie den Monitor mit Fortschritt, Anzahl, Verlauf und expliziten Befehlen. Diese Steuerelemente beantworten verschiedene Fragen: Wie weit ist die Arbeit fortgeschritten, was ist passiert und was kann der Benutzer als Nächstes tun?

    Erstellen Sie einen Abbruchstatus, bevor Sie die Sitzungsaufgabe starten, und kehren Sie dann nach dem Klicken zurück. Dadurch erhält der Browser wieder die Kontrolle, während der Vorgang im richtigen Anwendungskontext fortgesetzt wird.

    Überprüfen Sie die Stornierung kooperativ innerhalb der Schleife. Internen Fortschritt pro Datensatz aktualisieren, aber alle zehn Datensätze übertragen; Fehler abfangen und Kontrollen in finally wiederherstellen, sodass Start deaktiviert bleibt, wenn kein Ergebnis vorliegt.

    Beobachten Sie den simulierten Fehler nach Live-Fortschrittsaktualisierungen. Zeichnen Sie die Diagnosedetails getrennt von der sicheren Benutzermeldung auf und stellen Sie dann die Wiederherstellung wieder her, damit der fehlgeschlagene Vorgang über die Schnittstelle wiederhergestellt werden kann.

    Stapeln Sie sichtbare Änderungen und begrenzen Sie Fortschrittsübertragungen, aber senden Sie den Abschluss sofort. Benutzer benötigen ein zuverlässiges Endergebnis mehr als eine separate Netzwerkaktualisierung für jeden verarbeiteten Datensatz.

    Testabbruch, absichtliches Versagen, verstrichene Zeit und die abschließende Zusammenfassung im abgeschlossenen Monitor. Jede Route sollte mit einem verständlichen Status und Steuerelementen enden, die für die nächste Aktion bereit sind.

  4. LektüreKI-Coding-Übung · 20 Min.

    Erstellen Sie das Beispielprojekt TicketOpsLive dieses Moduls mit ChatGPT oder Claude aus einem fertigen Prompt, der das Modell auf die Spezifikation des Moduls verweist – und prüfen, starten und erweitern Sie dann, was Sie erhalten, auch im Vergleich mit unserem eigenen Referenz-Build auf GitHub.

    Lektionsleitfaden lesen (PDF)

  5. WissenstestWissenstest – Modul 3 · 10 Min. · Bestehensgrenze 80%
  6. Praktisches LabLab – Einen Monitor für Hintergrundimporte erstellen · 45 Min.

    Ziel: Fügen Sie TicketOps Live ein realistisches Panel für einen lang laufenden Import hinzu. Der Benutzer kann einen Import starten, den Fortschritt verfolgen, ihn abbrechen und das Ergebnis prüfen. Abnahmekriterien: Fortschritts-Updates erscheinen, während die Operation läuft; der Abbruch funktioniert und hinterlässt eine benutzbare UI; Fehler werden gemeldet, ohne rohe Stacktraces preiszugeben; das letzte Update erreicht den Browser immer, solange die Session noch existiert; der Code pusht nicht häufiger als nötig.

Modul 4: Timer, Polling-Fallbacks und Aktualisierungstakt

Modul 4 von Echtzeit-Apps mit Server-Push – der Echtzeit-Lernpfad von Wisej.NET. Lesen Sie den Lektionsleitfaden und den Lab- und Prüfungsleitfaden, sehen Sie sich den Video-Walkthrough „Wenn Push nicht reicht: Takt, Timer und Fallbacks“ an, bestehen Sie den Wissenstest und schließen Sie dann das Praxis-Lab in TicketOps Live ab.

  1. LektüreLektionsleitfaden · 14 Min.

    Aktualisierungstakt und Fallback: zwischen Push, Timern und Polling wählen, Lastspitzen zusammenfassen und den Lebenszyklus von Timern pro Session verantworten. Das Konzept, das mentale Modell und die Fallstricke im Produktivbetrieb – lesen Sie das vor dem Lab.

    Lektionsleitfaden lesen (PDF)

  2. LektüreLab- und Prüfungsleitfaden · 10 Min.

    Was Sie im Praxis-Lab bauen, die Aufgaben, die vorgeschlagene Implementierung und die Abnahmekriterien.

    Lektionsleitfaden lesen (PDF)

  3. VideolektionWenn Push nicht reicht: Takt, Timer und Fallbacks · 13 Min.

    Wenn Push nicht reicht: Takt, Timer und Fallbacks – ein geführter Video-Walkthrough zu Modul 4, den Sie direkt hier im Player ausführen können.

    Transkript der Sprecherstimme

    Wählen Sie eine Aktualisierungsrate, die dem Geschäftsereignis gerecht wird. Jede interne Änderung sofort sichtbar zu machen, kann Ressourcen verbrauchen, ohne der Person, die den Bildschirm liest, zu helfen.

    Passen Sie den Mechanismus an die Arbeit an: Drücken Sie auf Ereignisse, einen Wisej.NET-Timer für regelmäßige Aktualisierungen und eine Aufgabe für einen einzelnen Vorgang. Umfragen bleiben bei Bedarf eine Alternative.

    Bauen Sie die Intervallkontrollen neben sichtbaren Statusbezeichnungen auf. Durch die Darstellung der gewählten Strategie ist es möglich, die Einstellung eines Benutzers mit dem daraus resultierenden Update-Verhalten zu verknüpfen.

    Wenden Sie das ausgewählte Intervall auf den Timer an und erzwingen Sie gleichzeitig das Minimum. Das Kontrollkästchen „Polling“ steuert, ob wiederholte Anfragen ausgeführt werden, wodurch dieser Fallback zu einer expliziten Betriebswahl wird.

    Lassen Sie die Daten durch eingehende Ereignisse als fehlerhaft markieren und aktualisieren Sie sie dann einmal pro Timer-Tick. Dies vereint eine Reihe von Modelländerungen in einem nützlichen Schnittstellen-Update.

    Vergleichen Sie die angezeigten Aktualisierungsintervalle und ihre Ressourcenkompromisse. Schnelleres Feedback erzeugt mehr Arbeit; Eine langsamere Rückmeldung kann sich abgestanden anfühlen, während die Abfrage die Zustellung aufrechterhält, wenn WebSocket verschwindet.

    Führen Sie Modelländerungen, Rendering, Push und Abfragen nach unterschiedlichen Zeitplänen durch. Eigener Timer zum Starten und Herunterfahren und verhindern, dass überlappende Ticks zu unkontrollierten gleichzeitigen Aktualisierungen führen.

    Schreiben Sie eine Trittfrequenzrichtlinie für drei Funktionen mit einer Standard- und einer Höchstrate. Die Kontrollen und der Fallback sollten diese bewussten Grenzwerte umsetzen, anstatt eine uneingeschränkte Aktualisierung zu fördern.

  4. LektüreKI-Coding-Übung · 20 Min.

    Erstellen Sie das Beispielprojekt TicketOpsLive dieses Moduls mit ChatGPT oder Claude aus einem fertigen Prompt, der das Modell auf die Spezifikation des Moduls verweist – und prüfen, starten und erweitern Sie dann, was Sie erhalten, auch im Vergleich mit unserem eigenen Referenz-Build auf GitHub.

    Lektionsleitfaden lesen (PDF)

  5. WissenstestWissenstest – Modul 4 · 10 Min. · Bestehensgrenze 80%
  6. Praktisches LabLab – Polling-Fallback und Taktsteuerung ergänzen · 45 Min.

    Ziel: Erweitern Sie TicketOps Live um einen Timer zur Aktualisierung des Dashboards und um Controls, mit denen Sie mit dem Aktualisierungstakt experimentieren können. Abnahmekriterien: Der Takt des Timers ändert sich sichtbar; die Zahl der empfangenen Events kann schneller wachsen als die Zahl der angewendeten UI-Updates; das Polling startet und stoppt mit dem Live-Modus; es treten keine überlappenden Timer-Ticks auf; Sie können erklären, warum das Zusammenfassen von Updates nützlich ist.

Modul 5: Live-Data-Binding und Echtzeit-Grids

Modul 5 von Echtzeit-Apps mit Server-Push – der Echtzeit-Lernpfad von Wisej.NET. Lesen Sie den Lektionsleitfaden und den Lab- und Prüfungsleitfaden, sehen Sie sich den Video-Walkthrough „Live-Ticketboard: Daten aktualisieren, ohne die Maske neu aufzubauen“ an, bestehen Sie den Wissenstest und schließen Sie dann das Praxis-Lab in TicketOps Live ab.

  1. LektüreLektionsleitfaden · 14 Min.

    Live-Data-Binding: gebundene Collections im Session-Kontext aktualisieren, ohne das Grid neu zu binden, und dabei Auswahl, Sortierung und Scrollposition erhalten. Das Konzept, das mentale Modell und die Fallstricke im Produktivbetrieb – lesen Sie das vor dem Lab.

    Lektionsleitfaden lesen (PDF)

  2. LektüreLab- und Prüfungsleitfaden · 10 Min.

    Was Sie im Praxis-Lab bauen, die Aufgaben, die vorgeschlagene Implementierung und die Abnahmekriterien.

    Lektionsleitfaden lesen (PDF)

  3. VideolektionLive-Ticketboard: Daten aktualisieren, ohne die Maske neu aufzubauen · 13 Min.

    Live-Ticketboard: Daten aktualisieren, ohne die Maske neu aufzubauen – ein geführter Video-Walkthrough zu Modul 5, den Sie direkt hier im Player ausführen können.

    Transkript der Sprecherstimme

    Halten Sie eingehende Ticketänderungen sichtbar, ohne die Arbeit des Benutzers neu starten zu müssen. Ein Live-Raster ist erfolgreich, wenn es neue Daten widerspiegelt und gleichzeitig den Kontext beibehält, in dem jemand liest oder bearbeitet.

    Ändern Sie die gebundene Sammlung, anstatt das Raster zu löschen. Beim Neuaufbau werden Auswahl, Scrollen, Sortieren und Bearbeitungen verworfen. Durch die Benachrichtigung der Bindungsschicht wird sichergestellt, dass der vorhandene Bildschirmstatus die Datenänderung übersteht.

    Bauen Sie das Gitter um seine Bindungsquelle auf und fügen Sie einen Indikator für leise Veränderungen hinzu. Benutzer müssen eingehende Updates bemerken, ohne dass ein blockierender Dialog ihre aktuelle Aufgabe unterbricht.

    Lassen Sie Ticket Eigenschaftsänderungen benachrichtigen und Zeitstempel als echte Datumswerte beibehalten. Benachrichtigungen unterstützen inkrementelle Aktualisierungen, während eingegebene Datumsangaben sinnvolle Sortier- und Formatierungsoptionen beibehalten.

    Geben Sie den erfassten Sitzungskontext ein, bevor Sie Shared-Feed-Ereignisse anwenden. Aktualisieren Sie dort die gebundene Liste und benachrichtigen Sie die Bindungen einmal, um die korrekten Besitzverhältnisse beizubehalten und gleichzeitig wiederholte Aktualisierungsarbeiten zu vermeiden.

    Folgen Sie der neuen Zeile und dem gelösten Ticket, während die bestehende Auswahl bestehen bleibt. Die Konfliktmeldung bittet um Aufmerksamkeit, ohne den Bildschirmzustand durch ein Neuladen zu verwerfen.

    Verwenden Sie temporäre Markierungen, um geänderte Zeilen anzuzeigen, ohne eine aktive Bearbeitung zu verschieben. Wenn Änderungen zu Konflikten führen, warnen Sie den Benutzer und lassen Sie ihn entscheiden, anstatt seine Arbeit stillschweigend zu ersetzen.

    Testen Sie Live-Änderungen mit einer Auswahl und einem bereits aktiven Open-Ticket-Filter. Das Board sollte seine Daten aktualisieren und dabei den Benutzerplatz und die beabsichtigte Bedeutung des Filters beibehalten.

  4. LektüreKI-Coding-Übung · 20 Min.

    Erstellen Sie das Beispielprojekt TicketOpsLive dieses Moduls mit ChatGPT oder Claude aus einem fertigen Prompt, der das Modell auf die Spezifikation des Moduls verweist – und prüfen, starten und erweitern Sie dann, was Sie erhalten, auch im Vergleich mit unserem eigenen Referenz-Build auf GitHub.

    Lektionsleitfaden lesen (PDF)

  5. WissenstestWissenstest – Modul 5 · 10 Min. · Bestehensgrenze 80%
  6. Praktisches LabLab – Das Live-Ticketboard erstellen · 45 Min.

    Ziel: Erstellen Sie eine Live-`DataGridView`, die Support-Tickets anzeigt und sich aktualisiert, wenn simulierte Ticket-Events eintreffen. Abnahmekriterien: Neue Tickets erscheinen, ohne dass das Grid von Grund auf neu gebunden wird; bestehende Tickets werden an Ort und Stelle aktualisiert; die ausgewählte Zeile bleibt erhalten, solange die Zeile noch existiert; die Update-Rate bleibt kontrolliert; Sie können erklären, warum die gebundene Liste der Session gehört.

Modul 6: Push an mehrere Benutzer mit Services und Event-Hubs

Modul 6 von Echtzeit-Apps mit Server-Push – der Echtzeit-Lernpfad von Wisej.NET. Lesen Sie den Lektionsleitfaden und den Lab- und Prüfungsleitfaden, sehen Sie sich den Video-Walkthrough „Von einer Session zu vielen: TicketHub-Events“ an, bestehen Sie den Wissenstest und schließen Sie dann das Praxis-Lab in TicketOps Live ab.

  1. LektüreLektionsleitfaden · 14 Min.

    Push an mehrere Benutzer: Ein globaler Event-Hub löst Domain-Events aus, während jede Session ihre eigene UI in ihrem eigenen Kontext aktualisiert. Das Konzept, das mentale Modell und die Fallstricke im Produktivbetrieb – lesen Sie das vor dem Lab.

    Lektionsleitfaden lesen (PDF)

  2. LektüreLab- und Prüfungsleitfaden · 10 Min.

    Was Sie im Praxis-Lab bauen, die Aufgaben, die vorgeschlagene Implementierung und die Abnahmekriterien.

    Lektionsleitfaden lesen (PDF)

  3. VideolektionVon einer Session zu vielen: TicketHub-Events · 13 Min.

    Von einer Session zu vielen: TicketHub-Events – ein geführter Video-Walkthrough zu Modul 6, den Sie direkt hier im Player ausführen können.

    Transkript der Sprecherstimme

    Erweitern Sie Ticketaktualisierungen über Sitzungen hinweg, ohne dem Shared Hub die Eigentümerschaft für seine Bildschirme zu übertragen. Ein Geschäftsereignis kann mehrere Vorgesetzte erreichen, aber jede Sitzung muss ihre eigenen sichtbaren Änderungen vornehmen.

    Behalten Sie die Kontrolle über die Seite, den Kontext mit der Sitzung und die freigegebenen Daten mit dem Dienst. Das Speichern von Formularen im globalen Hub würde die Lebensdauer vermischen und eine saubere Sitzungsfreigabe verhindern.

    Erstellen Sie neben der Benachrichtigungsliste und der Mandantenbezeichnung explizite Befehle zum Abonnieren und Abbestellen. Diese Diagnosen machen den Empfängerbereich und die Abonnementlebensdauer beim Testen des Hubs sichtbar.

    Lassen Sie das freigegebene TicketHub Ereignisse veröffentlichen und Snapshots sicher über Threads hinweg bereitstellen. Es kann keinen Anwendungskontext auswählen, da es Eigentümer gemeinsam genutzter Informationen und nicht der Sitzung eines bestimmten Benutzers ist.

    Erfassen Sie den Kontext, laden Sie den Snapshot und verarbeiten Sie Ereignisse im Sitzungskontext. Prüfen Sie vor Änderungen an den Steuerelementen, ob diese bereits freigegeben wurden, und kontrollieren Sie die Mandantenmetadaten. Melden Sie das Abonnement ab, wenn der Besitzer der Sitzung beendet wird.

    Vergleichen Sie die Empfänger, wenn jedes Ereignis veröffentlicht wird. Contoso- und Northwind-Updates bleiben innerhalb ihrer vorgesehenen Sitzungen und durch das Schließen eines Abonnenten wird dieser aus der späteren Zustellung entfernt.

    Übertragen Sie Routing-Metadaten mit dem Ereignis und wenden Sie die Filterrichtlinie des Empfängers an. Wenn Ereignisse schneller eintreffen, als das Rendering verarbeiten kann, erhöhen Sie den Gegendruck, anstatt einen unbegrenzten Rückstand zuzulassen.

    Fügen Sie dem Hub ein Metadatenfeld und eine Filterregel hinzu und dokumentieren Sie dann die Bereinigung des Abonnements. Zeigen Sie sowohl korrekte Empfänger als auch das Entfernen von Empfängern an, deren Sitzung beendet wurde.

  4. LektüreKI-Coding-Übung · 20 Min.

    Erstellen Sie das Beispielprojekt TicketOpsLive dieses Moduls mit ChatGPT oder Claude aus einem fertigen Prompt, der das Modell auf die Spezifikation des Moduls verweist – und prüfen, starten und erweitern Sie dann, was Sie erhalten, auch im Vergleich mit unserem eigenen Referenz-Build auf GitHub.

    Lektionsleitfaden lesen (PDF)

  5. WissenstestWissenstest – Modul 6 · 10 Min. · Bestehensgrenze 80%
  6. Praktisches LabLab – TicketHub und Benachrichtigungen für mehrere Benutzer erstellen · 45 Min.

    Ziel: Überführen Sie die Ticket-Simulation per Refactoring in einen globalen `TicketHub`-Service und sorgen Sie dafür, dass mehrere Browser-Sessions Live-Ticket-Events empfangen. Abnahmekriterien: Der Hub speichert keine Referenzen auf Pages oder Controls; jede Session aktualisiert ihre eigene gebundene Liste; das Schließen oder Neuladen einer Session hinterlässt keinen defekten Abonnenten; mehrere Sessions können unterschiedliche Filter anzeigen und dabei dieselbe Quelle für Domain-Events nutzen; Sie können den Unterschied zwischen Broadcast und gezieltem Update erklären.

Modul 7: Härtung für die Produktion, Deployment und Abschlussprojekt

Modul 7 von Echtzeit-Apps mit Server-Push – der Echtzeit-Lernpfad von Wisej.NET. Lesen Sie den Lektionsleitfaden und den Lab- und Prüfungsleitfaden, sehen Sie sich den Video-Walkthrough „Produktiv-Review: vom Demo-Push zur auslieferbaren Echtzeit-App“ an, bestehen Sie den Wissenstest und schließen Sie dann das Praxis-Lab in TicketOps Live ab.

  1. LektüreLektionsleitfaden · 14 Min.

    Härtung für den Produktivbetrieb: vor dem Deployment den gesamten WebSocket-Pfad, Sticky Sessions, Health-Checks, Sicherheit und Beobachtbarkeit prüfen. Das Konzept, das mentale Modell und die Fallstricke im Produktivbetrieb – lesen Sie das vor dem Lab.

    Lektionsleitfaden lesen (PDF)

  2. LektüreLab- und Prüfungsleitfaden · 10 Min.

    Was Sie im Praxis-Lab bauen, die Aufgaben, die vorgeschlagene Implementierung und die Abnahmekriterien.

    Lektionsleitfaden lesen (PDF)

  3. VideolektionProduktiv-Review: vom Demo-Push zur auslieferbaren Echtzeit-App · 13 Min.

    Produktiv-Review: vom Demo-Push zur auslieferbaren Echtzeit-App – ein geführter Video-Walkthrough zu Modul 7, den Sie direkt hier im Player ausführen können.

    Transkript der Sprecherstimme

    Sehen Sie sich TicketOps Live als bereitgestellten Dienst an, nicht nur als erfolgreiche Demonstration. Verbindungshandhabung, Sitzungsbesitz, Bereinigung und Diagnose bestimmen, ob das Live-Verhalten reale Betriebsbedingungen übersteht.

    Überprüfen Sie die WebSocket-Unterstützung bei jedem Netzwerk-Hop und bewahren Sie die Sitzungsaffinität. Ein funktionierender Serverendpunkt reicht nicht aus, wenn ein Proxy Upgrades blockiert oder die Sitzung an eine andere Instanz weiterleitet.

    Fügen Sie eine Diagnoseseite mit regelmäßig aktualisierten Gesundheitsetiketten hinzu. Bediener benötigen einen sichtbaren Überblick über das aktuelle Verhalten der Anwendung und nicht auf Annahmen, die auf der beabsichtigten Konfiguration basieren.

    Rendern Sie den Zustands-Snapshot, sodass Transportmodus, aktive Abonnements und Aktualisierungsrate zusammen sichtbar sind. Ihre Beziehung hilft zu erklären, ob Rückfall oder übermäßige Aktivität den Betrieb beeinträchtigen.

    Wählen Sie Zeitüberschreitungen, Abfrageintervalle und Integritätsgrenzen für die Bereitstellung. Schulungseinstellungen veranschaulichen die Optionen, aber die Produktivwerte müssen die tatsächliche Arbeitsbelastung und Infrastruktur widerspiegeln.

    Beobachten Sie das Integritätsfenster, wenn der Proxy ein WebSocket-Upgrade blockiert. Durch den Wechsel zur Abfrage bleiben Aktualisierungen verfügbar und der beeinträchtigte Transport wird explizit angezeigt, anstatt einen stillen Fehler anzuzeigen.

    Überprüfen Sie Kündigung, Abmeldung, Drosselung, Kontext, Fallback, Affinität und Sicherheit gemeinsam. Eine fehlende Lebenszyklusregel kann einen ansonsten korrekten Ereignisfluss nach Ende der Demonstration beeinträchtigen.

    Liefern Sie die Konsole mit der vollständigen Checkliste ab und erläutern Sie die Eigentumsentscheidungen. Verteidigen Sie, wie Sitzungen, Bereinigung, Aktualisierungsrhythmus und Bereitstellungseinstellungen das tatsächlich beobachtete Verhalten der Benutzer unterstützen.

  4. LektüreKI-Coding-Übung · 20 Min.

    Erstellen Sie das Beispielprojekt TicketOpsLive dieses Moduls mit ChatGPT oder Claude aus einem fertigen Prompt, der das Modell auf die Spezifikation des Moduls verweist – und prüfen, starten und erweitern Sie dann, was Sie erhalten, auch im Vergleich mit unserem eigenen Referenz-Build auf GitHub.

    Lektionsleitfaden lesen (PDF)

  5. WissenstestWissenstest – Modul 7 · 10 Min. · Bestehensgrenze 80%
  6. Praktisches LabLab – Das produktionsreife Abschlussprojekt TicketOps Live fertigstellen · 45 Min.

    Ziel: Stellen Sie TicketOps Live fertig und bereiten Sie die Anwendung auf ein Architektur-Review für den Produktivbetrieb vor. Abnahmekriterien: Die Anwendung läuft ohne doppelte Schleifen oder doppelte Abonnements; die UI bleibt während der Hintergrundverarbeitung reaktionsfähig; jede lang laufende Operation hat die Zustände Abschluss, Abbruch und Fehler; der Hub für mehrere Benutzer hält keine direkten Referenzen auf Pages oder Controls; gebundene Grids werden inkrementell aktualisiert; Sie können alle Annahmen zum Deployment begründet vertreten.