课程咨询 :025-84812726

南京.NET培训 > 达内新闻 > ASP.NET MVC随想录:漫谈OWIN
  • ASP.NET MVC随想录:漫谈OWIN

    发布:南京.NET培训      来源:南京达内      

  • 什么是OWIN

    OWIN是Open Web Server Interface for .NET的首字母缩写,他的定义如下:

    OWIN在.NET Web Servers与Web Application之间定义了一套标准接口,OWIN的目标是用于解耦Web Server和Web Application。基于此标准,鼓励开发者开发简单、灵活的模块,从而推进.NET Web Development开源生态系统的发展。

    正如你看到的这样,OWIN是接口、契约,而非具体的代码实现,仅仅是规范(specifications),所以要实现自定义基于OWIN的Web Server必须要实现此规范。

    历时两年(2010-2012),OWIN的规范终于完成并且当前版本是1.0,在OWIN的官网上可以看到更具体的信息。

    为什么我们需要OWIN

    过去,IIS作为.NET 开发者来说是最常用的Web Server(没有之一),源于微软产品的紧耦合关系,我们不得不将Website、Web Application、Web API等部署在IIS上,事实上在2010年前并没有什么不妥,但随着近些年来Web的发展,特别是移动互联网飞速发展,IIS作为Web Server已经暴露出他的不足了。主要体现在两个方面,ASP.NET (System.Web)紧耦合IIS,IIS紧耦合OS,这就意味着,我们的Web Framework必须部署在微软的操作系统上,难以跨平台。

    ASP.NET 和 IIS

    我们知道,不管是ASP.NET MVC 还是ASP.NET WEB API 等都是基于ASP.NET Framework的,这种关系从前缀就可以窥倪出来。而ASP.NET的核心正是System.Web这个程序集,而且System.Web紧耦合IIS,他存在于.NET Framework中。所以,这导致了Web Framework严重的局限性:

    • ASP.NET 的核心System.Web,而System.Web紧耦合IIS
    • System.Web 是.NET Framework重要组成,已有15年以上历史,沉重、冗余,性能差,难于测试,约2.5M
    • System.Web要更新和发布新功能必须等待.NET Framework发布
    • .但NET Framework是Windows的基础,往往不会随意更新。

    所以要想获取最新的Web Framework是非常麻烦的,幸运的事,微软已经意识到了问题的严重性,最新的Web Framework都是通过Nuget来获取。

    当然这是一部分原因,还有一层原因是ASP.NET & IIS实在太过于笨重,如何讲呢?

    复杂的生命周期已成为累赘?简单来说,当请求到达服务器时,Windows内核组件HTTP.SYS组件捕获请求,他会分析请求并决定是否交给IIS来处理,当请求到达IIS之后,IIS会根据处理程序映射来匹配请求并交给对应的程序集(实现了ISAPI接口,比如我们熟知的aspnet_isapi.dll是专门用来处理ASP.NET Application)处理,最后加载了CLR运行环境,将请求交给aspnet_wp.exe去处理,这时复杂的ASP.NET生命周期往往令人头大,但事实上有很多时候我们并不需要他。

    推荐文章

上一篇:.net培训课程指导:初识ASP.NET Core 1.0

下一篇:ASP.NET 发展历程

最新开班日期  |  更多

.NET工程师--全日制班

.NET工程师--全日制班

开班日期:04-28

.NET—零基础周末班

.NET—零基础周末班

开班日期:04-28

.NET—零基础全日制

.NET—零基础全日制

开班日期:04-28

.NET工程师--周末班

.NET工程师--周末班

开班日期:04-28

  • 地址:南京市龙蟠中路30号东来商务中心A座5楼
  • 课程培训电话:025-84812726     全国服务监督电话:400-111-8989
  • 服务邮箱 tousu@tedu.cn
  • 2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56