.NET Framework 的版本:市场 vs 现实

阅读数:169 2008 年 4 月 23 日

话题:.NET语言 & 开发

由于微软对于.NET Framework 3.0 的版本定制策略让社区有些迷糊,Scott Hanselman解释了市场与现实之间的偏差以及其原因。

在 Scott Hanselman 在他的文章“如何让一个 IIS 应用程序或应用程序池使用 ASP.NET 3.5 而不是 2.0”里回答了问题之后,有关版本的各种疑问又重新浮出水面了。开发人员希望知道如何配置 IIS 可以使他们的应用程序能够使用最新的 LINQ 特性以及 WCF 的 REST 支持。

这个问题的答案非常简单:如果要使用.NET Framework 3.5,只需配置应用程序中的 web.config 文件即可,因为“最重要的东西是在 assemblies 配置节中新添加的程序集”而不是 IIS。您的应用程序池必须依旧使用 CLR 2.0 版本,例如.NET Framework 2.0。

与版本有关的各种疑惑大都源于这样的猜测:“框架的每个主要版本都会带来一个新的 CLR”。不过事实上 CLR 依旧基于 2.0 版本,也就是说“框架版本 != CLR 版本”。

  • .NET Framework 1.x = CLR 1.x
  • .NET Framework 2.0 = CLR 2.0
  • .NET Framework 3.0 = CLR 2.0
  • .NET Framework 3.5 = CLR 2.0 + (C# 3.0 | VB9)

因此.NET Framework 的版本更像是一种“市场说法”,并不代表 CLR 或编译器的版本。

.NET Framework 3.0 添加了“三个主要的类库:WCF (Windows Communication Foundation 即 Indigo)、WPF (Windows Presentation Foundation 即 Avalon) 和 Windows Workflow 即 WF。

至少:您不必担心安装.NET 3.0 会对您的系统造成任何重大改变。您的 2.0 程序在安装了 3.0 的系统上运行。它们都是使用 2.0 版本编译器生成的,在 CLR 2.0 中运行的 2.0 应用。

.NET Framework 3.5 带来了“新的 C# 和 VB 语言的编译器”,它们都是使用诸如 LINQ 等新语言特性的必要组件。除此之外它还包含了一些新的程序集,例如“为 Windows Communication Foundation 所提供的 REST 支持”以及之前有过独立下载版本的 ASP.NET AJAX。

.NET Framework 4.0 可能会引入Dynamic Language Runtime(DLR),到那时候市场和现实又该出现一次碰撞了。

查看英文原文:.NET Framework Versions: Marketing vs. Reality