《从零开始学ASP.NET CORE MVC》:ASP.NET Core 中的 Main方法(5)
本文出自《从零开始学ASP.NET CORE MVC》
推荐文章:ASP.NET Core Web 项目文件
ASP.NET Core 中的 Main方法
一个开始专心写字的人
在ASP.NET Core项目中,我们有一个名为Program.cs
的文件。在这个文件中,我们有一个public static void Main()
方法 。
public class Program{public static void Main(string[] args){ CreateWebHostBuilder(args).Build().Run(); }
public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>();}
如果您对传统的.NET Framework有任何使用经验,则知道控制台应用程序具有Main()方法,它是该控制台程序的入口。
但今天,我们正在创建一个ASP.NET Core Web应用程序而不是控制台应用程序。因此,我们想到的一个显而易见的问题是。
为什么我们也会有一个Main()
方法?
所以这个知识点,要记住的。ASP.NET Core 应用程序最初作为控制台应用程序启动,而Program.cs
文件中的Main()
方法就是入口。
因此,当运行时执行我们的应用程序时,它会查找此Main()
方法以及执行配置开始的地方。
这个Main()
方法配置asp.net Core 并启动它,此时,它成为一个asp.net Core Web应用程序。因此,如果你跟踪一下Main()
方法,它会调用CreateWebHostBuilder()方法传递命令行参数。
然后你就可以看到,CreateWebHostBuilder()方法返回一个实现IWebHostBuilder的对象。
在此对象上,调用Build()
方法,会将我们的ASP.NET Core 应用程序生成并且托管到服务器上。
在服务器上的程序调用Run()
方法,该方法运行后Web应用程序并开始侦听传入的HTTP请求。
CreateWebHostBuilder()
方法调用静态类WebHost
中的静态方法CreateDefaultBuilder()
。
CreateDefaultBuilder()
方法会在服务器上创建一个已经预设置好的默认值。
CreateDefaultBuilder()
方法执行多项操作来创建服务器.
我们在后面的视频中详细讨论
CreateDefaultBuilder()
中的所有方法。
而现在你只需要了解CreateDefaultBuilder()
方法是用于在服务器上创建程序配置的默认值而存在。
它作为设置服务器的一部分,还使用了IWebHostBuilder
接口中的UseStartup()
的扩展方法来配置Startup
类。
如果您不熟悉扩展方法的概念, 那么你该去补课了。
按照微软的规则,ASP.NET Core中的启动类名为Startup
。 这个类有2种方法。
public class Startup{public void ConfigureServices(IServiceCollection services){ }
public void Configure(IApplicationBuilder app, IHostingEnvironment env){if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); }
app.Run(async (context) => { await context.Response.WriteAsync("Hello World!"); }); }}
Startup类虽然只有两个方法,但是这两个方法做了非常重要的事情:
ConfigureServices()
方法配置应用程序所需的服务Configure()
方法配置应用程序的请求处理管道
我们理解这两种方法的作用是非常重要。
在后面的课程中,我们会大量使用这两种方法。到时候需要大家多次加深印象。
硬广专区
如果您觉得我的文章质量还不错,欢迎打赏,也可以订阅我的视频哦
未得到授权不得擅自转载本文内容,52abp.com保留版权
文字版目录: https://www.52abp.com/Wiki/mvc/latest/1.Intro
代码托管地址:https://gitee.com/aiabpedu
知乎专栏:https://zhuanlan.zhihu.com/52abp交流QQ群:952387474《微软MVP带你学ASP.NET CORE》
【收费】腾讯课堂: https://ke.qq.com/course/392589?tuin=2522cdf3
【免费】youtube视频专区:http://t.cn/Ei0F2EB
【免费】B站: https://space.bilibili.com/2954671
免费的更新慢,收费的更新快,仅此而已。就这样。
「好看」的人都【在看】↓↓↓
《从零开始学ASP.NET CORE MVC》:ASP.NET Core 中的 Main方法(5)相关推荐
- 用ASP.NET Core MVC 和 EF Core 构建Web应用 (一)
系统必备 .NET Core 2.0.0 SDK 或更高版本. 已安装 ASP.NET 和 Web 开发工作负载的 Visual Studio 2017 15.3 版或更高版本. 创建Web应用程序 ...
- ASP.NET Core MVC 和 EF Core 教程 - 创建、读取、更新和删除
作者:Tom Dykstra 和 Rick Anderson Contoso 大学示例 web 应用程序演示如何使用 Entity Framework Core 和 Visual Studio 创建 ...
- 使用.NET Core MVC Web应用程序中的ResponseCache属性处理缓存
HTTP响应的缓存意味着当发出HTTP请求时,服务器生成的响应由浏览器或服务器存储在某个地方,以便在对同一资源的连续HTTP请求中重复使用.实质上,我们正在存储生成的响应,并将该响应重用于后续请求一段 ...
- 【从零开始学GIS再到精通GIS】ArcGIS中的绘图基操作(一)
(收藏的同时麻烦点赞啊亲!) 大家好 最近和几个刚入行的小朋友们聊天,发现小朋友们现在很关注热点,并且有着一个共性的担忧: "国土空间规划是规划行业的未来,可是我们学校还不教我们GIS,好慌 ...
- 基于Asp.Net Core Mvc和EntityFramework Core 的实战入门教程系列-2
来个目录吧: 第一章-入门 第二章- Entity Framework Core Nuget包管理 第三章-创建.修改.删除.查询 第四章-排序.过滤.分页.分组 第五章-迁移,EF Core 的co ...
- 用ASP.NET Core MVC 和 EF Core 构建Web应用 (六)
前面创建了学校数据模型. 本节将读取并显示相关数据 - 即 Entity Framework 加载到导航属性中的数据. 相关数据的预先加载.显式加载和延迟加载 对象关系映射 (ORM) 框架(如 En ...
- 从零开始学java 框架_从零开始学 Java - 搭建 Spring MVC 框架
如果创建一个 Spring 项目 Spring MVC 框架在 Java 的 Web 项目中应该是无人不知的吧,你不会搭建一个 Spring 框架?作为身为一个刚刚学习Java的我都会,如果你不会的话 ...
- ASP.NET Core 进程内(InProcess)托管(6)《从零开始学ASP.NET CORE MVC》:
本文出自<从零开始学ASP.NET CORE MVC> 推荐文章:ASP.NET Core 中的 Main方法 ASP.NET Core 进程内(InProcess)托管 在这个视频中我们 ...
- 《从零开始学ASP.NET CORE MVC》课程介绍
大家好,欢迎来到52ABP学院,收看我们的 <从零开始学ASP.NET CORE MVC>. ASP.NET Core 简介 从2015年开始随时互联网成长,云计算和AI.大数据的爆发,大 ...
最新文章
- 获取保存在沙盒中plist文件的用户的字典信息
- RT-Thread与智能车比赛
- ubuntu 启动器
- Spring Boot-自动配置之底层原理
- 怎么在android中定义泛型,android – 如何在GSON TypeToken类中使用自定义泛型?
- audino python_用 Python 实现 PowerDesigner 数据模型文件的处理
- nginx php分离,nginx-php配置动静分离
- 20145239杜文超 《Java程序设计》第7周学习总结
- 桂电计算机实训报告总结,桂林电子科技大学信息科技学院
- java ajax cookies_HttpOnly cookie如何处理AJAX请求?
- Vegas轻松get制作动态背景技能
- go并发编程之美(二)、go内存模型
- 几种取时间的方法(附代码)
- android 休眠锁
- vue将json格式的字符串格式化后输出到web界面上
- 词汇怎么背---30天搞定8000单词
- C++ inline weak symbol and so on
- ie加载项存在残留是什么_Win7系统遇到IE加载项故障的原因及两种解决办法
- 更新adfs的证书_ADFS服务证书更新介绍
- STM32学习日记1---光敏传感器模块