15

因此,我的公司将大量数据存储在 foxpro 数据库中,并试图绕过直接接触它的性能损失,我正在考虑发送任何可以异步完成的消息,以获得更快速的用户体验。我开始研究ActiveMQ,但不知道 C# 能很好地与它挂钩。想听听大家的想法。

编辑:它将是一个 Web 应用程序。任何接触这个 foxpro 的东西都有点慢(可能是因为 10 年前设置它的人把它搞砸了,一些表格文件非常大)。我们每晚将 foxpro 复制到 sql,并且我们的大部分数据读取都可以在一天前完成,因此我们专注于写入。加上写入会影响用户体验(购买)的关键部分,我们将其存储在 sql 中,然后在可以时将其放入 foxpro 中。我希望我们可以摆脱 foxpro,不幸的是,该公司不想摆脱他们购买的依赖它的非常旧的软件。

4

7 回答 7

8

ActiveMQ 与使用 Spring.NET 集成和 NMS 的 C# 配合得很好。带有一些链接的帖子可以帮助您开始朝这个方向发展。还可以考虑使用 MSMQ(System.Messaging 命名空间)或基于 .NET 的异步消息传递解决方案,这里有一些选项

于 2008-08-07T01:20:13.890 回答
4

MSMQ(Microsoft 消息队列)可能是一个不错的选择。它是操作系统的一部分并作为可选组件出现(可以通过添加/删除程序/Windows 组件安装),这意味着它是免费的(当然,只要您已经为 Windows 付费)。MSMQ 提供 Win32/COM 和System.Messaging API。更现代的 Windows Communication Foundation(又名 Indigo)排队通道也使用 MSMQ。请注意,Windows 的家庭 SKU(XP 家庭和 Vista 家庭)不支持 MSMQ

于 2008-09-19T07:03:04.037 回答
1

值得一提的是,ActiveMQ 开源项目定义了一个名为 NMS 的用于消息传递的 C# API,它允许您针对单个 C#/.Net API 进行开发,然后可以使用各种消息传递后端,例如

于 2008-09-16T14:12:53.747 回答
1

你可能想看看 MSMQ。.NET 和 VFP 可以使用它,但您需要重写才能使用它们。这是一篇文章,告诉您如何从 VFP 使用 MSMQ。https://docs.microsoft.com/en-us/previous-versions/visualstudio/foxpro/ms917361(v=msdn.10)

于 2008-10-14T14:23:37.363 回答
0

抱歉,如果这不是您所要求的...您是否考虑过某种在后台使用 Winsock 在 c/c++ 中使用异步套接字时有点像“桶系统”的缓存?基本上,它的工作原理是接受请求,并立即将响应发送回 Web 应用程序,当它最终找到您的记录时,它会通过 AJAX 或您选择的任何其他技术在应用程序上更新它。由于我不是 C# 程序员,我无法提供任何具体示例。希望这可以帮助!

于 2008-08-07T02:17:35.523 回答
0

Fox 应用程序是否使用 .CDX 索引?如果是这样,您可以通过添加索引来提高性能,而无需更改任何程序代码。但是,如果它使用 .IDX 索引,则必须在实际应用程序中进行更改。

于 2008-08-22T17:30:58.737 回答
0

由于问题在于写入,我会更倾向于>删除<表上任何不需要的索引。在 RDBMS 中很常见,FoxPro 表上的每个索引都会减慢写入操作,因为索引需要更新,并且由于您不直接从(或可能直接查询)表中读取,因此您不需要很多索引. 您可能还想查看表上的任何触发器或字段规则,因为它们可能会减慢写入操作的速度。不过,请确保您的参照完整性仍然保留。

于 2008-09-17T23:40:26.043 回答