为啥不升级到最新的 .NET 框架?

Posted

技术标签:

【中文标题】为啥不升级到最新的 .NET 框架?【英文标题】:Why not upgrade to the latest .NET framework?为什么不升级到最新的 .NET 框架? 【发布时间】:2010-09-27 08:19:47 【问题描述】:

我看到很多人将 .NET 2.0 甚至 1.1 作为他们项目的要求。在我自己的工作场所,也有很多人对升级到最新最好的 .NET 框架持怀疑态度。

作为一名程序员,当您知道使用较新的框架可以更轻松地完成这项工作时,我觉得使用较旧的框架非常令人沮丧。我通常安装 beta 版本并使用它们,因此我很快熟悉它们,并在此过程中忘记了旧的做事方式,因此当你有使用旧版本的限制时,重新学习你试图忘记的东西是很痛苦的。

在应该兼容的情况下仍然坚持旧版本的原因是什么?如何说服人们升级?

【问题讨论】:

【参考方案1】:

因为它们“应该”兼容并不意味着它们是兼容的。版本之间总是存在重大变化。

此外,大多数 QA 程序规定更改代码需要重新测试该代码。更改框架将需要对代码进行完整的测试,并且需要更多的工时。

最新的!= 最棒的。问问任何不得不处理 Vista 的人。

编辑

关于 Vista……放松,这是一个例子!有多少在 Vista 上不适用而在 XP 上很好用的东西呢?在使用 Windows 2000 后,我很难转换到 XP - 还记得 98 有多糟糕吗?在那之后我不想离开我的“安全毯”。这不是 bash,真的。

【讨论】:

我不得不处理 Vista,我认为它是最棒的。 :P Vista 没有问题。 是否兼容并不重要,因为所有版本的框架都可以同时安装,并排运行。 讨厌 Vista 的人应该试试 Pre-SP1 XP,他们就会知道为什么人们留在 Win2000 :-) 还有操作系统!= 应用程序框架。 我妻子的笔记本电脑仍在等待可以让她应用 SP1 的图形驱动程序补丁【参考方案2】:

主要问题是您的应用程序需要特定版本的 .NET 框架;对于可能需要下载 100 MB 或更大的安装程序的最终用户来说,这并不好玩。

【讨论】:

我认为 .net 3.5 是由 windows update 推出的,所以大多数用户应该已经有了一个相当升级的框架 上次我检查的时候,这不是一个重要的更新,所以大多数用户不会得到它。 您知道吗,大多数使用 .NET Framework 3.5 的应用程序都可以使用高达 277KB 的客户端配置文件? hanselman.com/blog/… OwenP:这只是引导程序。整个客户资料约为 28mb。 我还是看不出来~28mb怎么能叫100+mb。【参考方案3】:

未提及的一个原因是 3.5 框架无法安装在 Windows XP 之前的 Windows 版本上。

支持的操作系统:Windows 服务器 2003;视窗服务器 2008; 视窗Vista;视窗XP

link text

【讨论】:

那么,谁还在使用 Windows 2000/ME? 很多人仍在服务器上使用 Windows 2000。它非常稳定,除非您想购买一堆新的 Windows 许可证,否则确实没有太多理由切换。 有时你无论如何都必须升级,然后你会后悔你坚持使用 win 2000 并且没有以较小的步骤进行升级 我今年工作的两家公司都在使用windows 2000 我们还有几台 2000 台机器在工作,让它们继续运行并为新项目安装第二台虚拟服务器要经济得多。 IIS7 和 6(默认文档上没有 url 变量)之间存在太多细微差别,无法 100% 导出工作。还要考虑所有的 COM 依赖项;)【参考方案4】:

我已经在这里发布了一些非常相似的内容:Is the C# 2.0 to C# 3.0 transition worth it for this project?,并且大多数人说它是兼容的,但由于项目已经在进行中,因此不值得切换。

如果您真的想在框架上添加新内容,则切换是合理的,否则您将需要免费更新 Visual Studio 的所有许可证,并且可能需要更改项目中的一些小东西。

【讨论】:

【参考方案5】:

我已将 1.1 项目迁移到 2.0 和 3.5 以及从 2.0 迁移到 3.5。

从我的经验中可以看出,我从 2.0 迁移到 3.5 完全没有问题。但是,我在从 1.1 到 2.0 或 3.5 的项目中遇到了一些错误,因此我必须建议人们在迁移 1.1 项目时要格外小心。

如果你在 2.0 中工作,我说去吧。您会发现项目运行速度更快,并且可以使用 LINQ :)

【讨论】:

【参考方案6】:

2.0 相对稳定,并且相当普遍。 1.1 较旧,这意味着它可能存在错误,并且它们的解决方法是众所周知的。我会很惊讶地发现一台没有安装 2.0 的 Windows 机器。这些因素可能会产生影响。

另外,考虑到人们可能在旧版框架出现之前就已经开始开发他们的产品。在很多情况下,如果您的应用程序是 .NET 2.0 应用程序,您可能不需要 3.x 框架中的任何内容。 Visual Studio 2008 可以针对 2.0 框架,因此没有真正迫切需要“升级”这些应用程序。在更改没有任何好处的情况下,验证一切是否正常运行的 QA 工作真的不值得。

最后,还有神话。人们喜欢相信他们的朋友,不管他们是否无知。根据您的要求,.NET Framework 3.5 的下载大小为 50 MB、100 MB、200 MB 或 1.82 TB。似乎人们选择了对手头的情况来说似乎很可怕的最大数字。这些人类似于宣扬这种被称为“互联网”的新发明的危险的人,它可能使我们所有人暴露在犯罪分子和危险之下。 You can download the framework in as little as 28 MB. 听起来很粗糙?现在你可以花 1 美元买到这么多容量的 USB 驱动器,而且我下载了更重的 PDF 文件。

【讨论】:

【参考方案7】:

首先,了解企业升级缓慢的原因。

对于大多数公司而言,计算机系统并不是战略优势。它们是必要的服务功能。

由于它们是必需的,因此破坏它们可能会非常昂贵。由于它们不是战略优势,因此能够稍微更快地发展并不是一个很大的优势。

您建议公司花费资源不断升级到最新版本,以获得可能但不确定且不是主要的收益,并且可能会出现很多损坏。对于大多数公司来说,这不是一场胜利。在它们出现一段时间后采用它们会更安全。他们错过了一些上涨,但避免了灾难性下跌的机会。

如果您愿意,可以继续建议升级到最新最好的版本,但是以商业(而不是技术)方式进行升级会更有效。尝试从数量上找出它将使您更有效的程度,以及公司可以节省多少。 (他们不会关注你编造的人物,可能会关注某个知名人士编造的人物,并且更有可能相信一项研究支持的东西。)承认不利因素,并说明可能的成本是多少将是,并找到限制下行空间的方法。对捏造任何事情要非常小心,因为决策者拒绝这类事情的经验比你提出它的经验要多得多。

不要提及喜欢最新产品的开发人员,否则你会被认为是想让公司为新玩具买单的人,并失去很多可信度。

你有时可以得到你想要的,但知道如何要求它会有所帮助。

【讨论】:

+1 有很多优点。当然,风险很大程度上取决于您经营的项目和业务。在我的工作中,我们现在将 2.0 作为指导方针,而升级到 3.5 sp1 应该是一个小风险。我认为很多升级的恐惧是缺乏对差异的理解。【参考方案8】:

如果您仍处于开发阶段并且尚未发布您的软件,则可以切换到较新的 fx 版本(对于 java 运行时也是如此)。但是,如果您已经发布了部署更新,那就更难了。在这种情况下,使用旧的效果会更容易。

【讨论】:

【参考方案9】:

请求软件的人可能不一定知道最新版本的框架是什么。

我看到的大多数客户都不是技术人员,只是要求他们想要的功能。

有些人专门要求使用 .NET 1.1/2.0,我们能够告诉他们,如果我们使用 3.5,开发成本将会降低,因为它更易于使用并且易于切换。

有些人可能担心与他们已有的东西整合。如果他们已有的东西是在 .NET 1.1 中构建的,他们可能希望坚持使用它以保持一切一致。

至于您自己的工作场所,我会说要负责并进行演示,以展示它有多么不同,一旦您学会了如何使用它是多么容易。关于如何在 .NET 3.5 和 VS2008 中使用新的动态数据内容,有一个很棒的屏幕截图。我公司有不少人看到最新版本的VS后安装了它。我试试看能不能找到链接。

http://blogs.msdn.com/davidebb/archive/2007/12/12/dynamic-data-screencast-is-now-available.aspx

【讨论】:

【参考方案10】:

我认为很多人忘记了不升级框架实际上有很多成本。

    有时您必须升级。您的操作系统或其他程序将不受支持。所以更多的是不时进行小升级或稍后进行大升级的问题。

    大多数程序员(我认为)都喜欢玩最新的玩具并学习新技术以保持动力。

    您将能够更快地创建程序,这当然会再次降低您的产品和项目的价格,从而在竞争中保持领先,您希望处于领先地位。

    李>

【讨论】:

【参考方案11】:

对我来说,这纯粹是为了钱 - 2.0 正在为公司工作,所以他们认为没有升级的动力。

我想这并不少见。

【讨论】:

【参考方案12】:

我们的许多客户对于可以在其业务线桌面上安装哪些软件都有严格的政策。它们甚至没有配置为在发布时接收 MS 自动更新,但只会应用由其自己的 IT 管理员推出的某些更新(这些桌面中的大多数都没有互联网连接)。

对于这样的客户,我们不能只发布依赖 .Net 3.5 的新版本软件。由于这些政策,我们将在 2.0 上再使用 18 个月(至少),直到我们现有的客户认为 .net 3.5 不是邪恶的并且不会破坏他们的任何业务线软件。 . .到那时 4.0 将被打破,我将不得不坐下来对这个时髦的“新”linq 东西感到满意,而其他人则可以使用很酷的 4.0 新功能 sigh

【讨论】:

【参考方案13】:

在新项目中跳入新框架更容易。

在现有项目中,要利用新功能需要一定的工作量。在许多情况下,这些只对程序员有益。当你在做一个只需要维护的项目时,你有时只需要耸耸肩说,这在版本 x 中会少很多。

【讨论】:

【参考方案14】:

Scott Hanselman 有一篇关于 3.5 SP1 不兼容性的文章:

http://www.hanselman.com/blog/UpdateOnNETFramework35SP1AndWindowsUpdate.aspx

尽管这只适用于一小部分错误,但底线是:新框架需要非常彻底的测试,而且不是 5 分钟的任务,因为虽然它 99.99% 兼容,但 0.01% 的不兼容性是真的很晦涩难找。

【讨论】:

以上是关于为啥不升级到最新的 .NET 框架?的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2019 未显示 .NET 5 框架

要求用户更新 .NET

为啥 Jayrock(.NET JSON-RPC 框架)不喜欢我的请求?

为啥最新版的VS2017没有net framework 4.6.2,且我无法安装

为啥 .NET 框架项目可以作为参考添加到 .NET Standard 2.0 项目中?

如何将.net framework 4.5升级到.net框架4.6?