{"id":21870,"date":"2019-04-26T17:30:04","date_gmt":"2019-04-27T00:30:04","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/aspnet\/?p=21870"},"modified":"2019-04-26T17:30:04","modified_gmt":"2019-04-27T00:30:04","slug":"azure-signalr-service-now-supports-asp-net","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/azure-signalr-service-now-supports-asp-net\/","title":{"rendered":"Azure SignalR Service now supports ASP.NET!"},"content":{"rendered":"<p>We\u2019ve just shipped the official version of the SignalR Service SDK with ASP.NET support:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Azure.SignalR.AspNet\/\">Microsoft.Azure.SignalR.AspNet v1.0.0<\/a> <\/li>\n<\/ul>\n<p>Azure SignalR Service is a fully managed Azure service for real-time messaging. It is a preferred way for scaling ASP.NET Core SignalR applications. However, SignalR Service is built on <a href=\"https:\/\/docs.microsoft.com\/aspnet\/core\/signalr\/introduction\">SignalR for ASP.NET Core 2.0<\/a>, which is <strong>not<\/strong> 100% compatible with ASP.NET SignalR. Code changes are required to make ASP.NET SignalR application work with SignalR Service. The service SDK also needs to add ASP.NET support specifically.<\/p>\n<p>At Microsoft Ignite 2018, we announced ASP.NET support preview. Customers have been using the preview version SDK to develop ASP.NET SignalR applications with SignalR Service. Today, we are excited to announce that we have released the generally available version 1.0.0 of service SDK with ASP.NET support!<\/p>\n<h2>Typical architecture for ASP.NET support<\/h2>\n<p>This diagram illustrates the typical architecture to use Azure SignalR Service with an application server in either ASP.NET Core or ASP.NET.<\/p>\n<p><img decoding=\"async\" width=\"496\" height=\"387\" src=\"https:\/\/devblogs.microsoft.com\/aspnet\/wp-content\/uploads\/sites\/16\/2019\/04\/arch-png-1.png\" class=\"wp-image-21873\" alt=\"arch.png\" srcset=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2019\/04\/arch-png-1.png 496w, https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2019\/04\/arch-png-1-300x234.png 300w\" sizes=\"(max-width: 496px) 100vw, 496px\" \/><\/p>\n<p>For self-hosted SignalR application, the application server listens to clients&#8217; connection requests and manages client connections. With SignalR Service, the application server only responds to clients&#8217; negotiate requests and redirects clients to SignalR Service to establish the persistent client-server connections.<\/p>\n<p>With the ASP.NET support for Azure SignalR Service you can:<\/p>\n<ul>\n<li>continue to keep SignalR application in ASP.NET, and work with fully managed ASP.NET Core based SignalR Service. <\/li>\n<li>change a few lines of SignalR API codes, to switch to use SignalR Service instead of self-hosted SignalR Hubs. <\/li>\n<li>leverage Azure SignalR Service\u2019s built-in features and tools to help operate the SignalR application, with guaranteed SLA. <\/li>\n<\/ul>\n<h2>Supported SDK versions<\/h2>\n<p>To receive the full benefit from the new ASP.NET support, please download and upgrade your SDKs to the latest supported versions:<\/p>\n<ul>\n<li>.NET: <a href=\"https:\/\/www.microsoft.com\/net\/download\/windows\">4&#046;6.1+<\/a> <\/li>\n<li>Microsoft.AspNet.SignalR.*: <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.AspNet.SignalR\/\">2&#046;4.1<\/a> <\/li>\n<li>Microsoft.Azure.SignalR.AspNet: <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Azure.SignalR.AspNet\/\">1&#046;0.0<\/a> <\/li>\n<\/ul>\n<h2>What features are not supported?<\/h2>\n<p>Many factors, including non-technical ones, make it difficult to migrate the web application from ASP.NET SignalR to ASP.NET Core. The goal of this ASP.NET support is to make this migration easier with little code changes.<\/p>\n<p>Some APIs and features are no longer supported:<\/p>\n<ul>\n<li>Automatic reconnects <\/li>\n<li>Forever Frame transport <\/li>\n<li>HubState <\/li>\n<li>PersistentConnection class <\/li>\n<li>GlobalHost object <\/li>\n<li>HubPipeline module <\/li>\n<li>Client-side Internet Explorer support before Microsoft Internet Explorer 11 <\/li>\n<\/ul>\n<p>ASP.NET support is focused on compatibility, so not all new features from ASP.NET Core SignalR are supported. For example, MessagePack, Streaming, etc., are only available for ASP.NET Core SignalR applications.<\/p>\n<p>SignalR Service can be configured for different service mode: <em>Classic\/Default\/Serverless<\/em>. In this ASP.NET support, the <em>Serverless<\/em> mode is not supported.<\/p>\n<p>For a complete list of feature comparison between ASP.NET SignalR and ASP.NET Core SignalR, and the recommended alternatives to features discontinued, please refer to doc <a href=\"https:\/\/docs.microsoft.com\/aspnet\/core\/signalr\/version-differences?view=aspnetcore-2.2\">here<\/a>.<\/p>\n<h2>Next steps<\/h2>\n<ul>\n<li>Check out the <a href=\"https:\/\/aka.ms\/aspnet-doc\">documentation and quickstart<\/a> to get started<\/li>\n<li>Check out more code samples at <a href=\"https:\/\/github.com\/aspnet\/AzureSignalR-samples\/tree\/master\/aspnet-samples\">GitHub repo<\/a> <\/li>\n<li>Sign up for your <a href=\"https:\/\/azure.microsoft.com\/free\/\">Azure account<\/a> for free <\/li>\n<\/ul>\n<p>We&#8217;d like to hear about your feedback and comments. You can reach the product team at the <a href=\"https:\/\/github.com\/azure\/azure-signalr\/issues\">GitHub repo<\/a>, or by <a href=\"mailto:asrs@microsoft.com\">email<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Azure SignalR Service is a fully managed real-time messaging service, built on ASP.NET Core SignalR. ASP.NET Core SignalR has many features incompatible with ASP.NET SignalR, so existing ASP.NET SignalR Application doesn&#8217;t work with SignalR Service. We added the ASP.NET support to SignalR Service SDK to enable this scenario. This blog also lists features that are no longer supported and provides references on documents and code samples.<\/p>\n","protected":false},"author":532,"featured_media":58792,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[197,7509,327,7256],"tags":[4,9,37],"class_list":["post-21870","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aspnet","category-aspnetcore","category-azure","category-signalr","tag-net","tag-net-core","tag-azure"],"acf":[],"blog_post_summary":"<p>Azure SignalR Service is a fully managed real-time messaging service, built on ASP.NET Core SignalR. ASP.NET Core SignalR has many features incompatible with ASP.NET SignalR, so existing ASP.NET SignalR Application doesn&#8217;t work with SignalR Service. We added the ASP.NET support to SignalR Service SDK to enable this scenario. This blog also lists features that are no longer supported and provides references on documents and code samples.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/21870","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/users\/532"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=21870"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/21870\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/58792"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=21870"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=21870"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=21870"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}