为什么 C# .Net Framework Web 窗体应用程序没有 Main 函数,或者 Program.cs

Why doesn't C# .Net Framework Web Form Application have a Main function, or Program.cs

我按照一些教程创建了一个新的 C# .Net Framework 4.6 应用程序作为 Web 表单类型。在处理该项目时,我注意到它也没有用于添加逻辑的 Main Function,它也没有 program.cs,但它能够正常构建。为什么会这样,我的印象是所有 C# 程序都需要一个 main 函数作为入口点启动,并且在网上看到多个资源指出 (https://www.c-sharpcorner.com/blogs/main-method-in-c-sharp, https://www.completecsharptutorial.com/basic/main-method.php).

如果我们不需要它,可以替换它并用作代码入口点。我也注意到没有program.cs这是什么原因。我一直在研究,但我发现发布的答案与代码中的实际内容非常矛盾。

因为在旧的(.NET Framework)中,它在进程中运行 - 启动代码出于某种原因大部分是历史文件(ASP pre .NET)在一个文件中GLOBAL.ASAX

What is the purpose of global.asax in asp.net

同样,这实际上可以追溯到 asp.net mvc 跟进 asp(pre .net)的概念。它在核心版本中得到纠正,基本上为应用程序启动一个程序。

ASP.NET 应用程序确实有一个入口点,但采用的是迂回方式。

对于 .NETFramework ASP.NET Web Forms 应用程序,您通常会有一个 Global.aspx.cs 文件,其中包含一个 Application_Start 方法来执行您的应用程序配置(路由等)。

https://docs.microsoft.com/en-us/previous-versions/ms178473(v=vs.140)?redirectedfrom=MSDN#life-cycle-events-and-the-globalasax-file

Web 表单或应用不是“程序”。它是基础 ASP.NET 服务引用的页面和其他 类 的集合。

ASP.NET 生态系统还有很多细节,但主要原因是因为站点不是需要入口点的“程序”。只有控制台应用程序和 windows 应用程序需要入口点。