因此,我的公司在foxpro数据库中存储了大量数据,并试图绕过直接触摸它的性能,我正在考虑发送任何可以异步完成的消息,以获得更快捷的用户体验。 我开始关注ActiveMQ,但不知道C#将如何与它挂钩。 想听听你们所有人的想法。

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

===============>>#1 票数:7 已采纳

使用Spring.NET集成和NMS,ActiveMQ可以很好地与C#配合使用。 一些链接的支撑柱,让你在这个方向开始就在这里 还可以考虑使用MSMQ(System.Messaging命名空间)或基于.NET的异步消息传递解决方案, 这里一些选项

===============>>#2 票数:4

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

===============>>#3 票数:1

你可能想看看MSMQ。 它可以由.NET和VFP使用,但您需要重写才能使用它们。 这篇文章告诉您如何使用VFP中的MSMQ。 http://msdn.microsoft.com/en-us/library/ms917361.aspx

===============>>#4 票数:1

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

===============>>#5 票数:0

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

===============>>#6 票数:0

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

===============>>#7 票数:0

由于问题在于写入,我会更多地关注>删除<表上的任何不需要的索引。 正如在RDBMS中常见的那样,FoxPro表上的每个索引都会降低写入操作的速度,因为索引需要更新,并且由于您不是直接从表中读取(或者可能是直接查询),因此您不需要很多索引。 您可能还希望查看表上的任何触发器或字段规则,因为它们可能会降低写入操作的速度。 尽管如此,请确保您的参照完整性仍然存在。

  ask by Kevin Sheffield translate from so

未解决问题?本站智能推荐: