我读了很多关于OWIN和武士刀项目的文章,但我不能得到它的全貌。

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

OWIN到底是什么,它能解决什么问题(简单地说)。它与IIS有什么关系? OWIN会取代IIS吗?如果不是,在什么情况下OWIN最适合? OWIN如何在我的日常工作项目中帮助我? OWIN如何在自我提升项目中帮助我?


如果我必须为自己定义OWIN,那将是:“来自Ruby和Node.js web开发社区的最佳想法,来到。net”

但这对任何ASP都没有帮助。网络开发人员。我自己的定义是这样的:

OWIN定义了。net web服务器和web应用程序之间的标准接口。OWIN接口的目标是解耦服务器和应用程序 如果我必须回答你提出的问题,那就是:

OWIN is an interface specification. It decouples a web applications from IIS. If you are using ready-made components (which is what Katana is), then some parts of the application functionality are much easier to implement compared compared to old ASP.NET. Authentication with third-party identity providers (Facebook, Twitter) is one example of this. OWIN is essentially a collection of best practices, which have been proven in web development communities. It shows a way to implement web apps which is very open to extensibility. As each web developer should constantly be on the cutting edge of new technologies, this is one way to stay up to date with the whole web development community and not just .NET. If you learn OWIN, it would be much easier to learn other web development frameworks like Express for node.js or Rack for Ruby, because the practices they use are similar.


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

在OWIN之前,当构建ASP。. NET应用程序,由于对系统的严重依赖,您固有地绑定到IIS。网络组装。

系统。Web是自ASP(非。net版本)以来就存在的东西,在内部包含许多你可能甚至不需要的东西(如Web表单或URL授权),默认情况下,它们都在每个请求上运行,因此消耗资源,使ASP。NET应用程序通常比Node.js等同类应用程序慢得多。

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

另一方面,武士刀是一个完全开发的框架,使目前的ASP之间的桥梁。NET框架和OWIN规范。目前,武士已经成功地改编了以下ASP。NET框架到OWIN:

Web API 信号R

ASP。NET MVC和Web表单仍然只通过系统运行。Web,从长远来看,也有一个计划去解耦这些。

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

IIS Self-Host

所以如果你想要表演,你会选择自助主机。如果您想要IIS提供的许多开箱即用的特性,您可以选择IIS,但这样会损失性能。

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

希望这个解释能更好地为你澄清事情。

编辑(2014年9月):

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

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

vNext是武士刀的继承者(这就是为什么它们看起来如此相似)。 武士刀是脱离系统的开始。网络和更多 web堆栈的模块化组件。你可以看到vNext是a 这项工作的继续,但更进一步(新的CLR,新的项目 系统,新的http抽象)。 今天在武士刀中存在的一切都将进入vNext。

编辑(2015年2月):

ASP。NET vNext现在被称为ASP。NET 5将构建在。NET Core 5之上。NET Core 5是。NET Framework的轻量级因子化版本,旨在支持ASP. NET的目标。NET 5和。NET Native。然而,ASP。NET 5也将被。NET Framework 4.6支持,它将和。NET Core 5一起发布。ASP。NET 5和。NET Core 5将在MIT授权下使用,并接受社区的贡献。

编辑(2015年5月):

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

编辑(2016年5月):

ASP。NET 5将正式更名为ASP。NET Core从即将发布的版本候选2开始。实体框架7将被重命名为实体框架核心。更多关于官方声明和背后原因的信息可以在Scott Hanselman的博客文章中找到: ASP。NET 5已死——介绍ASP。NET Core 1.0和。NET Core 1.0

编辑(2016年5月):

随着发布候选版本2的发布,ASP。NET Core已经被修改,因此未来的web应用程序实际上只是。NET Core控制台应用程序的设置,以处理传入的HTTP请求。这个概念使得ASP。NET Core与微软在微服务架构支持和通过Azure Service Fabric实现的方法更加一致。更多信息可以在官方博客文章中找到: 宣布ASP。NET Core RC2


我将试着从实际的角度来讨论它。

Katana是在微软实现OWIN的项目名称。

OWIN到底是什么,它能解决什么问题(简单地说)。它与IIS有什么关系? OWIN (Open Web Interface for . net)是一个标准(OWIN规范),Katana是。net库,你可以从这里得到nuget。《OWIN》和《武士刀》在网络上成了同义词。 在OWIN之前,你唯一的选择是IIS,你可以使用任何其他应用程序(有入口点)作为web服务器。

OWIN会取代IIS吗?如果不是,在什么情况下OWIN最适合? 不,它不能取代IIS,你可以使用OWIN和IIS有microsoft。OWIN。host。systemweb nuget。如果你想优化/改变它在IIS中处理的方式,或者你想创建你的自定义web服务器,比如说Windows窗体应用程序,它是最适合的。

OWIN如何在我的日常工作项目中帮助我? 它可以降低您的服务器运行成本,因为您的web服务器不再需要在IIS (Windows)上运行(Windows服务器比基于Unix的服务器更昂贵,您可以在Linux中的Mono下的控制台应用程序上运行它)。

OWIN如何在自我提升项目中帮助我? 学习微软。Owin(以及其他相关的Owin库)将提高您在客户端和web服务器之间如何进行HTTP通信方面的知识。

如果你想了解更多关于武士刀和OWIN是什么,很好的阅读。


什么是OWIN?

OWIN stands for Open Web Interface for .NET. OWIN is a specification that describes how web development frameworks such as ASP.NET MVC should interact with the web servers. The goal of OWIN is to decouple web applications from the web server by introducing an abstraction layer. Such an abstraction enables you to run the same application on all the web servers that support OWIN. Additionally, it simplifies the overall system because the abstraction layer can provide a lightweight infrastructure to host the applications. IIS provides a rich set of features to the web applications. However, web applications may not need all these features. It might be sufficient for them to have minimal HTTP processing capabilities. OWIN compatible host can provide such a hosting environment to these applications. Moreover, you can define a pipeline of modules that are used during the request processing. An OWIN pipeline is a chain of OWIN compatible components through which a request passes.

武士刀是什么?

Katana是微软使用OWIN规范构建的一组组件。其中一些组件包括Web API、ASP。NET Identity和SignalR。

以上摘自CodeGuru文章:http://www.codeguru.com/csharp/.net/net_asp/overview-of-owin-and-katana.htm