旧的遗留代码与新功能和库

Old legacy code vs new features and libraries

我已经阅读了关于 SO 的相同问题,该问题已作为题外话关闭。我的问题也和那个问题有关,也和那个问题无关。

我们有多个桌面应用程序是使用 .Net framework 2.0 在 Vb.net 中编写的。我们计划将现有应用程序升级到 3.5。以下是我们目前遇到的主要困惑。

我们被建议不要升级到 3.5,我们应该直接升级到 4.5,无论我们没有使用 3.5 或 4.5 的任何新功能。建议升级到4.5不需要额外的工作,将来对我们有好处。我们无法决定应该使用哪个升级。

有一些旧代码用于处理 HTML 文本。我们目前正在使用 SubString 和 IndexOf 创建用于提取和处理相关数据的逻辑。我们还被建议在这种情况下与 Regex 一起使用 HtmlAgility 包。我们不确定这是否是正确的做法。我一直不太喜欢外部库。它们是否比旧的本机代码(如 SubString 和 IndexOf)更有效和有益?我们不想做一些将来会造成更多问题而不是好的事情。我总是怀疑外部库不够好,并且有未知和未报告的错误。

我们正在使用旧式代码,例如使用数组并在运行时使用 Dim Redim 调整它们的大小。还建议我们应该使用 ArrayList 或其他集合对象,并且应该升级我们的旧代码。

这需要大量的工作和大量的改变。我们不太喜欢现阶段的变化,因为它会扰乱我们现有的运营。这个问题的答案可能非常简短。我们只是想弄清楚我们什么时候应该升级我们的代码,以及外部库如 HtmlAgilityPack 或技术如 Regex 是否可以更有效和高效。

很抱歉,如果它看起来离题了,但这与我们的 .Net Framework 代码的规划和升级有关。

最简短的答案:听取开发者的建议。紧跟最新技术,使代码更具可重用性、可读性和通用性。

当我们从 .NET 2.0 迁移到 .NET 4.0 时,代码变得更易于维护并且代码量减少了。也比.NET2.0更安全,但是如果你打算发布商业产品,混淆仍然是必须的。

至于解析 HTML,最新版本的 HtmlAgilityPack 可以完美地执行基本 HTML 解析操作。它肯定可以与常规字符串方法结合使用,如果是更复杂的模式提取,则可以使用正则表达式。

希望我的回答对您有所帮助。