web-dev-qa-db-fra.com

Est-il correct d'utiliser SignalR pour les applications de bureau?

SignalR convient-il aux applications de bureau Windows (winforms/wpf)?

Quels sont les avantages et les inconvénients de SignalR avec les applications de bureau Windows?

Y a-t-il des considérations de performances?

Je souhaite établir des connexions en temps réel entre le serveur et de nombreux clients. Les connexions seront constantes.

23
Seçkin Durgay

SignalR convient-il aux applications de bureau Windows (winforms/wpf)?

La réponse de signalr.net est:

SignalR peut être utilisé pour ajouter n'importe quelle sorte de fonctionnalité Web "en temps réel" à votre application ASP.NET.

(Comme indiqué correctement par d'autres, il peut être auto-hébergé, donc pas besoin d'IIS )

La réponse semble donc être non . Il s'agit d'une API côté serveur. Mais aujourd'hui, c'est votre jour de chance, car le téléchargement de SignalR révèle non seulement l'API côté serveur, mais aussi une API côté client appelée Microsoft.AspNet.SignalR.Client45 à utiliser dans votre application. Cela fonctionne pour WPF, WF ou même des applications de console.

Et même si ce n'était pas le cas, SignalR n'est qu'un wrapper autour du protocole WebSockets , qui fait partie du protocole HTTP, qui peut être utilisé sur pratiquement n'importe quelle plate-forme. Le téléchargement contient également un exemple pour iOS et Xamarin par exemple.

Quels sont les avantages et les inconvénients de SignalR avec les applications de bureau Windows?

Pour avoir des notifications en temps réel depuis et vers le serveur.

Y a-t-il des problèmes de performances?

C'est une question difficile à répondre, car il n'y a pas de point de référence. Par rapport à ce que les performances sont bonnes ou mauvaises? D'une manière générale, je ne pense pas que vous ayez à vous en préoccuper trop. L'API elle-même est rapide et peut empêcher les demandes d'extraction lentes que vous devez faire autrement.

20
Patrick Hofman

Il est absolument correct de consommer le concentrateur SinglarR dans n'importe quelle application cliente, WPF, téléphone Windows, UWP, iOS, Android, y compris HTML. Microsoft a créé des bibliothèques clientes sur de nombreuses plateformes.

En ce qui concerne l'hébergement de SignalR, vous pouvez définitivement héberger votre serveur SingalR (hub) dans l'application WPF, mais vous avez besoin d'une raison:

La raison peut être:

  • IIS n'est pas disponible
  • Vous ne savez pas à l'avance où l'APP sera utilisée. Vous avez juste besoin d'exécuter une application qui avertira les autres applications
  • Performances - IIS ajoute une surcharge de performances.

Soit dit en passant, SignalR et OWIN ont été une source d'inspiration pour le nouveau ASP.NET 5. Vous pouvez désormais héberger vos applications ASP.NET dans WPF, application console ou application de service Windows sans IIS, ou même sous Linux.

http://www.asp.net/signalr/overview/deployment/tutorial-signalr-self-Host

9
Liero

Dans une configuration avec un serveur et de nombreux clients: si vous avez besoin de notifications "Push" du serveur à certains clients, SignalR est bon à utiliser.

Je le fais avec les clients WPF.

4
DrKoch

Lorsque vous créez un site Web avec la fonctionnalité signalr, vous disposez d'un serveur signalR, où le site est hébergé et d'un client signalr, le client javascript qui s'exécute dans le navigateur Web qui parcourt le site.

Depuis des années immémoriales, les navigateurs Web étaient (et sont toujours) ... enfin, ... des applications de bureau ...

Vous disposez donc d'applications de bureau (le navigateur Web) qui utilisent SignalR pour se connecter à un site Web (le serveur Web).

Ainsi, non seulement il est correct d'utiliser signalR pour les applications de bureau, mais c'est à cela qu'il est destiné. Je ne sais vraiment pas quelle serait l'utilité de signalR s'il ne devait pas être utilisé dans une application de bureau à un moment donné, car, franchement, un utilisateur est assis devant un bureau (ou un appareil intelligent), et ne le fait pas n'existent pas "dans le cloud" (sauf si vous êtes Neo de Matrix). Avec signalR, vous avez des réactions "en temps réel" du serveur présenté dans votre environnement de bureau (un navigateur Web ou une autre application de bureau, par exemple une application qui contrôle les lumières de votre maison ou imprime quelque chose dans votre imprimante).

0
Thanasis Ioannidis