深入研究 Mini ASP.NET Core(迷你 ASP.NET Core),看看 ASP.NE
前言几年前,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 方法? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – .NET MVC – 调用控制器来自另一个控制器动
- asp.net-mvc-3 – 错误:asp.net mvc3中当前上下文中不存在
- .net – 排除某些页面使用HTTPModule
- asp.net – 从1.7到1.9的迷你探查器升级破坏了现有代码
- asp.net-mvc – Razor:如何填写textarea?
- ASP.NET 2.0:编写错误页面的最佳实践
- asp.net – ValidationAttribute类的RequiresValidationCon
- asp.net – 会话最佳实践
- asp.net-mvc – 通过MvcContrib进行协作编程的MEF与便携式区
- 在ASP.NET中生成新的SessionId
- asp.net – 我被困在UpdatePanel陷阱中
- asp.net – 如何防止未经授权的蜘蛛侠
- 创建可扩展的ASP.Net MVC网站,而无需使用Session
- asp.net – 如何防止在BundleTransformer中使用*
- asp.net – NodaTime转换(第2部分).如何?
- ASP.NET FileUpload以及文件下载和Repeater控件显
- asp.net-mvc – 如何在使用Html.BeginForm时使用
- asp.net – “连接字符串指定本地Sql Server Exp
- ASP.NET Active Directory成员资格提供程序和SQL
- asp.net-mvc – 如何最好在服务器上安装MVC 3?