我有以下困境:我的客户(妈妈和流行当铺)一直在使用我的 mgmt。系统,使用 ISQL 开发,已有 20 多年的历史。在这两个十年中,我根据每个客户的需求定制了应用程序,或者当法律/法规的变化需要它时。大多数客户端是单用户站点。有些人有多个商店,但从不想要分布式数据库,不相信互联网或任何其他类型网络的可靠性或安全性。所以,他们都使用标准引擎。我已经能够解决一些 SE 限制,并使用 ISQL 和 SE 做了一些巧妙的技巧,但迟早,新的法律可能会要求当铺客户、商品、电子传输等的图像,然后是时候升级了到 IDS,在 4GL 中重新编写应用程序或更改为另一个 RDBMS。合乎逻辑且最简单的路线是 IDS/4GL,
4 回答
整个问题可能归结为您必须处理的几个问题。
首先是你愿意学习和使用什么应用程序编程和开发语言?
另一件事是你想要什么样的互联网能力?
例如,在查看报告时,您是否希望能够单击按钮并将报告转换为 PDF 文档,然后启动附有该 PDF 的电子邮件客户端?
那么在他们将所有信息数据输入系统之后,也许每个商店都想要他们自己的微型网站,城里的人们可以去那里查看他们有什么地方不得不打电话给商店询问他们是否有一个 3 美元的二手打火机(电话和检查这些廉价商品的劳动比销售商品的成本还要多——所以网络非常适合这种情况)。
另一个问题是你想要什么样的界面?我假设您目前有某种类型的绿屏或基于文本的界面?或者也许多年来您确实转换为 GUI(图形用户界面)。
如果仍然是绿屏(基于文本),那么您现在必须坐下来,投入大量精力和时间来布局以及如何使用基于图形的系统来处理屏幕。我记得当从绿屏到彩色时,突然之间,必须为该屏幕选择正确的颜色和布局的选择和努力实际上增加了相当多的工作量。然后我从颜色测试屏幕转到图形界面,然后突然之间,我们又看到了大量的新控件、颜色,除此之外,我们在不同字体方面有很多选择和尺寸。
然后现在有了网络,您不仅要处理不同类型的按钮样式(圆形、椭圆形、阴影、阴影、发光效果),而且除了所有这些悬停效果和阴影效果等之外,您现在还必须放下关于您的软件将为整个网站采用哪种颜色(主题)的一些非常严重的问题。
这实际上归结为您愿意在新工具上投入多少学习和时间,以及在给定的时间和精力下可以并且将生产多少软件。
当您进入较小的商业市场时,我非常偏爱 RAD 工具。大多数小型企业负担不起 .net 开发人员的费用(与其说是费用,不如说是构建应用程序的时间)。因此,在较小的商业市场中使用 ms-access 是一个不错的选择。Access 仍然是市场上其他工具的 3 到 5 倍。所以 .net 开发者开发某样东西的报价可能是 12,000 美元,而在 Access 中同样的东西可能是 3000 美元。我的意思是小企业付不起你写单元测试代码的钱。这种类型的额外成本不会发生在较小规模的项目中。
您必须处理的另一个大问题是您要在系统中构建什么样的报告编写系统?这是我喜欢较小的业务应用程序的另一个原因是访问是因为报告编写器真的很棒。访问报告有一大堆能力来烘焙来自表单和查询的连接,并将过滤器和参数传递到这些报告中。而且,您花时间构建的表单和查询通常已经可以与带有参数的报表进行对话并以一种再次真正减少工作量(开发成本)的方式传递值。
我认为您必须在这里解决的第一个问题是您将为基于 Web 的策略做些什么?你绝对必须拥有一个。即使您在 access 中构建前端部分,您可能仍希望将免费版本的 SQL server 用于后端部分。这有几个原因,但一个原因是它可以很容易地通过 Internet 连接多个商店。
将数据放在某种基于服务器的系统中的另一个好处是,现在您可以设置某种类型的 Web 服务器供所有商店使用,并构建一个很小的定制系统,允许每个商店在线拥有他们的产品和列表(但是,他们使用您的网络服务器,或者您每月支付 15 美元来托管所有这些客户)。此 Web 部件可能是可能并非所有客户都需要的可选组件。无论如何,这将处理他们必须输入系统的数据。
采用这些基于 Web 的系统的一大优势在于,它不仅允许这些商店更好地为他们的客户服务,而且还为您打开了将您的软件转换为基于月费的系统的大门,或者至少是其中的一部分。例如您提供的可选网络托管部分。
当我将较长时间的应用程序从绿屏大型机类型软件转换为基于 Windows 桌面的应用程序时,它为我打开了广阔的市场。有了远程桌面、下载软件、从网站发布更新,这些新的软件系统使交付软件的所有这些具体细节现在变得非常容易,尤其是支持您从未见过的不同城市的客户脸。
因此,如果您仍然主要谈论单个用户和一个位置,Access 将大大降低您的开发成本。这实际上取决于您所谈论的应用程序的复杂程度和丰富程度。如果项目的规模和范围超出了一个开发人员的范围,那么您将更多地谈论开发人员扩展(源代码控制、对象开发方法、单元测试、设置基于服务器的数据库系统(如 SQL Server 等)的成本和时间)。因此,当您超过复杂城市中成本时间的临界点时,它们肯定是这里的临界点,那么我实际上不建议访问。因此,这一切都归结为适合正确路线的正确马匹。
也许到头来,这真的归结为您愿意花时间学习什么应用程序开发系统?
看看Aubit4GL——我相信,它是可用的(或可以在 Windows 上编译)。
是的,对于单用户系统而言,IDS 几乎是矫枉过正,但如果 SE 不能提供您需要的所有功能,或者预计在不久的将来会需要,那么它是一个非常明智的选择。但是,只要稍加注意,就可以将其设置为(基本上)对用户完全不可见。对于这样的无压力应用程序,配置并不复杂。作为供应商,您需要对此非常了解。但是有一些特性,比如静默安装,这样您就可以让您自己的安装程序运行 IDS 安装程序,以便将软件安装到客户的机器上,而无需额外费力。系统的总大小会增加 - 磁盘上的 IDS 比 SE 大得多(但您可以获得更多功能)。还有一些机制可以去除你将获得的更大的代码块' t 正在使用 - 很可能。例如,您可能会使用 ON-Tape 进行备份;因此,您将在运送给客户的产品中省略 ON-Bar 和 ISM。
IDS 用于没有用户和管理员使用系统的嵌入式系统。硬件位于橱柜(壁橱)中并通过网络进行通信。
很高兴看到人们仍然从“老派”的 Informix 工具中获得价值。我从不擅长表演,但 ACE 报告作者总是适合我。我们跳过了 Perform,直接进入 FourGen,我很遗憾我从来没有像 FourGen 那样富有成效。从代码生成器到时髦,它都有自己的优雅,但实际上退出了强大的独立菜单系统。
我很欣赏现代 UI 动态,但是,该死的,今天写应用程序很难吗?不仅仅是工具,还有行业需求等(例如您可能在您的领域中遇到的情况)。而网络就是彻头彻尾的谋杀。
我想部分原因是因为大多数“绿屏”应用程序看起来都一样,所以很难做出一个看起来很糟糕的应用程序!使用 GUI 和 Web 等,您不能简单地获得良好的现场顺序和标签排列。
但是,唉,尽管如此,这就是我们所拥有的。
我已经 15 年没有使用过它了,但您可能还想看看 Alpha 5。它是一个非常强大但并不过分复杂的数据库开发包,而且(显然)仍然很强大。
我不会太害怕 IDS。它运行起来很简单。开箱即用,只需零调整或很少调整,DB 就可以工作并且效率很高,而且它过去安装起来非常简单。它不是 SE,因为 SE 的访问与应用程序(使用库)与独立服务器(即 IDS)相关联。但是,在操作上,它真的很简单——尤其是对于像你所说的那样的应用程序。我明白这可能是矫枉过正,但即使在今天,资源需求也不一定是疯狂的。当然,还有很多您不会使用的功能和灵活性。但坦率地说,除了“平面文件” DBase 风格的数据库之外,几乎所有基于服务器的 SQL 数据库都非常强大和有能力并且可能很复杂。但他们不必如此。它们仍然可以使用“
至于探索其他解决方案,不要太害怕“OOP”的东西,因为大多数应用程序虽然利用 OOP 库,但它们本身并不是真正的 OOP(它们可以是,它们通常不是,它们只是不需要)。许多 OOP 系统的最大问题是它们的结构非常精细。处理水平太低的事件。虽然许多程序需要访问这种精细级别的控制,但大多数应用程序,尤其是与您的应用程序非常相似的应用程序,却不需要。因此,额外的灵活性只会妨碍或创建更多样板。
也就是说,你不应该因为缺乏专业知识而害怕他们本身。它们可以很快被捡起。但我肯定会先用尽更专业的工具(如 Alpha 5 或 Access 等),看看它们是否不能提供你想要的东西。
就 Visual FoxPro 而言,过去和现在都是无与伦比的工具(尽管对此知之甚少的人对此嗤之以鼻)。它具有快速、原生的数据库引擎、内置 SQL 和强大的报表设计器等。但你也必须考虑到微软将在 2014 年停止对它的支持,永远不会有 64 位版本,等等。而且它使用的文件锁定方法在未来版本的 Windows IMO 上会越来越不稳定。