What can ASP.NET SignalR do?
ASP.NET SignalR is a library for ASP.NET developers that simplifies the process of adding real-time web functionality to applications. Real-time web functionality is the ability to have server code push content to connected clients instantly as it becomes available, rather than having the server wait for a client to request new data.
You may have heard of WebSockets, a new HTML5 API that enables bi-directional communication between the browser and server. SignalR will use WebSockets under the covers when it's available, and gracefully fallback to other techniques and technologies when it isn't, while your application code stays the same.
Platforms
SignalR is supported under a variety of server and client configurations. In addition, each transport option has a set of requirements of its own; if the system requirements for a transport are not available, SignalR will gracefully failover to other transports. For more information on the transports that SignalR supports
Supported server .NET Framework version
SignalR 2 is only supported on .NET Famework 4.5.
Supported server operating systems
Windows Server 2012
Windows Server 2008 r2
Windows 8
Windows 7
Windows Azure
Supported server IIS versions
IIS 8 or IIS 8 Express.
IIS 7 and 7.5. Support for extensionless URLs is required.
IIS must be running in integrated mode; classic mode is not supported. Message delays of up to 30 seconds may be experienced if IIS is run in classic mode using the Server-Sent Events transport.
The hosting application must be running in full trust mode.
What can you do with ASP.NET SignalR?
While chat is often used as an example, you can do a whole lot more. Any time a user refreshes a web page to see new data, or the page implements Ajax long polling to retrieve new data, is candidate for using SignalR.
It also enables completely new types of applications, that require high frequency updates from the server, e.g. real-time gaming.
Packages
All SignalR development packages can be fetched through NuGet. Normally, you just need to fetch Microsoft.AspNet.SignalR (Package ID) which contains most of the components you need, including:
Microsoft.AspNet.SignalR.Core: server side components used to build SignalR endpoints.
Microsoft.AspNet.SignalR.Owin: OWIN host for SignalR.
Microsoft.AspNet.SignalR.SystemWeb: used to host SignalR in ASP.NET (via OWIN ASP.NET host).
Microsoft.AspNet.SignalR.Js: JavaScript client for SignalR.
Dependencies are also included: jQuery, Newtonsoft.Json, Microsoft.Owin.Host.SystemWeb, Microsoft.Web.Infrastructure and OWIN.
You could fetch other SignalR packages when you need:
Microsoft.AspNet.SignalR.Client: .NET client for SignalR (includes WinRT, WP8 and Silverlight5).
Microsoft.AspNet.SignalR.Redis: Redis messaging backplane for scaling out SignalR in web farm.
Microsoft.AspNet.SignalR.ServiceBus: Windows Azure Service Bus messaging backplane for scaling out SignalR in web farm.
Microsoft.AspNet.SignalR.SqlServer: SQL Server messaging backplane for scaling out SignalR in web farm.
Microsoft.AspNet.SignalR.Sample: used to quickly setup a working sample in your application.