App in tempo reale con server push
La maggior parte delle schermate gestionali aspetta che l'utente faccia clic su aggiorna. Questo corso ti insegna a costruire app Wisej.NET che si aggiornano da sole — inviando le modifiche dal server a ogni browser connesso nell'istante in cui qualcosa accade — il tutto attorno al progetto realistico TicketOps Live. Sette moduli trattano l'architettura web in tempo reale, il contesto applicativo e il ciclo di vita della sessione, il server push per una singola sessione con attività in background, timer e polling di riserva per la cadenza degli aggiornamenti, data binding dal vivo e griglie in tempo reale, e il push multiutente tramite servizi ed event hub — prima di irrobustire tutto per la produzione e consegnare il capstone. È per sviluppatori a loro agio con le basi che vogliono push via WebSocket, lavoro in background e dati dal vivo fatti alla maniera di Wisej.NET.
Push via WebSocket, attività in background, polling di riserva e data binding dal vivo per app Wisej.NET che si aggiornano da sole — costruito sul progetto TicketOps Live.
- Livello: Intermediate
- Durata: 8 ore
- Moduli: 7
Programma
Modulo 1: Architettura web in tempo reale in Wisej.NET
Modulo 1 di App in tempo reale con server push — il percorso in tempo reale di Wisej.NET. Leggi la guida della lezione e la guida al lab / esame, guarda la videoguida “Push via WebSocket o polling: costruisci il modello mentale”, supera la verifica delle conoscenze e completa il lab pratico in TicketOps Live.
- LetturaGuida della lezione · 14 min
L'architettura in tempo reale guidata dal server: push via WebSocket, aggiornamenti nella richiesta e polling di riserva nel modello lato server di Wisej.NET. Il concetto, il modello mentale e le insidie in produzione — leggilo prima del lab.
- LetturaGuida al lab / esame · 10 min
Che cosa costruirai nel lab pratico, le attività, l'implementazione suggerita e i criteri di accettazione.
- Lezione videoPush via WebSocket o polling: costruisci il modello mentale · 13 min
Push via WebSocket o polling: costruisci il modello mentale — una videoguida del Modulo 1 che puoi eseguire direttamente qui nel player.
Trascrizione della narrazione
Utilizzare TicketOps Live per esaminare il modo in cui una schermata operativa riceve le modifiche. La distinzione importante è ciò che attiva un aggiornamento, perché determina se il browser deve richiederlo.
Il server possiede i controlli e il loro stato; il browser presenta i loro widget. Wisej.NET sincronizza le modifiche tra loro, consentendo all’elaborazione in background di fornire aggiornamenti visibili tramite WebSocket.
Durante la richiesta di un pulsante, modificare normalmente l'etichetta. Wisej.NET include tale modifica nella sua risposta, quindi una chiamata di aggiornamento esplicita non sarebbe necessaria per questa azione associata alla richiesta.
L’elaborazione in background non ha una risposta al pulsante in sospeso per apportare le modifiche. Dopo aver aggiornato i controlli nell'attività della sessione, inviare esplicitamente le modifiche tramite la connessione WebSocket esistente.
Confronta il clic con la sequenza dello sfondo. Si viaggia con una richiesta di risposta; l'altro arriva man mano che il lavoro procede, mentre il polling fornisce un fallback quando WebSocket non è disponibile.
Scegli un meccanismo in base al suo grilletto. Le risposte alle richieste seguono le azioni dell'utente, il push segue gli eventi del server e il polling controlla ripetutamente anche quando non si è verificato alcun nuovo evento.
Aggiungi connessione e aggiorna lo stato alla console. Spiegare i meccanismi selezionati nella nota sull'architettura in modo che utenti e manutentori possano capire come le informazioni attuali raggiungono lo schermo.
- LetturaEsercizio di coding con l'IA · 20 min
Costruisci il progetto TicketOpsLive di questo modulo con ChatGPT o Claude partendo da un prompt già pronto che indirizza il modello alla specifica del modulo, poi rivedi, esegui ed estendi quello che ti restituisce — confrontandolo anche con la nostra build di riferimento su GitHub.
- VerificaVerifica delle conoscenze — Modulo 1 · 10 min · Soglia di superamento 80%
- Laboratorio praticoLab — Costruisci la pagina di stato dal vivo · 45 min
Obiettivo: Crea la prima schermata di TicketOps Live: una pagina con una barra di stato dal vivo, una label con l'orologio, un indicatore di avanzamento e un heartbeat simulato del server che aggiorna il browser senza alcun clic dell'utente. Criteri di accettazione: la UI si aggiorna una volta al secondo dopo che lo studente fa clic su Start; il browser mostra le modifiche senza clic aggiuntivi; Stop disattiva il ciclo entro un secondo; avviare due volte non crea due cicli in concorrenza; il codice verifica se la pagina è stata eliminata (disposed).
Modulo 2: Contesto applicativo, sessioni e ciclo di vita
Modulo 2 di App in tempo reale con server push — il percorso in tempo reale di Wisej.NET. Leggi la guida della lezione e la guida al lab / esame, guarda la videoguida “Chi possiede la UI: sessioni, contesto, uscita e timeout”, supera la verifica delle conoscenze e completa il lab pratico in TicketOps Live.
- LetturaGuida della lezione · 14 min
Sessioni, contesto applicativo e ciclo di vita: gestisci la UI dell'utente giusto, evita la trappola dei campi statici e fai pulizia all'uscita e al timeout. Il concetto, il modello mentale e le insidie in produzione — leggilo prima del lab.
- LetturaGuida al lab / esame · 10 min
Che cosa costruirai nel lab pratico, le attività, l'implementazione suggerita e i criteri di accettazione.
- Lezione videoChi possiede la UI: sessioni, contesto, uscita e timeout · 13 min
Chi possiede la UI: sessioni, contesto, uscita e timeout — una videoguida del Modulo 2 che puoi eseguire direttamente qui nel player.
Trascrizione della narrazione
Apri l'esempio in due schede del browser per separare l'identità dalla proprietà della sessione. Lo stesso utente che ha effettuato l'accesso può avere istanze di interfaccia distinte che non devono condividere lo stato accidentale.
Distinguere l'utente, la sessione, il thread in esecuzione, il contesto dell'applicazione e il servizio condiviso. Un thread può servire diversi eventi; non è l'oggetto che possiede i controlli di un utente.
Disporre le etichette delle sessioni, l'elenco del ciclo di vita e i comandi nel Designer. Nomi di controllo significativi aiutano a connettere ogni diagnostica visibile al relativo gestore durante l'ispezione del codice del ciclo di vita.
Visualizza insieme gli identificatori di sessione e thread. Una sessione stabile insieme alla modifica dei thread rende visibili le loro diverse durate e spiega perché l'identità del thread non può identificare il proprietario dell'interfaccia.
Cattura il contesto dell'applicazione quando la pagina viene caricata e utilizzalo per aggiornamenti successivi. La guardia dispone dei controlli e annulla l'iscrizione all'uscita in modo che i callback in background non sopravvivano al loro proprietario.
Confronta i registri del ciclo di vita in entrambe le schede. La chiusura di uno rilascia la sottoscrizione mentre l'altro continua, dimostrando la pulizia limitata a una sessione anziché a un arresto globale.
Posiziona ciascun valore con il suo effettivo proprietario. I controlli e i servizi di sessione mantengono lo stato della sessione; i servizi condivisi a livello globale non devono memorizzare un utente corrente in campi statici.
Costruisci l'ispettore e scrivi una regola di pulizia per ogni sottoscrizione e attività. Il registro risultante dovrebbe rendere comprensibili sia la creazione che il rilascio del lavoro di proprietà della sessione.
- LetturaEsercizio di coding con l'IA · 20 min
Costruisci il progetto TicketOpsLive di questo modulo con ChatGPT o Claude partendo da un prompt già pronto che indirizza il modello alla specifica del modulo, poi rivedi, esegui ed estendi quello che ti restituisce — confrontandolo anche con la nostra build di riferimento su GitHub.
- VerificaVerifica delle conoscenze — Modulo 2 · 10 min · Soglia di superamento 80%
- Laboratorio praticoLab — Costruisci un ispettore di sessione e un logger del ciclo di vita · 45 min
Obiettivo: Aggiungi un pannello diagnostico che aiuti lo sviluppatore a vedere la sessione corrente, il contesto applicativo, i dettagli del browser e gli eventi del ciclo di vita rilevanti per gli aggiornamenti in tempo reale. Criteri di accettazione: il contatore è specifico della sessione, non statico; un aggiornamento in background modifica la sessione del browser corretta; il pannello diagnostico mostra quando arriva l'aggiornamento in background; lo studente sa spiegare che cosa succede dopo un refresh e dopo il timeout della sessione.
Modulo 3: Server push per una singola sessione con attività in background
Modulo 3 di App in tempo reale con server push — il percorso in tempo reale di Wisej.NET. Leggi la guida della lezione e la guida al lab / esame, guarda la videoguida “Avanzamento senza aggiornare: monitor delle importazioni in background”, supera la verifica delle conoscenze e completa il lab pratico in TicketOps Live.
- LetturaGuida della lezione · 14 min
Push per una singola sessione: esegui il lavoro lungo fuori dal gestore del clic, segnala l'avanzamento, supporta l'annullamento cooperativo e ripristina la UI nel finally. Il concetto, il modello mentale e le insidie in produzione — leggilo prima del lab.
- LetturaGuida al lab / esame · 10 min
Che cosa costruirai nel lab pratico, le attività, l'implementazione suggerita e i criteri di accettazione.
- Lezione videoAvanzamento senza aggiornare: monitor delle importazioni in background · 13 min
Avanzamento senza aggiornare: monitor delle importazioni in background — una videoguida del Modulo 3 che puoi eseguire direttamente qui nel player.
Trascrizione della narrazione
Sposta l'importazione lunga in un'attività di proprietà della relativa sessione. La pagina può rimanere reattiva mentre arrivano i progressi, invece di far attendere l'utente per una lunga richiesta.
Tratta l'operazione come un ciclo di vita: prepara controlli e cancellazioni, avvia l'attività, segnala i progressi limitati e ripristina l'interfaccia al completamento. Ogni uscita necessita della stessa pulizia.
Costruisci il monitor con avanzamento, conteggi, cronologia e comandi espliciti. Questi controlli rispondono a diverse domande: a che punto è l'avanzamento del lavoro, cosa è successo e cosa può fare l'utente dopo.
Crea lo stato di annullamento prima di avviare l'attività della sessione, quindi ritorna dal clic. Ciò conferisce nuovamente al browser il controllo mentre l'operazione continua nel contesto dell'applicazione corretto.
Controlla la cancellazione in modo cooperativo all'interno del ciclo. Aggiorna l'avanzamento interno per record ma trasmetti ogni dieci record; rileva gli errori e ripristina i controlli in finally in modo che nessun risultato lasci Start disabilitato.
Osserva l'errore simulato dopo gli aggiornamenti sull'avanzamento in tempo reale. Registrare i dettagli diagnostici separatamente dal messaggio dell'utente sicuro, quindi ripristinare Avvia per rendere l'operazione non riuscita recuperabile dall'interfaccia.
Raggruppa modifiche visibili e limita le trasmissioni dei progressi, ma invia immediatamente il completamento. Gli utenti hanno bisogno di un risultato finale affidabile più che di un aggiornamento di rete separato per ogni record elaborato.
Annullamento del test, fallimento intenzionale, tempo trascorso e riepilogo finale nel monitor completato. Ogni percorso dovrebbe terminare con uno stato comprensibile e controlli pronti per l'azione successiva.
- LetturaEsercizio di coding con l'IA · 20 min
Costruisci il progetto TicketOpsLive di questo modulo con ChatGPT o Claude partendo da un prompt già pronto che indirizza il modello alla specifica del modulo, poi rivedi, esegui ed estendi quello che ti restituisce — confrontandolo anche con la nostra build di riferimento su GitHub.
- VerificaVerifica delle conoscenze — Modulo 3 · 10 min · Soglia di superamento 80%
- Laboratorio praticoLab — Costruisci un monitor delle importazioni in background · 45 min
Obiettivo: Aggiungi a TicketOps Live un pannello realistico per un'importazione di lunga durata. L'utente può avviare un'importazione, seguirne l'avanzamento, annullarla e controllarne il risultato. Criteri di accettazione: gli aggiornamenti di avanzamento compaiono mentre l'operazione è in corso; l'annullamento funziona e lascia la UI utilizzabile; l'errore viene segnalato senza esporre stack trace grezzi; l'aggiornamento finale arriva sempre al browser se la sessione è ancora attiva; il codice non fa più push del necessario.
Modulo 4: Timer, polling di riserva e cadenza degli aggiornamenti
Modulo 4 di App in tempo reale con server push — il percorso in tempo reale di Wisej.NET. Leggi la guida della lezione e la guida al lab / esame, guarda la videoguida “Quando il push non basta: cadenza, timer e soluzioni di riserva”, supera la verifica delle conoscenze e completa il lab pratico in TicketOps Live.
- LetturaGuida della lezione · 14 min
Cadenza degli aggiornamenti e soluzioni di riserva: scegli tra push, timer e polling, accorpa le raffiche di eventi e gestisci il ciclo di vita dei timer per ogni sessione. Il concetto, il modello mentale e le insidie in produzione — leggilo prima del lab.
- LetturaGuida al lab / esame · 10 min
Che cosa costruirai nel lab pratico, le attività, l'implementazione suggerita e i criteri di accettazione.
- Lezione videoQuando il push non basta: cadenza, timer e soluzioni di riserva · 13 min
Quando il push non basta: cadenza, timer e soluzioni di riserva — una videoguida del Modulo 4 che puoi eseguire direttamente qui nel player.
Trascrizione della narrazione
Scegli una frequenza di aggiornamento adatta all'evento aziendale. Rendere immediatamente visibile ogni cambiamento interno può consumare risorse senza aiutare la persona a leggere lo schermo.
Abbina il meccanismo al lavoro: push per eventi, un timer Wisej.NET per aggiornamenti periodici e un'attività per una singola operazione. Il sondaggio rimane un’alternativa quando necessario.
Costruisci i controlli dell'intervallo insieme alle etichette di stato visibili. La visualizzazione della strategia selezionata consente di collegare l'impostazione di un utente al comportamento di aggiornamento risultante.
Applicare l'intervallo scelto al timer applicando il minimo. La casella di controllo del polling controlla se vengono eseguite richieste ripetute, rendendo questo fallback una scelta operativa esplicita.
Lascia che gli eventi in arrivo contrassegnino i dati come sporchi, quindi aggiornali una volta per ogni tick del timer. Ciò combina una serie di modifiche al modello in un utile aggiornamento dell'interfaccia.
Confronta gli intervalli di aggiornamento visualizzati e i relativi compromessi in termini di risorse. Un feedback più rapido crea più lavoro; un feedback più lento può sembrare stantio, mentre il polling preserva la consegna quando WebSocket scompare.
Mantieni le modifiche al modello, il rendering, il push e il polling su pianificazioni distinte. Gestisci l'avvio e lo spegnimento del timer ed evita che i tick sovrapposti creino aggiornamenti simultanei incontrollati.
Scrivi una politica di cadenza per tre funzionalità con una frequenza predefinita e massima. I controlli e il fallback dovrebbero implementare tali limiti deliberati anziché incoraggiare un aggiornamento senza restrizioni.
- LetturaEsercizio di coding con l'IA · 20 min
Costruisci il progetto TicketOpsLive di questo modulo con ChatGPT o Claude partendo da un prompt già pronto che indirizza il modello alla specifica del modulo, poi rivedi, esegui ed estendi quello che ti restituisce — confrontandolo anche con la nostra build di riferimento su GitHub.
- VerificaVerifica delle conoscenze — Modulo 4 · 10 min · Soglia di superamento 80%
- Laboratorio praticoLab — Aggiungi il polling di riserva e i controlli di cadenza · 45 min
Obiettivo: Estendi TicketOps Live con un timer di aggiornamento della dashboard e con i controlli per sperimentare la cadenza degli aggiornamenti. Criteri di accettazione: la cadenza del timer cambia in modo visibile; il conteggio degli eventi ricevuti può crescere più in fretta di quello degli aggiornamenti della UI applicati; il polling parte e si ferma insieme alla modalità dal vivo; non si verificano tick del timer sovrapposti; lo studente sa spiegare perché l'accorpamento degli aggiornamenti è utile.
Modulo 5: Data binding dal vivo e griglie in tempo reale
Modulo 5 di App in tempo reale con server push — il percorso in tempo reale di Wisej.NET. Leggi la guida della lezione e la guida al lab / esame, guarda la videoguida “Board dei ticket dal vivo: aggiornare i dati senza ricostruire la schermata”, supera la verifica delle conoscenze e completa il lab pratico in TicketOps Live.
- LetturaGuida della lezione · 14 min
Data binding dal vivo: aggiorna le collezioni in binding nel contesto della sessione senza rifare il binding della griglia, mantenendo selezione, ordinamento e scorrimento. Il concetto, il modello mentale e le insidie in produzione — leggilo prima del lab.
- LetturaGuida al lab / esame · 10 min
Che cosa costruirai nel lab pratico, le attività, l'implementazione suggerita e i criteri di accettazione.
- Lezione videoBoard dei ticket dal vivo: aggiornare i dati senza ricostruire la schermata · 13 min
Board dei ticket dal vivo: aggiornare i dati senza ricostruire la schermata — una videoguida del Modulo 5 che puoi eseguire direttamente qui nel player.
Trascrizione della narrazione
Mantieni visibili le modifiche ai ticket in entrata senza riavviare il lavoro dell'utente. Una griglia live ha successo quando riflette nuovi dati preservando il contesto in cui qualcuno sta leggendo o modificando.
Modifica la raccolta rilegata anziché cancellare la griglia. La ricostruzione elimina la selezione, lo scorrimento, l'ordinamento e le modifiche; la notifica al livello di associazione consente allo stato dello schermo esistente di sopravvivere alla modifica dei dati.
Costruisci la griglia attorno alla sua fonte di legame e aggiungi un indicatore di cambiamento silenzioso. Gli utenti devono notare gli aggiornamenti in arrivo senza che una finestra di dialogo di blocco interrompa l'attività corrente.
Lascia che Ticket notifichi le modifiche alle proprietà e conservi i timestamp come valori di data reali. Le notifiche supportano aggiornamenti incrementali, mentre le date digitate preservano scelte di ordinamento e formattazione significative.
Inserisci il contesto della sessione acquisita prima di applicare gli eventi del feed condiviso. Aggiorna qui l'elenco dei collegamenti e invia una notifica ai collegamenti, mantenendo la proprietà corretta ed evitando ripetuti lavori di aggiornamento.
Segui la nuova riga e il ticket risolto mentre la selezione esistente rimane inserita. Il messaggio di conflitto richiede attenzione senza eliminare lo stato dello schermo tramite un ricaricamento.
Utilizza i marcatori temporanei per rivelare le righe modificate senza spostare una modifica attiva. Quando le modifiche sono in conflitto, avvisa l'utente e lascia che sia lui a decidere invece di sostituire silenziosamente il proprio lavoro.
Prova le modifiche in tempo reale con una selezione e un filtro di ticket aperto già attivo. Il forum dovrebbe aggiornare i propri dati mantenendo la posizione dell'utente e il significato previsto dal filtro.
- LetturaEsercizio di coding con l'IA · 20 min
Costruisci il progetto TicketOpsLive di questo modulo con ChatGPT o Claude partendo da un prompt già pronto che indirizza il modello alla specifica del modulo, poi rivedi, esegui ed estendi quello che ti restituisce — confrontandolo anche con la nostra build di riferimento su GitHub.
- VerificaVerifica delle conoscenze — Modulo 5 · 10 min · Soglia di superamento 80%
- Laboratorio praticoLab — Costruisci la board dei ticket dal vivo · 45 min
Obiettivo: Crea una `DataGridView` dal vivo che mostra i ticket di assistenza e si aggiorna quando arrivano eventi simulati sui ticket. Criteri di accettazione: i nuovi ticket compaiono senza rifare da zero il binding della griglia; i ticket esistenti si aggiornano sul posto; la riga selezionata viene mantenuta se la riga esiste ancora; la frequenza degli aggiornamenti resta sotto controllo; lo studente sa spiegare perché la lista in binding appartiene alla sessione.
Modulo 6: Push multiutente con servizi ed event hub
Modulo 6 di App in tempo reale con server push — il percorso in tempo reale di Wisej.NET. Leggi la guida della lezione e la guida al lab / esame, guarda la videoguida “Da una sessione a molte: gli eventi di TicketHub”, supera la verifica delle conoscenze e completa il lab pratico in TicketOps Live.
- LetturaGuida della lezione · 14 min
Push multiutente: un event hub globale solleva eventi di dominio mentre ogni sessione aggiorna la propria UI nel proprio contesto. Il concetto, il modello mentale e le insidie in produzione — leggilo prima del lab.
- LetturaGuida al lab / esame · 10 min
Che cosa costruirai nel lab pratico, le attività, l'implementazione suggerita e i criteri di accettazione.
- Lezione videoDa una sessione a molte: gli eventi di TicketHub · 13 min
Da una sessione a molte: gli eventi di TicketHub — una videoguida del Modulo 6 che puoi eseguire direttamente qui nel player.
Trascrizione della narrazione
Estendi gli aggiornamenti dei ticket tra le sessioni senza dare all'hub condiviso la proprietà dei propri schermi. Un evento aziendale può raggiungere diversi supervisori, ma ogni sessione deve applicare le proprie modifiche visibili.
Mantieni il controllo sulla pagina, il contesto con la sessione e i dati condivisi con il servizio. L'archiviazione dei moduli nell'hub globale mescolerebbe le durate e impedirebbe il rilascio della sessione pulita.
Crea comandi di iscrizione e annullamento espliciti insieme all'elenco delle notifiche e all'etichetta del tenant. Questa diagnostica rende visibili l'ambito dei destinatari e la durata della sottoscrizione durante il test dell'hub.
Consenti allo TicketHub condiviso di pubblicare eventi e fornire istantanee in modo sicuro tra i thread. Non può scegliere un contesto applicativo perché possiede informazioni condivise anziché la sessione di un particolare utente.
Acquisisci il contesto, carica lo snapshot e gestisci gli eventi nel contesto della sessione. Prima di modificare i controlli, verifica che non siano stati rilasciati e controlla i metadati del tenant. Annulla la sottoscrizione quando termina il proprietario della sessione.
Confronta i destinatari quando ogni evento viene pubblicato. Gli aggiornamenti di Contoso e Northwind rimangono entro le sessioni previste e la chiusura di un sottoscrittore lo rimuove dalla consegna successiva.
Porta i metadati di instradamento con l'evento e applica la politica di filtro del destinatario. Quando gli eventi arrivano più velocemente di quanto il rendering possa gestire, aggiungi una contropressione invece di consentire un backlog illimitato.
Aggiungere un campo di metadati e una regola di filtro all'hub, quindi documentare la pulizia della sottoscrizione. Dimostrare sia i destinatari corretti sia la rimozione dei destinatari la cui sessione è terminata.
- LetturaEsercizio di coding con l'IA · 20 min
Costruisci il progetto TicketOpsLive di questo modulo con ChatGPT o Claude partendo da un prompt già pronto che indirizza il modello alla specifica del modulo, poi rivedi, esegui ed estendi quello che ti restituisce — confrontandolo anche con la nostra build di riferimento su GitHub.
- VerificaVerifica delle conoscenze — Modulo 6 · 10 min · Soglia di superamento 80%
- Laboratorio praticoLab — Costruisci TicketHub e le notifiche multiutente · 45 min
Obiettivo: Rifattorizza la simulazione dei ticket in un servizio globale `TicketHub` e fai in modo che più sessioni del browser ricevano gli eventi dei ticket dal vivo. Criteri di accettazione: l'hub non memorizza riferimenti a pagine o controlli; ogni sessione aggiorna la propria lista in binding; chiudere o aggiornare una sessione non lascia indietro un sottoscrittore guasto; più sessioni possono mostrare filtri diversi condividendo la stessa sorgente di eventi di dominio; lo studente sa spiegare la differenza tra aggiornamento broadcast e mirato.
Modulo 7: Irrobustimento per la produzione, rilascio e capstone
Modulo 7 di App in tempo reale con server push — il percorso in tempo reale di Wisej.NET. Leggi la guida della lezione e la guida al lab / esame, guarda la videoguida “Revisione per la produzione: dal push dimostrativo a un'app in tempo reale rilasciabile”, supera la verifica delle conoscenze e completa il lab pratico in TicketOps Live.
- LetturaGuida della lezione · 14 min
Irrobustimento per la produzione: verifica l'intero percorso WebSocket, le sticky session, gli health check, la sicurezza e l'osservabilità prima del rilascio. Il concetto, il modello mentale e le insidie in produzione — leggilo prima del lab.
- LetturaGuida al lab / esame · 10 min
Che cosa costruirai nel lab pratico, le attività, l'implementazione suggerita e i criteri di accettazione.
- Lezione videoRevisione per la produzione: dal push dimostrativo a un'app in tempo reale rilasciabile · 13 min
Revisione per la produzione: dal push dimostrativo a un'app in tempo reale rilasciabile — una videoguida del Modulo 7 che puoi eseguire direttamente qui nel player.
Trascrizione della narrazione
Analizza TicketOps Live come un servizio distribuito, non solo come una dimostrazione di successo. La gestione della connessione, la proprietà della sessione, la pulizia e la diagnostica determinano se il comportamento live sopravvive alle condizioni operative reali.
Controlla il supporto WebSocket attraverso ogni hop di rete e preserva l'affinità della sessione. Un endpoint server funzionante non è sufficiente se un proxy blocca gli aggiornamenti o instrada la sessione a un'altra istanza.
Aggiungi una pagina Diagnostica con etichette di integrità aggiornate periodicamente. Gli operatori necessitano di un resoconto visibile del comportamento attuale dell'applicazione piuttosto che di ipotesi basate sulla configurazione prevista.
Esegui il rendering dello snapshot dell'integrità in modo che la modalità di trasporto, gli abbonamenti attivi e la frequenza di aggiornamento siano visibili insieme. La loro relazione aiuta a spiegare se il fallback o un'attività eccessiva influiscono sul funzionamento.
Scegli timeout, intervalli di polling e limiti di integrità per la distribuzione. Le impostazioni della formazione illustrano le opzioni, ma i valori di produzione devono riflettere il carico di lavoro e l'infrastruttura effettivi.
Guarda il pannello di integrità quando il proxy blocca un aggiornamento WebSocket. Il passaggio al polling mantiene disponibili gli aggiornamenti e rende esplicito il trasporto danneggiato invece di presentare un errore silenzioso.
Esamina insieme la cessazione, l'annullamento dell'iscrizione, la limitazione, il contesto, il fallback, l'affinità e la sicurezza. Una regola del ciclo di vita mancante può compromettere un flusso di eventi altrimenti corretto al termine della dimostrazione.
Consegna la console con la sua lista di controllo completata e spiega le decisioni sulla proprietà. Difendi il modo in cui sessioni, pulizia, cadenza di aggiornamento e impostazioni di distribuzione supportano il comportamento effettivamente osservato dagli utenti.
- LetturaEsercizio di coding con l'IA · 20 min
Costruisci il progetto TicketOpsLive di questo modulo con ChatGPT o Claude partendo da un prompt già pronto che indirizza il modello alla specifica del modulo, poi rivedi, esegui ed estendi quello che ti restituisce — confrontandolo anche con la nostra build di riferimento su GitHub.
- VerificaVerifica delle conoscenze — Modulo 7 · 10 min · Soglia di superamento 80%
- Laboratorio praticoLab — Completa il capstone TicketOps Live pronto per la produzione · 45 min
Obiettivo: Completa TicketOps Live e preparalo per una revisione dell'architettura di produzione. Criteri di accettazione: l'applicazione gira senza cicli duplicati né sottoscrizioni duplicate; la UI resta reattiva durante l’elaborazione in background; ogni operazione di lunga durata ha gli stati di completamento, annullamento ed errore; l'hub multiutente non mantiene riferimenti diretti a pagine o controlli; le griglie in binding si aggiornano in modo incrementale; lo studente sa difendere tutte le ipotesi di rilascio.