Closed. This question is opinion-based 。它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文来回答。

4年前关闭。



Improve this question




当 ASP.NET MVC 出现时,微软在很多地方多次宣布它不应该取代 ASP.NET Web Forms。换句话说,它只是您可能会发现有用的另一种技术,或者您可能会在其他场景中使用 Web 窗体。

然而,随着公司进入市场,他们不能拥有技术丛林,因为这太昂贵了。他们通常选择一种成熟的技术,坚持使用它,在它的基础上进行构建和扩展,并重用其中的元素以降低成本。

现在我们正试图决定从 Web API 迁移到 Owin/Katana。我们只是想知道我们将 100% 转移到 Owin 是否可以?

我问这个问题的原因是因为我们为 Web API 创建了一个非常丰富的代码库,包括流、压缩、身份验证、UGC 的规范化、对 I18N 和 L10N 的支持等等。

如果我们要迁移到 Owin,我们需要为 Owin 重新创建这些设施/实用程序,因为它的架构与 Web API 不同。

我们想迁移到 Owin,因为它更快、更轻、自托管服务器,而且似乎是 Microsoft 服务技术的 future 。

我们完全转向 Owin 并想象 future 我们所有的服务都通过 Owin 提供,并且我们不再使用 Web API 是否安全?

最佳答案

OWIN 只是 规范 ,仅此而已。它描述了服务器和应用程序都可以使用的通用接口(interface),因此应用程序不需要与服务器紧密耦合。

Katana 是将 ASP.NET 与 IIS 分离的第一步。根据官方路线图,在 Katana has stopped now 上工作。为 Katana 开发的想法和技术已应用于下一版本的 ASP.NET (ASP.NET Core)。

在 OWIN 本身之上构建应用程序几乎没有意义,因为您在 HTTP 之上的最低抽象级别上运行(字面上处理原始请求和响应)。通常只有在构建需要低级别访问的中间件组件时才需要这样做。

换句话说:您不应该在 OWIN 上重建您的应用程序,因为您将花费大量时间重新发明 ASP.NET 中已有的所有内容。

ASP.NET Core 是 ASP.NET 和 Web API 的下一个演变。它具有您提到的所有内容:速度快、重量轻且可以自托管。如果需要重建架构,请在 ASP.NET Core 上进行。

关于c# - Owin/Katana 是否应该取代 Web API?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38800363/

10-13 08:02