2012-02-20 26 views
6

Me gustaría construir una solución de negocio winform utilizando SiganlR, pero no puedo instalar .net 4.0 en la máquina cliente. Parece que SignalR tiene un requisito mínimo de .net 4.0. ¿Cuál es la mejor manera de usar SignalR desde un winform y .net 3.5. Me gustaría incluir las funciones de envío/recepción de mensajes en la aplicación cliente.Cómo usar SignalR con .net 3.5

Seré el anfitrión de SignalR en IIS en mi intranet usando .NET 4.0 en el lado del servidor.

¿Sería posible crear y API (en .net 3.5) similar a pubnub C#? ¿Alguien puede señalarme en la dirección correcta?

Respuesta

8

Si no le da miedo compilar sus propias cosas, he creado una biblioteca cliente .net 2.0 compatible para SignalR. Está disponible directamente desde mi tenedor (https://github.com/robink-teleopti/SignalR) de SignalR.

Por el momento no tengo intención de hacer una solicitud de extracción ya que no quiero agregar esa carga adicional al proyecto original.

Tengo una modificación más en mi horquilla que puede ser útil conocer. Cuando tengo clientes que pertenecen a más de 20 grupos, cambio automáticamente a usar POST en lugar de GET y he hecho modificaciones menores en el lado del servidor para manejar esa parte.

+4

Actualmente, hay un cliente .NET 3.5 en el núcleo de SignalR. De todos modos, aún necesito obtenerlo en el paquete NuGet. Pero fue parte del último lanzamiento. – davidfowl

+0

@davidfowl ¿Recuerdas la versión del paquete si alguna vez fue lanzada? – Mrchief

1

Uno de los autores del proyecto SignalR tenía el objetivo de utilizar TaskParallelLibrary (TPL) incluido en .NET 4. Por lo tanto, dudo que el código C# de ese proyecto se ejecute en .NET 3.5. ¿Por qué no alojar un punto final WCF de TCP o named-pipes en el servidor y utilizar devoluciones de llamada normales de clientes .NET? Esto es relativamente fácil si el servidor es Windows Server 2008 con WAS o AppFabric.

Si es un servidor anterior, puede alojar WebBrowser control y usar la biblioteca cliente SignalR javascript para manejar la señalización.

En otros 6 meses, apostaría por una biblioteca de cliente .NET 3.5 nativa, pero como los mantenedores son empleados de tiempo completo de MS, dudo que tengan tiempo para respaldar versiones heredadas en el corto plazo.

+2

Sería bastante trivial hacer un cliente que no sea TPL, pero simplemente no es una prioridad en este momento – davidfowl

2

I backported los clientes de SignalR v1.x y v2.x a NET35. Disponible como paquetes NuGet aquí: http://www.nuget.org/packages/Nivot.SignalR.Client.Net35/

+1

Impresionante, gracias por su esfuerzo @ x0n! – OnoSendai

+0

@ x0n cuando compilo el proyecto, termino en la carpeta bin con 3 dlls y 3 archivos xml, ¿eso es todo lo que necesito para trabajar con SignalR en .Net 3.5? ¿Necesito dlls adicionales? –

+0

Supongo que el servidor aún requeriría .Net 4.5? –