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

时间:2021-02-22 19:45:51

标签: asp.net clr .net-framework-version

我对 ASP.NET.NET FrameworkCommon Language Runtime (CLR) 之间的区别有点困惑。如果有人可以对差异进行简单的要点解释,好吗?

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

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

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

1 个答案:

答案 0 :(得分:0)

ASP.NET = 您在进行 Web 开发,并且使用 .net 代码。

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

您可能会为 Web 应用程序编写一些 .net 代码。这就是所谓的asp.net。 (但同样,它只需要 .net 框架来工作、运行和执行您编写的代码。因此,.net 框架可以很像一个“运行时”。

就像说您需要 VB6 运行时来执行 VB6 代码,或者说 Access 运行时来运行 + 执行 ms-access 代码和应用程​​序。

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

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

因此您可能会使用 .net 框架来编写桌面软件。 (无论是 winforms -(较旧的),还是较新的 WPF 系统。(但在这两种情况下,您仍在编写 .net 代码,并且在这两种情况下,您仍然需要 .net 框架来编写并运行该桌面软件。

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

所以,以上总结了这里的问题。

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

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

当然,asp.net 和基于 Web 的系统与桌面非常不同 - 所以就像狗和马非常不同,当然基于 Web 的软件与桌面软件也有很大不同 - 但你可以使用 . net 框架并在这两种情况下编写 .net 代码。

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

至于 .net 4.0。好吧,他们试图保持兼容性。那么 4.0、4.5、4.7 等等?它们都在 .net 4.0 文件夹下。因此,“4.0 bla bla bla”可以表示 4 系列中的 4.0 及更高版本。

相关问题