Startup/OWIN框架

简介: 因为没接触到OWIN框架直接去学.NET Core比较生硬,

为什么写OWIN框架呢?

1:因为没接触到OWIN框架直接去学.NET Core比较生硬,个人见解。

首先我们要知道OWIN的由来:ASP.NET和IIS和Windows操作系统的关系在之前是紧密联系的,缺一不可,缺点:复杂的ASP.NET生命周期(请求到服务器->IIS->CLR->aspnet_wp.exe),耦合性太强。面向对象的世界中,接口往往解耦是关键。由此,OWIN出现。

=========百度百科=============

2:OWIN定义了4层:

Host:主要负责应用程序的配置和启动进程,包括初始化OWIN Pipeline、运行Server。

Server:这是实际的Http Server,绑定套接字并监听的HTTP请求然后将Request和Response的Body、Header封装成符合OWIN规范的字典并发送到OWIN Middleware Pipeline中,最后Application为Response Data填充合适的字段输出。

Middleware:称之为中间件、组件,位于Server与Application之间,用来处理发送到Pipeline中的请求,这类组件可以是简单的Logger或者是复杂的Web Framework比如Web API、SignalR,只要Sever连接成功,Middleware中间件可以是任何实现应用程序委托的组件。

Application:这是具体的应用程序代码,可能在Web Framework之上。对于Web API、SignalR这类Web Framework中间件而言,我们仅仅是改变了他们的托管方式,而不是取代ASP.NET WEB API、SignalR原先的应用程序开发。所以该怎么开发就怎么开发,只不过我们将他们注册到OWIN Pipeline中去处理HTTP请求,成为OWIN管道的一部分,所以此处的Application即正在意义上的处理程序代码。

=========百度百科=============

3:Program文件的出现:

托管和运行ASP.NET Core应用程序的新运行时基础结构。请看下面流程知道Program作用:

Internet<-->web服务器<-->主ASP.NET控制台应用程序(内置的WEB服务器<->你的asp.net代码)

Web服务器通过一个配置的端口与完全解耦的可执行文件通信,并将传入的请求转发给控制台应用程序,这个控制台程序由一个必要的HTTP模型块进入IIS进程空间生成,该HTTP模块使IIS能够支持ASP.NET Core。要将ASP.NET Core应用程序托管到其他Web服务器,必须有类似的扩展模块。

4:Startup用途

其中的类用来配置请求管道,请求管道则处理发送给应用程序的所有请求。至少包含两个方法,供应宿主在初始化应用程序的时候回调。ConfigureServices和Configure。ConfigureServices用于添加应用程序需要使用的依赖注入机制服务。Configure是用来配置前面的请求的服务。他们都是通过反射来发现并调用的

 

相关文章
|
存储 Cloud Native 应用服务中间件
带你读《Apache Tomcat的云原生演进》——Secure By Default Web Applications Apache Sling-Robert Munteanu(6)
带你读《Apache Tomcat的云原生演进》——Secure By Default Web Applications Apache Sling-Robert Munteanu(6)
|
存储 Cloud Native 安全
带你读《Apache Tomcat的云原生演进》——Secure By Default Web Applications Apache Sling-Robert Munteanu(8)
带你读《Apache Tomcat的云原生演进》——Secure By Default Web Applications Apache Sling-Robert Munteanu(8)
|
Cloud Native 安全 应用服务中间件
带你读《Apache Tomcat的云原生演进》——Secure By Default Web Applications Apache Sling-Robert Munteanu(1)
带你读《Apache Tomcat的云原生演进》——Secure By Default Web Applications Apache Sling-Robert Munteanu(1)
|
Cloud Native 安全 应用服务中间件
带你读《Apache Tomcat的云原生演进》——Secure By Default Web Applications Apache Sling-Robert Munteanu(2)
带你读《Apache Tomcat的云原生演进》——Secure By Default Web Applications Apache Sling-Robert Munteanu(2)
|
应用服务中间件
Tomcat闪退,出现The JAVA_HOME environment variable is not defined correctly的解决方案
Tomcat出现The JAVA_HOME environment variable is not defined correctly问题的解决方案
Tomcat闪退,出现The JAVA_HOME environment variable is not defined correctly的解决方案
|
算法 前端开发 .NET