myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Web-Technologien » SignalR mit API - welches Konzept
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

SignalR mit API - welches Konzept

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
emuuu
myCSharp.de-Mitglied

avatar-4078.jpg


Dabei seit: 04.02.2011
Beiträge: 276


emuuu ist offline

SignalR mit API - welches Konzept

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Guten Tag zusammen,

ich habe mich bisher noch wenig Erfahrung mit Echtzeit-Apps und hätte mal eine konzeptionelle Frage:
Ich habe eine WebApp die ihre Daten aus einer API bezieht.

Nun möchte ich für längere Tasks (Generierung von Berichten, Datenanalyse blablub) gerne eine Echtzeit-Fähigkeit implementieren, die dem User im Browser eine Push-Message anzeigt "Task XY finished, documents rdy".

Meinem Verständnis nach ist SignalR für die Kommunikation zwischen dem Service der WebApp und dem Browser des Users gedacht.
Nun ist die Frage: Woher weiß die WebApp, dass der Task in der API abgeschlossen ist? Kann ich hierfür einfach in der API ebenfalls einen SignalR-Hub aufsetzen in der die WebApp sich anmeldet?

Oder soll ich dem Browser sagen, dass er direkt die API als Hub benutzen soll? (klingt für mich nach einem konzeptbruch).

Beste Grüße
emuuu
Neuer Beitrag 20.02.2020 11:56 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 14.280
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Es gibt prinzipiell nicht nur eine konzeptionelle Richtung; da spielt auch viel das Verhalten des Frontends rein.

Was Du hier beschreibst ist eine asynchrone Kommunikation mit einem Eventverhalten; zB. CQS bzw CQRS - das wohl verbreiteste Konzept dazu.
Auf der anderen Seite basiert Dein Verständnis hier offenbar noch auf dem typischen Request-Response-Verhalten; und das passt nicht.
Das sind einfach zwei verschiedene Konzepte.

Technisch:
SignalR erstellt Hubs als Singleton.
Du kannst also problemlos mit Events in .NET den Hub konsumieren und so den Client informieren.

Wenn Du das mit klassischen Code Pattern machst, dann endet das aber oft in einem Depenendecy Chaos.
Daher musst Du bei Event Sourcing wie CQRS eben auch eine andere Software Architektur fahren damit es sauber(er) wird.

In .NET ist der am weitesten verbreitete Pattern dazu der Mediator-Pattern; dazu gibt es für InProcess-Handling das MediatR Projekt.
Neuer Beitrag 20.02.2020 12:27 Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 8 Monate.
Der letzte Beitrag ist älter als 8 Monate.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 24.10.2020 05:06