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

 14835688_d4705c_859 发布于 2023-02-11 14:35

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

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

    究竟什么是OWIN以及它解决了什么问题(简单来说).它与IIS的关系是什么?

    OWIN取代了IIS吗?如果没有,OWIN在什么情况下最适合?

    OWIN如何帮助我完成日常工作?

    OWIN如何帮助我完成自我改善项目?

Admir Tuzovi.. 401

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

在OWIN之前,在构建ASP.NET应用程序时,由于对System.Web程序集的严重依赖,您本身就绑定到了IIS .

System.Web 自从ASP(非.NET版本)以来一直存在并且内部包含许多您可能不需要的东西(例如Web窗体或URL授权),默认情况下它们都在每个请求上运行,从而消耗资源并制作ASP例如,.NET应用程序通常比其对应程序(例如Node.js)慢很多.

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

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

Web API

信号R.

ASP.NET MVC和Web窗体仍然只能通过System.Web运行,从长远来看,还有计划将它们分离.

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

IIS

自托管

因此,如果您想要一个性能,那么您可以选择自托管选项.如果你想要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,新的Project System,新的http抽象).

今天Katana中存在的一切都将成为vNext的一部分.

编辑(2015年2月):

ASP.NET vNext现在称为ASP.NET 5,它将构建在.NET Core 5之上..NET Core 5是.NET Framework的轻量级因子版本,旨在支持ASP.NET 5和.NET Native的目标.但是,.NET 5 4.6也将支持ASP.NET 5,它应该与.NET Core 5一起提供.ASP.NET 5和.NET Core 5都将在MIT下获得许可并接受社区贡献.

编辑(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,从计划即将发布的Release Candidate 2开始.同样适用于将重命名为Entity Framework Core的Entity Framework 7.有关官方公告及其背后原因的更多信息可以在Scott Hanselman的博客文章中找到: ASP.NET 5已经死了 - 介绍ASP.NET Core 1.0和.NET Core 1.0

编辑(2016年5月):

随着Release Candidate 2的发布,ASP.NET Core已被修改,以便未来的Web应用程序实际上只是.NET Core控制台应用程序设置来处理传入的HTTP请求.这一概念使ASP.NET Core更加符合Microsoft在微服务架构支持及其通过Azure Service Fabric实现的方法.有关更多信息,请参阅官方博客文章: 宣布ASP.NET Core RC2

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有