Oguzhan Acikgöz Computacenter AG & Co. oHG

„SignalR zeigt hervorragend, wie man mit wenig Aufwand eine erheblich höhere Usability und eine bessere Akzeptanz eines Produkts beim Endanwender erschaffen kann.“

Mit diesem Artikel wird veranschaulicht, wie man in einer ASP.NET-MVC-Anwendung bidirektional, also zwischen Client und Server und vice versa, kommunizieren kann. Dazu legen wir den Fokus auf SignalR, ein Framework, das uns hilft, von der Serverseite aus den Client anzusprechen. Fortgeschrittenen Entwicklern wird eine Architektur demonstriert, die einen Verzicht auf die Hub-Schnittstelle von SignalR ermöglicht und stattdessen auf eine Web-API-Schnittstelle setzt.

Bidirektionale Webanwendungen verwenden wir immer dann, wenn die Anwendung in Echtzeit mit dem Nutzer interagiert. Das klassische Beispiel dafür ist nach wie vor eine Chatfunktion, über die unverzüglich Nachrichten gesendet und empfangen werden können, ohne dass der Browser einen Refresh benötigt. Natürlich ist das Spektrum von Real-Time-Anwendungen nicht auf eine Chatfunktion beschränkt. Spiele, die ohne Flash-Player im Browser laufen, die Fortschrittsanzeige einer Aktion, die serverseitig verarbeitet wird, oder das Senden von Benachrichtigungen in Echtzeit an alle Nutzer sind Beispiele für eine bidirektionale Anwendung.

In der gegenwärtigen Zeit ist die Usability einer Anwendung ein signifikanter Faktor für den Erfolg und die Akzeptanz der Anwendung bei Nutzern. Ein essenzielles Fragment stellt hierbei die Interaktion unserer Anwendung mit dem User dar. Wichtig ist zu verstehen, dass potenzielle Nutzer unserer Anwendung bereits moderne Plattformen wie Google+, Facebook, Twitter oder auch Dropbox kennen. All diese Anwendungen ermöglichen unmittelbar nach dem Ausführen einer Aktion – beispielweise dem Posten einer Nachricht – dass alle Beteiligten in Echtzeit diese Nachricht empfangen. Wenn die Akzeptanz unserer Businessanwendung innerhalb unseres Intranets maximiert werden soll, muss die vertraute Atmosphäre in unseren Anwendungen gleichermaßen implementiert sein.

Bedeutung von Echtzeit in Webanwendungen

Im Umfeld von bidirektionalen Webanwendungen ist die permanente Begegnung mit den Begriffen „Real Time“ oder „Echtzeit“ unumgänglich. Um zu verstehen, wodurch das begründet ist, muss ein detaillierter Blick auf das HTTP-Protokoll geworfen werden. Bei diesem handelt es sich um ein stateless, zu Deutsch zustandsloses, Protokoll, das Webseiten bzw. Webanwendungen aus dem Web in unseren Webbrowser lädt. Stateless bedeutet so viel wie: „Jede Anfrage-Antwort-Kommunikation (Request-Response) wird isoliert und unabhängig ausgeführt“. Implizit, bezogen auf unsere ASP.NET-MVC-Anwendung, hat das zur Bedeutung, dass jeder clientseitige Request (Anfrage) eine Response (Antwort) vom Server erhält und die Kommunikation damit abgeschlossen ist.

Mit dieser Art von Kommunikation sind Echtzeitanwendungen folglich nicht realisierbar, da der Server in keinem Fall die Kommunikation mit dem Client beginnen kann und bei der Kommunikation auf das Antworten von Anfragen limitiert ist. Wie lassen sich trotz alledem Echtzeitanwendungen im Webumfeld implementieren? Ich werde im Folgenden einen Ausschnitt potenzieller Techniken zur Bewältigung des oben aufgeführten Problems vorstellen. Dabei differenziere ich zwischen dem veralteten Comet-Modell und den aktuelleren HTML5-Technologien. Ich lege deshalb den Fokus auf diese Details, weil dadurch einfacher zu verstehen ist, warum SignalR eine sehr gute Reputation hat und die erste Wahl in ASP.NET-Anwendungen ist.

Den vollständigen Artikel lesen Sie in der Ausgabe:

PHP Magazin 6.16 - "Hello Chatbot"

Alle Infos zum Heft
274678ASP.NET-MVC-Anwendungen: Senden & empfangen mit SignalR
X
- Gib Deinen Standort ein -
- or -