在本文中,我们将了解 OWIN 是什么以及它的创建历史。本文将帮助那些想知道它背后的人。
我们将了解一群人如何为 .NET 社区带来宝贵的想法。同样重要的是,微软已经接受了 OWIN,而 ASP.NET Core 基本上就是建立在这个想法之上的。
简单来说,OWIN 是 .NET 开放 Web 接口的缩写,是一种提供将 Web 服务器与 Web 应用程序解耦的规范。该规范也是所有 .NET 生态系统的开放标准。
OWIN 的官方定义是 — “定义了 .NET Web 服务器和 Web 应用程序之间的标准接口。OWIN 接口的目标是解耦服务器和应用程序,鼓励开发用于 .NET Web 开发的简单模块,并通过成为开放标准来刺激 .NET Web 开发工具的开源生态系统。”
“规范”这个词可能会让您感到困惑,但它指的是标准化的契约/接口,规定了 Web 服务器和应用程序之间的通信方式。因此,这些东西不是具体的实现,而是告诉开发人员如何在 Web 服务器和 Web 应用程序之间进行通信。
故事
OWIN 的故事始于 2010 年,当时一群人受到其他编程语言库的启发,试图创建一个在 Web 服务器和 Web 应用程序/框架之间提供 HTTP 抽象的库。
有一天,一群正在开发自己的框架/库的人,Ryan Riley(Kayak 的创建者)向其他正在开发其框架/库的人发送了一封电子邮件,内容是分享知识和共同努力(因为他们正在开发相同和不同但互补的东西)。
2010 年 9 月 7 日,Ryan Riley 发送的第一封电子邮件如下所示。
然后,大家开始一起讨论,因为这个信息很有道理。他们开始通过 Google 群组进行合作。
首先,小组开会寻找解决问题的方法。主要问题是,
- ASP.NET 与 IIS (System.Web.* 包) 耦合
- ASP.NET 太重
- IIS 太慢(旧版本)
- 很难实现 REST(比如最小 API — Sinatra -> DSL)
此外,.NET 社区需要能够与不同的轻量级 Web 服务器协同工作的解耦/独立、轻量级、高效的 Web 框架。