使用 .NET 4.0 还是 .NET 3.5?
Posted
技术标签:
【中文标题】使用 .NET 4.0 还是 .NET 3.5?【英文标题】:Use .NET 4.0 or .NET 3.5? 【发布时间】:2012-03-07 09:04:59 【问题描述】:Windows 7 和 Vista 安装了 .NET 2.0/3.5 语言运行时,因此您在 3.5 中编写的任何代码都可以在 Windows 7 上运行,而且大部分也可以在 Vista 上运行。但 Windows 8 仅提供 .NET 4.0 CLR。使用 .NET 3.5 执行程序集构建时,Windows 8 需要安装 .NET 3.5 运行时。 这将是 .NET 3.5 的反面,但 .NET 4.0 的反面将是 Windows 7 及更低版本的低市场份额。
如果你想要高兼容性应该使用什么.NET框架?
【问题讨论】:
.NET 4.0 不向下兼容吗? Windows Vista 附带 .NET Framework 3.0 是的。唯一的问题是超过 1.1 .NET 4.0 是与 .NET 3.5(即 CLR 2.0)不同的 CLR @Devils,我不确定你是否担心 - 如果兼容性是这样的话,那么显然 .NET 4 作为其最新版本是赢家,向后兼容并将与新操作系统一起出现。如果担心迫使用户下载和安装 .NET Fx,那么您就没有考虑 Windows XP(在全球范围内拥有 45% 的份额,在美国拥有 28% - 请参阅 netmarketshare.com/…) - XP 不包括 .NET 3.5/ 4.0 开箱即用。因此,如果这是问题,我不会太担心下载部分。 【参考方案1】:根据this MSDN article,您无需在 Windows 8 上安装 3.5,因为它向后兼容:
.NET Framework 4 向后兼容使用 .NET Framework 1.1、2.0、3.0 和 3.5 版本构建的应用程序。换句话说,使用以前版本的 .NET Framework 构建的应用程序和组件可以在 .NET Framework 4 上运行。
另外,这个问题可能很有趣: https://serverfault.com/questions/121563/are-net-versions-backwards-compatible.
【讨论】:
我已经测试了 Windows 8 的消费者预览版,并且在执行 .NET 3.5 编译的可执行文件时确实需要安装 .NET 3.5。在这件事上,知道今天有多少台机器安装了 .NET 4.0 会很有趣。 是的。我使用 3.5 开发,当在普通 Windows 8 机器上运行时,应用程序拒绝运行,必须安装 3.5。【参考方案2】:嗯,这实际上取决于您打算如何部署应用程序。 我相信使用 .net 4.0 只能是一个好主意,因为安装更新版本的框架真的很容易,尤其是使用 VS 中内置的部署工具。
既然有可能使用更好的版本,为什么还要选择“旧”的框架呢?您会从使用 4.0 而不是 3.5 中获得任何好处吗?
我相信是的,但也许不是,在这种情况下你可以选择 3.5
【讨论】:
【参考方案3】:我认为问题的方向是,操作系统将“开箱即用”支持什么框架。但是正如您已经注意到的那样,它们在不同的操作系统之间没有共同的基础。您所能做的就是构建一个检查需求的设置项目。
但我认为您应该使用 .Net 4,因为它具有安装所需的最小占用空间。欲了解更多信息,您可以查看smallestdotnet。
【讨论】:
【参考方案4】:.Net 甚至支持并行执行。 有关详细信息,请查看此 MSDN 文章。 所以运行代码 >=2.0 对以后的版本不会有问题。 如果不需要 TPL,3.5 是一个合理的选择。
【讨论】:
【参考方案5】:我认为 4 .NET 包括从 1.0 开始的所有先前版本的框架。但似乎 3.5 在 Windows 8 中应该是 explicitly "enabled"。无论如何 4.0 是最好的选择。
【讨论】:
以上是关于使用 .NET 4.0 还是 .NET 3.5?的主要内容,如果未能解决你的问题,请参考以下文章
插件项目必须是.NET 3.5 其余代码库是.NET 4.0 怎么解决?
我可以在面向 .Net 3.5 的项目中使用所有 C# 4.0 功能吗?