替代MS Access,发展非常迅速

软件推荐 软件开发 javascript sql服务器
2021-10-12 04:03:28

背景:我有一个 Access 软件(约 30 个同时用户),前端和后端分离,UI 和 DB 在 Access 文件上运行。对我来说最重要的功能是报告和打印,重点是快速开发和向用户部署(每周更新 1-3 次,使用尽可能少的时间)。环境是 Win7 + Access 2010。更新使用 .BAT-batch 文件处理。该数据库可能会在今年晚些时候升级到 SQL Server Express 或其他版本。

问题: Access 开发 UI 越来越慢,主要是由于链接的数据库表是位于网络驱动器中的文件(和一个共享点列表)。另外,我知道 Access 不是多用户数据的理想数据库。然后是一些装饰性的东西,比如隐藏主访问窗口。我有它的代码,在 WinXP 中运行良好,但在 Win7 中,背景不再隐藏。总的来说,整个软件不是很专业。

我需要什么:我需要能够在没有任何管理员权限的情况下在 Windows 7 环境中进行快速开发和部署。客户需要能够以最少的(如果有的话)努力来更新他们的 UI,这意味着他们不需要安装程序。

显然,Visual Studio 下一步可能是合乎逻辑的,但我对它的经验太少了,我不知道那里的开发速度有多快?然后我听说过诸如 AppJS 之类的东西,但它在设备(打印机)上运行良好吗?此外,所有数据都是机密的,因此一切都应该在没有外部服务器和依赖项的情况下工作(未来的数据库服务器将在建筑物内)。否则,我会喜欢网络浏览器环境,因为它可以在任何地方使用和开发。

我有哪些选择,为什么,或者我应该继续使用 MS Access?


[编辑 #1] 客户端 javascript 似乎一种选择是运行客户端 javascript 并使用它连接到 SQL Server。但是,我听说尽管有可能,但出于安全考虑,这也是不好的做法。虽然不安全的连接字符串和源代码在公司内部使用中不是一个大问题,但它仍然是公司 IT 规则可能不允许的事情。UI 开发也不会像 Access 那样快,但如果熟练掌握 JS 仍然很棒。我会用这个尝试一些原型。

1个回答

也许不是有史以来最好的解决方案,但如果按所需工作量来衡量,最便宜的解决方案是将您的 Access 数据库转换为 SQL Server,最好是 Microsoft SQL Server。

在 Microsoft Access'97 和 2000 中,甚至有一个名为 Upsizing Wizard的工具正在做这件事。

最重要的事实:

  • MS SQL Server 是免费的,直到它运行单个 CPU 内核,直到它不用于连接到公司外部的用户(到客户端),即以托管服务的形式。如果您将客户端-服务器解决方案出售给其他人,它在相同条件下仍然免费。

  • 转换到 MS SQL Server 是最少的破坏(如果您是从 Microsoft Access 迁移),现有 SQL 代码的更改是最小的。也可以使用其他 SQL 服务器,但需要走的“代码距离”更大。

  • 基本上,除了更改连接字符串和调整不兼容的 SQL 命令之外,您可以保留您的 Access 客户端应用程序

稍后您可以重写您的客户端应用程序。

关键是,您不会同时在客户端和服务器端都被推到重大的突破性变化中。

大约 12 年前,我在一个应用程序中采用了这种方式(它是 Access'97,SQL Server 2000)。我们首先迁移了数据,几个月后客户决定重写客户端。路上没有严重的障碍。

从那时起,我一直在维护/扩展一个编写良好的大型专业企业 Web 应用程序,现在我又开始使用经典的窗口和表单编写二进制客户端。我的主观结果是,对于 Web 应用程序,开发效率较低(浏览器兼容性问题、浏览器中不受欢迎的后退按钮、更难调试、UI 控件非常有限)部分被您可以获得的更好的可访问性所抵消(如果浏览器允许)。所以我的主观意见是不要走网络应用程序,因为你可能需要更多的精力才能达到可比较的结果。但是,如果您已经心动了,我仍然祝您新应用程序好运。

重新考虑您对“非常快速的开发”的要求:我相信非常小的解决方案是可能的。对于较大的应用程序,您需要仔细编写基础(除非您是复制粘贴程序员)以管理应用程序日益增长的复杂性。编写它们通常与“快速开发”无关,因为奠定坚实的基础不会立即产生新的屏幕、功能或其他结果。我见过一个在很大程度上使用快速开发编写的应用程序,但现在它正在等待返工,因为为了“快速结果”而牺牲了代码的完整性,你会发现相同的代码经过轻微修改被复制和粘贴了 100 次。这是程序员的地狱,很难维护。(如果此类代码需要更改或修正错误,您需要将其应用到 100 个位置。)