微软最新的 Web 服务器 Katana 发布了版本 3

  • Jonathan Allen
  • 邵思华

2014 年 8 月 28 日

话题:.NET架构

Katana 是微软对OWIN(基于.NET 的开放 Web 接口)标准自行开发的一套实现方案,它是一种相对于 IIS 及 System.Web 命名空间的轻量级实现,这也是由于 IIS 及 System.Web 命名空间包含了某些无用的特性,或是某些设计不太理想。随着版本 3 的发布,Kanata 目前已经完整地支持了.NET 4.5 中新加入的异步编程模型。

微软同时决定在 Katana 中放弃对.NET 4.0 的支持,这一点并不令人惊奇。尽管 ASP.NET 从十年前就已经开始支持异步编程模型,但.NET 2.0 中引入的 IAsyncResult 模型使用起来非常繁琐,大多数开发者甚至都不知道它的存在。Node.js 趁虚而入,它将自己称为高级异步 web 开发平台,而微软则希望通过在.NET 4.5 中引入的 async/await 模型重新夺回这一称号。

此外,微软也希望让开发者们能够在 2016 年初这一时间前放弃旧的版本,以此大大减少对这些版本的巨大维护量。为了促进这一目标的实现,微软明确宣布,新的 API 在.NET 4.0 版本上将不可用。

在新的功能特性方面,新版本主要关注于“企业级认证功能以及基于声明的标识(claims-based identity)”。参与了Katana 3项目的 Vittorio Bertocci 特别提到了以下三种协议:

  • WS-Federation
  • OpenId Connect (通过表单提交方式提供 id_token 以及 id_token+code 方式)
  • 可在 Web API 中使用的 OAuth2 票据令牌认证

Vittorio 还写道:

这个版本的发布还解决了由于 Twitter 和 Google API 发生变动所引起的问题。如果你在应用中使用了 Google 认证,并且打算升级到 Katana 版本 3,请确保你已读过这篇帖子

Katana 可以作为 NuGet 包获得。根据Katana 网站描述显示,取决于你所需的不同特性,共有总数超过 20 的包可以选择下载:(这一点和传统的 ASP.NET 形成了鲜明的对比,后者的方式是将几乎所有特性都堆积在一个庞大的程序集中。)

  • Microsoft.Owin – 提供了一组辅助类型,以及为简化创建 OWIN 组件而建的各种抽象类型。
  • Microsoft.Owin.Diagnostics – 提供了各种中间件组件,以辅助开发基于 OWIN 的应用程序。
  • Microsoft.Owin.FileSystems – 这个包里提供了文件系统相关的抽象与实现。
  • Microsoft.Owin.Testing – 提供了对 OWIN 组件进行单元测试的一些辅助类。
  • Microsoft.Owin.SelfHost – 包含了为在自行指定的进程中托管基于 OWIN 的应用程序所必需的一些组件。
  • Microsoft.Owin.Hosting – 提供了托管与运行基于 OWIN 的应用程序所需的默认基础框架类型。
  • OwinHost – 提供了一个单独的可执行程序(OwinHost.exe),通过它可以托管一个基于 OWIN 的应用程序的运行。
  • Microsoft.Owin.Cors – 这个包里包含了一些能够在 OWIN 中间件中进行跨域资源共享(CORS)的组件。
  • Microsoft.Owin.StaticFiles – 这个包里包含了一些 OWIN 中间件,能够处理来自于文件系统资源的请求,包括文件与目录。
  • Microsoft.Owin.Security – 包含了一些各种不同的认证中间件组件所共享的 通用类型。
  • Microsoft.Owin.Security.ActiveDirectory – 一组允许应用程序使用微软技术进行认证的中间件。
  • Microsoft.Owin.Security.Cookies – 允许应用程序使用基于 cookie 进行认证的中间件,类似于 ASP.NET 中的表单认证方式。
  • Microsoft.Owin.Security.Facebook – 允许应用程序支持 Facebook 所使用的 OAuth 2.0 认证工作流的一些中间件。
  • Microsoft.Owin.Security.Google – 包含了一组支持 Google 的 OpenId 及 OAuth 2.0 认证工作流的中间件。
  • Microsoft.Owin.Security.Jwt – 一组允许应用程序保护及验证 JSON Web 令牌的中间件。
  • Microsoft.Owin.Security.MicrosoftAccount – 一组允许应用程序支持微软帐号认证工作流的中间件。
  • Microsoft.Owin.Security.OAuth – 允许应用程序支持任何标准 OAuth 2.0 认证工作流的中间件。
  • Microsoft.Owin.Security.OpenIdConnect – 允许应用程序使用 OpenIdConnect 方式进行认证的中间件。
  • Microsoft.Owin.Security.Twitter – 允许应用程序支持 Twitter 的 OAuth 2.0 认证工作流的中间件。
  • Microsoft.Owin.Security.WsFederation – 允许应用程序使用 WsFederation 进行认证的中间件。
  • Microsoft.Owin.Host.HttpListener – 基于.Net Framework 中的 HttpListener 类创建的 OWIN 服务器,也是目前用于自托管的默认服务器。
  • Microsoft.Owin.Host.SystemWeb – 也是 OWIN 服务器实现,但它允许基于 OWIN 的应用程序运行在 IIS 中,并能够使用 ASP.NET 的请求管道。

查看英文原文:Microsoft’s new Web Server, Katana, Hits Version 3

.NET架构