2012-02-20 38 views
6

Tôi muốn xây dựng một giải pháp kinh doanh winform bằng SiganlR, nhưng tôi không thể cài đặt .net 4.0 trên máy khách. Có vẻ như SignalR có yêu cầu tối thiểu là .net 4.0. Cách tốt nhất để sử dụng SignalR từ một winform và .net 3.5 là gì. Tôi muốn bao gồm các chức năng gửi/nhận tin nhắn trong ứng dụng khách.Cách sử dụng SignalR với .net 3.5

Tôi sẽ lưu trữ SignalR trên IIS trên mạng nội bộ của mình bằng cách sử dụng .net 4.0 ở phía máy chủ.

Có thể tạo và API (trong .net 3.5) tương tự như pubnub C# không? Ai đó có thể chỉ cho tôi phương hướng đúng không.

Trả lời

8

Nếu bạn không quá sợ việc biên soạn nội dung của riêng mình, tôi đã tạo thư viện ứng dụng tương thích .net 2.0 cho SignalR. Nó có sẵn ngay ngã ba của tôi (https://github.com/robink-teleopti/SignalR) của SignalR.

Hiện tại tôi không có ý định thực hiện yêu cầu kéo vì tôi không muốn thêm gánh nặng thừa đó vào dự án ban đầu.

Tôi có thêm một sửa đổi trên ngã ba có thể là điều tốt để biết. Khi có khách hàng thuộc về hơn 20 nhóm, tôi tự động chuyển sang sử dụng POST thay vì GET và tôi đã thực hiện các sửa đổi nhỏ ở phía máy chủ để xử lý phần đó.

+4

Thực ra hiện có một máy khách .NET 3.5 trong lõi của SignalR. Tôi vẫn cần phải có được nó trong gói NuGet mặc dù. Nhưng nó là một phần của bản phát hành cuối cùng. – davidfowl

+0

@davidfowl Bạn có nhớ phiên bản gói nếu nó đã từng được phát hành không? – Mrchief

1

Một trong những tác giả của dự án SignalR có mục tiêu sử dụng TaskParallelLibrary (TPL) được gửi trong .NET 4. Vì vậy, tôi nghi ngờ bất kỳ mã C# nào từ dự án đó sẽ chạy trên .NET 3.5. Tại sao không lưu trữ một TCP hoặc đặt tên-ống WCF điểm cuối trên máy chủ và sử dụng bình thường NET khách hàng gọi lại? Điều này là tương đối dễ dàng nếu máy chủ là Windows Server 2008 với WAS hoặc AppFabric.

Nếu máy chủ cũ hơn, bạn có thể lưu trữ WebBrowser control và sử dụng thư viện máy khách JavaScript SignalR để xử lý tín hiệu. Trong 6 tháng nữa tôi muốn đặt cược vào thư viện máy khách .NET 3.5, nhưng khi những người bảo trì là nhân viên MS toàn thời gian, tôi nghi ngờ họ sẽ có thời gian để hỗ trợ các phiên bản cũ bất kỳ lúc nào.

+2

Nó thực sự sẽ khá tầm thường để tạo một khách hàng không sử dụng nhưng nó không phải là một ưu tiên ngay bây giờ – davidfowl

2

Tôi đã backport các máy khách SignalR v1.x và v2.x thành NET35. Có sẵn dưới dạng các gói NuGet tại đây: http://www.nuget.org/packages/Nivot.SignalR.Client.Net35/

+1

Tuyệt vời, cảm ơn nỗ lực của bạn @ x0n! – OnoSendai

+0

@ x0n khi tôi biên soạn dự án tôi kết thúc trong thư mục bin với 3 dll và 3 tệp xml, là tất cả những gì tôi cần làm việc với SignalR dưới .Net 3.5? Tôi có cần thêm bất kỳ dll nào không? –

+0

Tôi đoán máy chủ vẫn sẽ yêu cầu .Net 4.5? –

Các vấn đề liên quan