由于微软对于.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),到那时候市场和现实又该出现一次碰撞了。
评论