如何用简单的词语和用法解释Katana和OWIN?

我读过很多关于OWIN和Katana项目的文章,但我无法了解它的全貌

对于使用ASP.NET的普通web开发人员:

  1. OWIN到底是什么?它解决了什么问题(简单地说)。它与IIS有什么关系
  2. OWIN是否取代IIS?如果不是,OWIN最适合什么情况
  3. OWIN如何帮助我完成日常工作项目
  4. OWIN如何帮助我进行自我提升项目

关于上述评论,OWIN不是一个框架。OWIN是关于如何构建web服务器和web应用程序的规范,以便将它们解耦,并允许将ASP.NET应用程序移动到以前不受支持的环境中

在OWIN之前,在构建ASP.NET应用程序时,由于对System.Webassembly的严重依赖,您天生就绑定到IIS

System.Web是自ASP(非.NET版本)以来就存在的东西,内部包含许多您甚至不需要的东西(例如Web表单或URL授权),默认情况下,这些东西都会在每个请求上运行,因此,ASP.NET应用程序通常比Node.js之类的应用程序消耗资源和速度慢得多

OWIN本身没有任何工具、库或其他任何东西。这只是一个规范。

另一方面,Katana是一个完全开发的框架,用于在当前ASP.NET框架和OWIN规范之间搭建桥梁。目前,Katana已成功地将以下ASP.NET框架改编为OWIN:

  • Web API
  • 信号机

ASP.NETMVC和Web表单仍然只通过System.Web运行,从长远来看,也有计划将它们解耦

另一方面,IIS是一个很好的、资源丰富的web服务器主机。使用IIS的整个ASP.NET性能问题只在System.Web中有很深的根源。直到最近,在决定如何托管web服务器时,您有两个选择:

  • 非法移民
  • 自宿主

所以,如果你想要一场演出,你会选择自主持。如果您想要IIS提供很多现成的功能,您可以选择IIS,但性能会下降

现在,有了第三个选项,一个名为Helios(当前代码名)的Microsoft库,它打算将System.Web删除,并允许您以更“干净”的方式使用IIS,而不需要任何不必要的库或模块。Helios现在是预发布版本,正在等待更多的社区反馈,以使其完全支持Microsoft产品

希望这个解释能更好地为您澄清问题

编辑(2014年9月):

随着ASP.NET vNext的开发,Katana正在慢慢退役。版本3.0很可能是Katana作为独立框架的最后一个主要版本

然而,Katana引入的所有概念都被集成到ASP.NET vNext中,这意味着编程模型将基本相同。引用David Fowler(ASP.NET vNext的架构师)的论坛帖子:

vNext是Katana的继承者(这就是它们看起来如此相似的原因)。
Katana是脱离System.Web和更多内容的开始
web堆栈的模块化组件。您可以将vNext视为
继续这项工作,但要做得更远(新CLR,新项目
系统,新的http抽象)

今天在卡塔纳存在的一切都将进入vNext

编辑(2015年2月):

ASP.NET vNext现在称为ASP.NET 5,将构建在.NET Core 5的基础上。NET Core 5是.NET Framework的轻量级分解版本,旨在支持ASP.NET 5和.NET Native的目标。但是,ASP.NET 5也将受到.NET Framework 4.6的支持,该版本应与.NET Core 5一起提供。ASP.NET 5和.NET Core 5都将获得麻省理工学院的许可,并接受社区捐款

编辑(2015年5月):

此外,ASP.NET Web API品牌将停止使用,但其技术将成为新ASP.NET MVC 6的基础。以前的ASP.NET MVC版本是通过实现IHttpHandler构建的,IHttpHandler是在System.Web中定义的一个接口。ASP.NET MVC 6消除了这种依赖性,使其可移植到各种平台和web服务器

编辑(2016年5月):

ASP.NET 5将正式更名为ASP.NET Core,从即将发布的候选版本2开始。同样适用于实体框架7,该框架将重命名为实体框架核心。有关官方公告及其背后原因的更多信息,请访问Scott Hanselman的博客:
ASP.NET5已经死了-介绍ASP.NETCore1.0和.NETCore1.0

编辑(2016年5月):

随着候选版本2的发布,ASP.NET Core已被修改,因此未来的web应用程序实际上只是.NET Core控制台应用程序,用于处理传入的HTTP请求。这一概念使ASP.NET核心更符合Microsoft通过Azure Service Fabric支持微服务体系结构及其实现的方法。有关的更多信息,请访问官方博客:
宣布ASP.NET核心RC2

发表评论