问题标签 [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.
java - 您会为全新项目推荐 Java/Glassfish/Metro 吗?
我在 ASP.NET 2.0 中开发了一段时间,而在 Java/Spring/Hibernate 中开发的时间略短。现在我开始开发新的网络服务并且对以下选择感到困惑:
.NET WCF 3.5 与 Java/Metro。
从一方面来看,WCF 似乎是一个出色开发的解决方案,一个软件框架的杰作,具有对函数式语言的所有支持、简单的向导、简单的体系结构。缺点是它似乎只在 Windows 上运行(Mono 不支持 WCF),并且没有与 Ruby on Rails 完美集成(通过 JRuby,就像 Java 那样)。
Java 似乎真的过时了——没有运算符重载或泛型数组?!
所以,我的主要问题是:这里有人会使用 Java 开始一个新项目,还是它只是遗留软件的垂死语言?
PS。性能和数据库连接性都是主要优先事项,因此速度慢的 Perl、Ruby 或 Python 以及对数据库不友好的 C++ 都无从谈起。
聚苯乙烯。对于表示层,我使用的是 Ruby on Rails。
mainframe - 有人还在用 ObjectStar 编程吗(以前称为 Huron)
Huron 是4GL,起源于1990 年代初期的IBM 360大型机世界,由Amdahl Corporation创建和销售。它有一种人们喜欢或厌恶的专有解释语言和数据库,其最显着的特点是其不寻常的规则语言语法,以及与其查询语言的紧密集成,您必须编写自己的嵌套循环来实现连接。
通过适当使用间接(例如其原型“CALL TABLE.RULE”),可以快速创建极其紧凑、优雅和可扩展的解决方案。也有可能在坏人手中制造出噩梦般的无法维护的怪物,这些怪物可悲地扩散开来,对其声誉毫无作为。
它在 1990 年代中期更名为 ObjectStar,移植到 Unix 和 Windows NT,并提供了一个 UI 组件,可以创建事件驱动的客户端-服务器应用程序,无需修改即可在 Windows 或 Unix 上运行。
它从未真正获得成为顶级开发工具所需的临界质量,而且在世纪之交它几乎已经失败了。
回想起来,这是一种历史偏差。因此我的问题:
有人还在用吗?
或者甚至听说过它?
database - 当没有可用的导出选项时,如何在旧 DOS 应用程序中导出数据?
我的客户给我们的任务是使用 RAIMA 数据库从遗留 DOS 系统中导出数据,以便可以将其导入到我们为他们编写的新系统中。看起来数据是以平面文件格式存储的,尽管当我们打开文件时,大部分文本都是乱码。
我们确实在我们打开的文件顶部看到了 Raima 数据库管理器……我们尝试用谷歌搜索该术语,似乎它是一种旧的数据库格式。不用说编写软件的供应商不再支持它。有没有其他方法可以让我们导出这些数据?
有没有办法自动从屏幕上抓取数据?
笔记
这是一个简单的发票系统,所有信息都在应用程序的一个屏幕上。
c++ - 如何为第三方遗留代码创建测试对象
我有一个代码库,其中我实现的许多类都派生自我公司其他部门提供的类。与这些其他部门合作通常具有工作关系,就好像他们是第三方中间件供应商一样。
我正在尝试在不修改这些基类的情况下编写测试代码。但是,由于缺少接口,创建有意义的测试对象存在问题:
我通常会提取一个界面并从那里工作,但由于这些是“第三方”,我无法提交这些更改。
目前,我创建了一个单独的文件,其中包含在需要知道的基础上在第三方提供的基类头文件中定义的函数的假实现,如“使用遗留代码”一书中所述。
我的计划是继续使用这些定义,并为我需要的每个第三方类提供替代测试实现:
但在我开始这样做之前,我想知道是否有人尝试在类似于我的代码库上提供实际对象,这将允许创建新的测试特定类来代替实际的第三方类。
请注意,所有有问题的代码库都是用 C++ 编写的。
nhibernate - 您是否会将 NHibernate 用于具有部分无法控制的遗留数据库的项目?
对我来说,目前的答案是:不,我会使用 iBatis,因为当数据库模型和对象模型不同步时,NHibernate 很痛苦。如果我不能完全控制数据库,我最终会做很多工作。
我为什么要问?
好吧,首先:我从未使用过 NHibernate。我只是从表面上知道。我已经阅读过 iBatis 对遗留数据库的优势。
第二:最近我与使用 Hibernate 的人进行了讨论(jep,在 Hibernate 之前没有'N')。他告诉我,ORM 框架现在非常先进,并且提倡 Hibernate。由于我对 NHibernate 不感兴趣,所以我没有跟踪最近的发展。
也许我是时候重新考虑我的答案了,或者不是?
c++ - C++0x 实现猜测?
C++0x 标准即将完成。到目前为止,我已经涉足 C++,但避免彻底学习它,因为它似乎缺少许多我在其他语言中被宠坏的现代特性。但是,我会对 C++0x 非常感兴趣,它解决了我的很多抱怨。任何猜测,在标准被批准后,主要编译器供应商需要多长时间才能提供相当完整的、生产质量的实现?它会很快发生以扭转 C++ 受欢迎程度的下降,还是太少、太晚了?你相信 C++0x 会在几年内成为“C++”,还是你相信大多数人会在实践中坚持早期的标准,而 C++0x 会有点像一个混蛋继子,有点像C99?
visualization - 了解其他人的代码
我偶尔会很不幸地不得不对非常陈旧、没有记录和设计不佳 的代码进行修改。
进行简单的更改通常需要很长时间,因为现有代码的结构并不多,而且我真的必须阅读大量代码才能了解事情的发展方向。
我认为在这种情况下会有很大帮助的是一种工具,它可以让人们可视化代码的概述,然后甚至可以深入了解更多细节。我怀疑这样的工具很难做到正确,因为它试图找到几乎没有或没有的结构。
我想这不是一个真正的问题,而是一个沉思。我应该把它变成一个问题 -其他人如何帮助他们了解其他人的代码,好的和坏的?
legacy - 是什么让代码遗留?
我听说许多开发人员将代码称为“遗留”。大多数情况下,代码是由不再从事该项目的人编写的。是什么造就了代码,遗留代码?
更新以回应:“从祖先或前任或过去传下来的东西” http://www.thefreedictionary.com/legacy。显然你想知道别的东西。您能否澄清或扩展您的问题?洛特
我正在寻找遗留代码的症状,这些症状使其无法使用或使用起来是一场噩梦。什么时候扔掉比较好?我认为应该更频繁地丢弃代码,并且重新发明轮子是开发的宝贵部分。不重新发明轮子的学术理想是一个不错的理想,但它不是很实用。
另一方面,显然有遗留代码值得保留。
.net - 列出所有可用的 .NET 程序集
列出所有可用的 .NET 2.0 程序集的最佳方式是什么?
所需列表的一个示例是当您在 .NET 选项卡中执行“添加引用...”时 MS Visual Studio 显示的一个。
我已经阅读了 Visual Studio 使用它自己的目录配置和 GAC 另一个和 .NET 安装另一个。关于如何以计算机可移植方式知道该目录在哪里的任何想法(例如,另一台计算机可能在 D: 驱动器中安装了 Windows)?
从列出的信息来看,它必须可以使用 Assembly.Loadxxxx() 。
注意:它应该以编程方式完成,而不是例如使用 gacutil(除非它提供 C# API)。所有这些的目的是创建一个自定义动态脚本编辑器,以便您了解获取此信息的必要性。
com - 如何强制进程外 COM 服务器的进程隔离?
我正在编写托管代码,该代码必须与供应商的 COM 自动化服务器进行交互,但该服务器已耗尽进程。我发现如果有多个客户端连接到该服务器,它就会变得不稳定。例如,如果我在进程 A 中的托管代码和进程 B 中的托管代码都连接到此 COM 服务器,则将为 COM 服务器启动一个进程,并且它的行为不太可靠。 我希望有一种方法可以为每个客户端-服务器连接强制一个单独的进程。理想情况下,我想结束:
托管进程 A 与进程C1
中的 COM 服务器通信
托管进程 B 与进程C2中的 COM 服务器通信
我想到的一个想法是,如果我以不同的安全身份运行进程 A 和进程 B,那可能会导致 COM 基础架构创建单独的服务器进程。然而,我宁愿不走那条路。托管进程 A 和托管进程 B 实际上是 Windows 服务。而且我正在使用身份本地系统运行它们(因为我需要它们能够与桌面交互,并且您无法检查服务小程序上的“与桌面交互”框以获取不作为本地运行的服务系统)。而我需要与桌面交互的原因是这个COM服务器偶尔会在屏幕上抛出一个对话框,如果服务本身不能与桌面交互,那么COM服务器生成的不能显示对话框(我相信它是显示在隐藏的 WinStation 上)。