{"id":574,"date":"2014-04-23T09:41:00","date_gmt":"2014-04-23T09:41:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/webdev\/2014\/04\/23\/why-katana-should-be-on-your-radar\/"},"modified":"2014-04-23T09:41:00","modified_gmt":"2014-04-23T09:41:00","slug":"why-katana-should-be-on-your-radar","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/why-katana-should-be-on-your-radar\/","title":{"rendered":"Why Katana should be on your radar"},"content":{"rendered":"<ul>\n<li><strong>Agility, flexibility and composition<\/strong>: Unlike traditional ASP.NET, Katana decouples components, which are independently updatable by NuGet. Rather being restricted to the functionality built into your server or framework, you can now compose together multiple middleware and frameworks to get only what you need.&nbsp; For example,&nbsp; <a href=\"http:\/\/www.asp.net\/web-api\/overview\/hosting-aspnet-web-api\/use-owin-to-self-host-web-api\">Self-Hosting WebApi<\/a> and <a href=\"http:\/\/www.asp.net\/signalr\/overview\/signalr-20\/getting-started-with-signalr-20\/tutorial-signalr-20-self-host\">SignalR<\/a> in the same application, guarded by the same security middleware. Components can release independently, which means that it&rsquo;s likely features and functionally&nbsp; would be changing more quickly. More frequent changes is not universally positive, more frequent changes could introduce more problems.<\/li>\n<li><strong>Portable<\/strong>: Your application can be portable across servers; IIS, <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Owin.Host.HttpListener\">HttpListener<\/a>, or even something like <a href=\"https:\/\/github.com\/Bobris\/Nowin\">NOwin<\/a> (which uses raw sockets in lieu of <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Owin.Host.HttpListener\">HttpListener<\/a>). Some of these may be available on <a href=\"http:\/\/www.mono-project.com\/Main_Page\">Mono<\/a>.<\/li>\n<li><strong>Footprint<\/strong>: Footprint is not directly related to Katana , but rather that Katana can be hosted without going through the normal ASP.NET (<a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/gg145018(v=vs.110).aspx\">System.Web<\/a>) request processing pipeline (which brings in the .Net <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/gg145018(v=vs.110).aspx\">System.Web<\/a> and all its dependencies).&nbsp;<\/li>\n<p>Additional Resources<\/p>\n<ul>\n<li>Video: Fantastic Video and slides on <a href=\"http:\/\/brockallen.com\/2014\/02\/28\/lidnug-intro-to-owin-and-katana\/\">OWIN\/Katana<\/a> by Brock Allen&nbsp; <a href=\"https:\/\/twitter.com\/BrockLAllen\">@BrockLAllen<\/a><\/li>\n<li><a href=\"http:\/\/msdn.microsoft.com\/en-us\/magazine\/dn463788.aspx\">Secure ASP.NET Web API with Windows Azure AD and Microsoft OWIN Components<\/a> by Vittorio Bertocci <a href=\"https:\/\/twitter.com\/vibronet\">@vibronet<\/a>&nbsp;&nbsp;<\/li>\n<li><a href=\"http:\/\/blogs.msdn.com\/b\/webdev\/archive\/2014\/02\/18\/introducing-asp-net-project-helios.aspx\">Introducing ASP.NET Project &ldquo;Helios&rdquo;<\/a> by <a href=\"https:\/\/twitter.com\/LeviBroderick\">@LeviBroderick<\/a><\/li>\n<li><a href=\"http:\/\/msdn.microsoft.com\/en-us\/magazine\/dn451439.aspx\">Getting Started with the Katana Project<\/a> MSDN magazine article by <a href=\"https:\/\/twitter.com\/howard_dierking\">@howard_dierking&nbsp;<\/a><\/li>\n<li><a href=\"http:\/\/www.asp.net\/aspnet\/overview\/owin-and-katana\/getting-started-with-owin-and-katana\">Getting Started with OWIN and Katana <\/a>by Mike Wasson<\/li>\n<li><a href=\"http:\/\/www.asp.net\/aspnet\/overview\/owin-and-katana\/an-overview-of-project-katana\">An Overview of Project Katana<\/a>&nbsp; by <a href=\"https:\/\/twitter.com\/howard_dierking\">@howard_dierking&nbsp;<\/a><\/li>\n<li>Video: <a href=\"https:\/\/channel9.msdn.com\/Shows\/Web+Camps+TV\/The-Katana-Project-OWIN-for-ASPNET\">The Katana Project &#8211; OWIN for ASP.NET<\/a> by <a href=\"https:\/\/twitter.com\/howard_dierking\">@howard_dierking&nbsp;<\/a><\/li>\n<li><a href=\"http:\/\/www.strathweb.com\/2013\/05\/the-future-is-now-owin-and-multi-hosting-asp-net-web-applications\/\">The future is now &ndash; OWIN and multi-hosting ASP.NET web applications<\/a> by <a href=\"https:\/\/twitter.com\/filip_woj\">@filip_woj<\/a><\/li>\n<\/ul>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Agility, flexibility and composition: Unlike traditional ASP.NET, Katana decouples components, which are independently updatable by NuGet. Rather being restricted to the functionality built into your server or framework, you can now compose together multiple middleware and frameworks to get only what you need.&nbsp; For example,&nbsp; Self-Hosting WebApi and SignalR in the same application, guarded by [&hellip;]<\/p>\n","protected":false},"author":415,"featured_media":58792,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[197],"tags":[7464],"class_list":["post-574","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aspnet","tag-owin-katana"],"acf":[],"blog_post_summary":"<p>Agility, flexibility and composition: Unlike traditional ASP.NET, Katana decouples components, which are independently updatable by NuGet. Rather being restricted to the functionality built into your server or framework, you can now compose together multiple middleware and frameworks to get only what you need.&nbsp; For example,&nbsp; Self-Hosting WebApi and SignalR in the same application, guarded by [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/574","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\/415"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=574"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/574\/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=574"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=574"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=574"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}