ASP.NET`、.NET Framework和公共语言运行时(CLR)的区别和用途是什么?

ASP.NET`、.NET Framework和公共语言运行时(CLR)的区别和用途是什么?,asp.net,clr,.net-framework-version,Asp.net,Clr,.net Framework Version,我对ASP.NET、.NET Framework和公共语言运行库(CLR)之间的区别有点困惑。如果有人能对这种差异给出一个简单的、要点式的解释,好吗 此应用程序错误页面显示.NET Framework 4.030319和ASP.NET 4.8,但我不确定它们是否为误报 我做了一些搜索,得到的印象是ASP.NET和.NET Framework必须运行相同的版本才能工作?也就是说,它们不能运行彼此的两个不同变体 应用程序错误页中的版本是4.030319,指的是.NET Framework版本,还是C

我对
ASP.NET
.NET Framework
公共语言运行库(CLR)
之间的区别有点困惑。如果有人能对这种差异给出一个简单的、要点式的解释,好吗

此应用程序错误页面显示
.NET Framework 4.030319
ASP.NET 4.8
,但我不确定它们是否为误报

我做了一些搜索,得到的印象是
ASP.NET
.NET Framework
必须运行相同的版本才能工作?也就是说,它们不能运行彼此的两个不同变体


应用程序错误页中的版本是
4.030319
,指的是
.NET Framework版本
,还是
CLR版本

ASP.NET=您正在进行web开发,并且使用的是.NET代码

.net框架。这是您编写代码所使用的工具集,以及可以“运行+使用”您的.net代码的系统。因此,您可以为桌面编写一些.net代码。您需要+使用.net framework

您可以为web应用程序编写一些.net代码。这就是asp.net。(但同样,它只需要.net framework来工作、运行和执行您编写的代码。因此,.net framework可以说是一个“运行时”

就像说您需要VB6运行时来执行VB6代码,或者说Access运行时来运行并执行ms Access代码和应用程序一样

同样的想法也适用于.net framework。因此,如果要编写asp.net系统(基于web的系统),那么服务器端代码将需要支持并运行.net framework

在所有这些情况下,您在.net(c#,vb.net)中编写的代码被编译为“IL”或所谓的中间语言。一旦发生这种情况,CLR(公共语言运行库)就可以执行该代码

因此,您可以使用.net framework来编写桌面软件。(winforms-(旧版)或更新的WPF系统。(但在这两种情况下,您仍然在编写.net代码,并且在这两种情况下,您仍然需要.net framework来编写并运行该桌面软件。)

如果你说你在写asp.net软件,那么我就知道你在使用.net框架,但是你在写一个基于WEB的应用程序

因此,上面相当多的内容总结了这里的问题

因为你可以编写基于web的软件(asp.net)和桌面软件(winforms或WPF),所以当你与我交谈时,你需要使用适当的术语。如果你说asp.net,那么我知道这是基于web的,我知道你没有使用PHP或其他web系统或所谓的web“堆栈”来创建网站

您可以使用VisualStudio编写桌面软件、web软件,并且在这两种情况下都可以使用所谓的.net框架来实现这一目标

当然,asp.net和基于web的系统与桌面非常不同——就像狗和马是非常不同的一样,当然,基于web的软件与桌面软件是非常不同的——但在这两种情况下,您都可以使用.net framework并编写.net代码

但是,如果使用正确的术语,那么上下文就很重要。如果您使用asp.net,那么显然您没有使用.net framework中的桌面控件,而是使用.net framework中的基于web的控件。(同样,这些控件也大不相同——尽管您在这两种情况下都编写了C#或vb.net代码


至于.net 4.0。他们试图保持事物的兼容性。因此4.0、4.5、4.7等?它们都位于.net 4.0文件夹下。因此,“4.0 bla bla bla bla”在4系列中可能意味着4.0及以上版本。

感谢您的解释。这比以前更有意义:)