问题标签 [legacy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
83 浏览

scheduling - Manugistics/Avyx 森林和树木调度实用程序

1994 年,有人使用定义森林和树木的软件调度包为 NASA 编写了一个调度包。除了一个库之外,我拥有该软件包的完整源代码。包含文件中没有任何迹象表明它是谁写的,但我有理由相信它是 Manugistics。任何人都可以提供任何见解吗?

0 投票
3 回答
547 浏览

.net - 遗留代码、遗留工具——怎么办?

我有一个有点老的项目,我称之为遗产。

它的一些特点是:

  1. 它是一个工作产品(大约 3 年),并且正在不断开发中。
  2. 代码库非常大,包括(CS、SQL、ASPX、Jayrock、JS/HTML/CSS 等)
  3. 平台是 .NET 1.1。
  4. IDE 是 Borland C# Builder 2006(什么...)。
  5. 其他工具是 Enterprise Core Objects 3 (for .NET 1.1) (Model Driven Architecture - O/RM from UML)。
  6. 此外还使用 Telerik RadControls。
  7. 主要是一位活跃的开发人员。
  8. 对业务对象进行了大量测试,但 UI(WebForms)根本不是可测试的 ATM(没有应用 MVP/MVC 等)。
  9. 我必须接受代码质量不是“最好的”并且仍然保持在“足够好”的标记上(所以这不是从头开始重写的主要原因)

这个项目的问题是:

  1. .NET 1.1 - 该平台不再“活跃”。
  2. IDE - 一直在苦苦挣扎。只是工作痛苦。糟糕的工具支持,任何重构基本上都是手工完成的。
  3. ECO3 框架 - 为迁移到 ECO5(以及因此 .NET 3.5)付出了很多努力。
  4. 从 ECO3 迁移到 NHibernate(最好)将花费更多时间(因为所有逻辑/测试都应该重写)。
  5. ECO3 严重依赖 IDE,因此仅更改 IDE 几乎是不可能的。
  6. 通常迁移到 .NET 3.5 会花费很多时间(尤其是对于 1 个开发人员而言)。

我想听听关于如何处理这个项目的任何建议/提示。
我应该继续在那种环境中工作吗?
如果不是,那么在几天内迁移整个项目的最佳方法是什么(几周内的延迟太长 ATM)。是的,我知道它会在以后得到回报,但我现在不能这样做。

一般欢迎任何建议。

干杯,
德米特里。

0 投票
6 回答
535 浏览

architecture - 重建遗留应用程序的策略

我有一个新的任务即将到来,我在 .Net WPF 中重新设计了一些旧的 COM 应用程序。如果可能的话,我需要重用功能或现有代码,但是我怀疑这样做的范围是有限的。

我需要复制现有功能,但需要使用现代且可扩展的架构来实现它。

有没有人对处理这种类型的项目有任何一般性建议?有没有关于这个主题的好资源?

是否有任何久经考验的技术或常见的陷阱?

0 投票
1 回答
386 浏览

python - Django 和奇怪的遗留数据库表

我正在尝试在 Django 中集成一个遗留数据库。

我遇到了一些由糟糕的数据库设计导致的奇怪表的问题,但我不能随意更改它。

问题是有些表没有主键 ID,但是有产品 ID,问题来了,如果某个列需要多个值,它们中的很多都是多个,例如

是否有可能绕过通常的主键行为并编写一个函数,该函数为具有多行的此类 ID 返回一个对象?列名字符串可以成为一个列表。

不需要手动编辑,因为这是从另一个系统导出的数据,我只需要访问它..

0 投票
5 回答
1452 浏览

xml - 帮我解释一下 XML 和其他标记语言的好处

我试图让我公司的一些高级人员相信在我们的两个系统之间以结构化格式传输数据的优势。

目前,一个系统输出平面文本文件,并且必须编写复杂的解析器来提取另一侧的数据。每次数据变化,“位置”都要调整,维护和测试很头疼。

这里的双方都有用于创建和操作 XML 的内置设施,所以我所追求的是一篇有说服力的文章、文档、博客文章等,介绍 XML(或任何其他标记语言)作为平面文本的替代品,针对那些可能以前没有使用过它。

非常感谢

0 投票
1 回答
127 浏览

c - 是否有任何工具可以将界面从传统 GTK 应用程序迁移到基于现代 GTK Builder 的应用程序

我负责一些基于 C 的遗留 GTK 应用程序,这些应用程序开始显示其年龄。我正在玩弄在一个更现代的框架中重新实现其中一些的想法。是否有任何工具可以帮助将基于 C 的手工构建的 GTK 接口迁移到基于 GTK Builder 的 XML 接口描述?我的目标是将接口定义与实际的应用程序实现分开。

我怀疑有可能跟踪一个应用程序并从 GTK 库调用中重新构建接口,但如果有人已经解决了这个问题,我很高兴不重新发明轮子。

0 投票
3 回答
1560 浏览

c++ - 用于庞大的遗留代码库的 MSTest

我们有一个庞大的代码库,包含大约 1000k 行本机/非托管遗留 c++ - 代码,我们将为代码提供单元测试,MSTest 将非常适合我们当前的开发环境(TFS,VS 2010,...)。我知道 MSTest 最初是为了测试托管代码,但它也可以为非托管 sc 编写单元测试。

将 MSTest 用于非托管代码是否有任何(以后)缺点?有没有人有这方面的经验?

第二种意见是使用 Google.Test,但我必须编写一个 Visual Studio 插件才能将 gtest 框架集成到我们的环境中。

提前致谢!

0 投票
1 回答
141 浏览

perl - 如何将 Catalyst 的某些部分集成到旧版 web 应用程序中?

我正在为一个经典的遗留项目苦苦挣扎:手动 URL 解析和组合、手动路由等。了解一点 Catalyst 我至少渴望一些概念,例如正确(又名透明)的 URL 路由和参数解析。理想情况下,我会使用 Catalyst 并完成它,但鉴于它是一个遗留项目,我想我只有两个选择:

  1. 在我的项目中以某种方式使用 Catalyst 的某些部分——我不确定这是否可能。是吗?
  2. 使用单个模块来实现 Catalyst 框架的一部分——你有什么经验,可以推荐哪些模块?
0 投票
2 回答
205 浏览

database - 遗留应用程序使用什么数据库技术?

我正在寻求建议。我知道 stackoverflow 喜欢“可回答”的问题,我希望是这样。

我有一个使用专有 (ISAM) 数据库的大型遗留 (Windows) 应用程序。我希望研究将其转移到使用 SQL 数据库:主要是 MS SQL Server,我不介意 Oracle 的灵活性,但这只是“会很好”,并且可能不会对决定产生太大影响。

该应用程序是用 C/C++/MFC 编写的,而不是托管的。在这个阶段,我非常期待“原型”一个初始的解决方案尝试。我希望这不要太复杂,如果整个过程看起来像是在某个地方,它可以被改进。

我看到的候选人是:

  • ODBC
  • OLEDB
  • 网络

其中我想我已经了解到,现在我应该更喜欢 OLEDB 而不是 ODBC。我知道 ADO.NET 但不知道其他人。但是,ADO.NET 将要求我使用应用程序中的 .NET/CLR/托管代码,目前它不这样做。

关于走哪条路有什么建议吗?原型设计速度/简单性将不胜感激,但显然,如果我知道最终解决方案将需要不同的访问方法,那么从另一个开始可能会很愚蠢。(如果不建议我重新设计/重写整个应用程序,我将不胜感激。)

0 投票
1 回答
660 浏览

architecture - 通过 AOP 或其他自动化方式重构令人讨厌的遗留系统?

我最近一直在玩 PostSharp,它让我想起了几年前我遇到的一个问题:客户的开发人员已经制作了一个 Web 应用程序,但他们没有太多考虑如何管理状态信息 - 存储它(不要问我为什么)静态地在 IIS 中的 Application 实例上。毋庸置疑,该系统无法扩展,并且存在严重缺陷和不稳定。但这是一个庞大且非常复杂的系统,因此重新开发它的成本令人望而却步。我当时的简介是尝试重构代码库以在组件之间施加适当的解耦。

当时我尝试使用某种抽象机制来拦截对静态资源的所有调用,并将它们重定向到可以正确管理状态数据的组件。问题是大约有 1000 个复杂的引用需要重定向(我没有太多时间去做)手动编码(即使使用 R#)被证明太耗时了——我们废弃了代码库并正确地重写它。重写花了一年多的时间。

我现在想知道的是 - 如果我可以访问程序集重写器和/或面向方面的编程系统(例如 PostSharp),我是否可以轻松地自动化查找直接引用并将它们转换为可以重定向的接口引用的重构过程由工厂自动供应。

有没有人使用 PostSharp 或类似系统来修复病态遗留系统?这些项目有多成功?事后你发现付出的努力是值得的吗?你会再做吗?

更新:有关更多讨论,请参阅博客文章。