Questions tagged «microsoft-access»

7
将大型MS Access应用程序移向.Net的最佳做法?
我们有一个非常庞大的MS Access应用程序,最初是为满足我们的个人需求而开发的,后来变成了商业软件并成功销售。该软件是一种“为您的企业而设计的全方位软件”,包含文档管理系统,企业资源计划,库存管理,客户关系管理,数据分析等多个模块。我们对当前的情况非常满意应用程序的功能,但是为了满足客户的要求,我们意识到我们必须转向新的事物。 我们决定逐渐将应用程序移至.Net,因为我们可以坚持使用Visual Basic .Net:尽管它是此处大多数开发人员的新语言,但我们对VBA以及在VB6中实现的数十个小型项目都有很深的了解。 我们已经开始将应用程序的数据层功能移至MS SQL Server,以便每个数据操作和搜索都直接在服务器上执行。 我们正在寻找的是逐步移动我们广泛的GUI的最佳实践(大约500-600种不同形式,包括子表单,大约200种具有多语言支持的报告等)。潜在客户最近要求在DMS中对文档实施异步数据加密之后,我们也很乐意将这部分与MS Access完全脱钩,并在.Net中进行实现。 问题是如何将.Net应用程序与现有的MS Access系统无缝集成,以便我们可以使用某些参数(用户权限等)调用它,并启用此应用程序与正在运行的MS Access应用程序之间的数据交换。 编辑: 我们试图应用Martin Fowler的“ 企业集成模式 ” 一书中的一些实践,以实现MS Access应用程序与我们为各种需求在.Net中实现的一些小型实用程序之间的集成。但是我们仅设法使用“共享数据库”模式,对我们的解决方案并不满意。 例如,我们实现了一个作为Windows服务运行的小型实用程序,该实用程序使用POP3连接自动从邮件服务器下载所有邮件并将它们存储到一个表中,而所有附件都存储在文件系统中。 我们主要要做的是使用ADO.NET直接访问MDB格式的MS Access数据库,并用一些处理过的数据填充表格(例如上例中有关邮件消息的数据:我们有FROM,TO,CC,BCC,主题和身体)。 使用.Net的MDB数据格式绝对没有问题,此外,我们不想再使用MDB并将几乎所有内容升级到MS SQL Server 2008了-这给了我们更多关于数据管理和可伸缩性的自由。 这里的主要问题是我们不知道如何在Access中实现某种“回调”,以便我们可以在数据更新时触发某些VBA代码的执行。 MS Access 2010支持对数据表的更新和插入触发器,我们寄予了厚望,但事实证明,我们只能对这些触发器使用MS Access宏,并且无法在触发器内执行任何自定义VBA代码。 我们还尝试了一些解决方案,将击键直接发送到MS Access窗口,以模仿某些用户调用的数据重新查询。这可行,但是我们认为这不是可以在生产中使用的可行解决方案。 我们还研究了用于MS Access的DDE,但找不到实现DDE命令并将其用于内存数据和命令交换的良好示例解决方案。 因此,主要问题是使MS Access和.Net应用程序共存并相互交互。 编辑2: 我忘了提一下我们在VBA中也实现了MSMQ库,以便在.Net和MS Access之间传递消息,问题再次出在这里,缺少回调:我们真的不得不在队列中轮询新消息,并且鉴于VBA并不真正支持多线程,这并不是一个很好的解决方案。

4
为什么MS Data Access故事如此破裂?它是数据访问的性质还是仅仅是MS?
这个StackOverflow问题询问“我可以在哪里获得Microsoft.Data.Objects” 事实证明,答案可能是它在Entity Framework 4的CTP4(代码优先)版本中。但是,有很多猜测。包含 系统数据 实体框架 Microsoft.ApplicationBlocks.Data Microsoft.Practices.EnterpriseLibrary.Data 10年前,如果有人问类似的问题,因为他们可能已经获得了DAO,RDO,ADO。 这只是野兽的本性还是MS。 其他供应商也会发生这种情况吗?基本数据访问策略在哪里包装或更改?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.