zoukankan      html  css  js  c++  java
  • 【多图,谨慎打开】深入研究 Mini ASP.NET Core(迷你 ASP.NET Core),看看 ASP.NET Core 内部到底是如何运行的

    前言

    几年前,Artech 老师写过一个 Mini MVC,用简单的代码告诉读者 ASP.NET MVC 内部到底是如何运行的。当时我研究完以后,受益匪浅,内心充满了对 Artech 老师的感激,然后用我自己理解的 MVC 知识,写了一篇 深入研究 蒋金楠(Artech)老师的 MiniMvc(迷你 MVC),看看 MVC 内部到底是如何运行的 ,写完更加加深了我对 ASP.NET MVC 的理解。今天 ASP.NET Core 已经更新到 3.0 Preview 4 了(今天是:2019-04-26 星期五晚上),同时 Artech 老师也发布了 Mini ASP.NET Core,故决定下载下来,反复调试跟踪,看看  ASP.NET Core 到底是如何运行的。

    介绍

    目前笔者时间不是很充分,文字的说明也许需要未来逐步去完善,本文章未来也会随时更新。目前截图中包含了一部分我自己的理解,还请见谅。下面正式开始。

    1. Main 方法

     

    2. WebHostBuilder 构造函数

     

    3. IWebHostBuilder 的扩展方法 - UseHttpListener

     

    4. HttpListenerServer 构造函数

     

    5. 回到 IWebHostBuilder 的扩展方法

     

    6. WebHostBuilder 的 UseServer 方法

     

    7. 回到 IWebHostBuilder 的扩展方法

     

    8. 回到 Main 方法

     

    9. WebHostBuilder 的 Configure 方法

     

    10. 回到 Main 方法

     

    11. WebHostBuilder 的 Build 方法

     

    12. ApplicationBuilder 构造函数

     

    13. 回到 WebHostBuilder 的 Build 方法

     

    14. 回到 Main 方法

     

    15. ApplicationBuilder 的 Use 方法

     

    16. 回到 Main 方法

     

    17. 再次回到 WebHostBuilder 的 Build 方法

     

    18. ApplicationBuilder 的 Build 方法

     

    19. WebHost 构造函数

     

    20. 再次回到 WebHostBuilder 的 Build 方法

     

    21. 回到 Main 方法

     

    22. WebHost 的 StartAsync 方法

     

    23. HttpListenerServer 的 StartAsync 方法

     

    ==========================华丽的分割线==========================================

    ==========================华丽的分割线==========================================

    24. HttpListenerFeature 的构造函数

     

    25. IFeatureCollection 的扩展方法 - Set 方法

     

    26. 回到 HttpListenerServer 的 StartAsync 方法

     

    27. HttpContext、HttpRequest、HttpResponse

     

    28. 再次回到 HttpListenerServer 的 StartAsync 方法

     

    29. 回到 ApplicationBuilder 的 Build 方法

    由于第 18 步只返回了一个委托(匿名方法的签名),并没有执行委托,这一步就是执行这个委托。

     

    30. 执行中间件(FooMiddleware、BarMiddleware、ProductMiddleware)委托链中的 FooMiddleware

     

    31. 再次回到 ApplicationBuilder 的 Build 方法

     

    32. 执行中间件(FooMiddleware、BarMiddleware、ProductMiddleware)委托链中的 FooMiddleware Next

    这一步 FooMiddleware 内部的 Response.WriteAsync 已经执行完毕,接着调用了 next 委托,向下执行。

     

    33. HttpResponse 的 WriteAsync 方法

     

  • 相关阅读:
    软件补丁问题(网络流24题)
    飞行员配对方案问题(网络流24题)
    [NOIp普及组2011]瑞士轮
    如何在Linux上安装QQ
    [洛谷P2420] 让我们异或吧
    高斯消元
    [SCOI2014]方伯伯的OJ
    [USACO1.3]虫洞
    KMP算法讲解
    [洛谷P1382] 楼房
  • 原文地址:https://www.cnblogs.com/Music/p/mini-asp-net-core.html
Copyright © 2011-2022 走看看