42

我们都知道这个练习:你有一个(小)模型,你需要持久化它,你需要一个 UI(网络、桌面、移动设备,其中一些,全部)。

这是一个如此重复的过程,我不禁想知道为什么我们仍然坚持使用 POJO、OR 映射器和手工编写 UI(因为大多数 UI“设计师”甚至不知道继承,你需要构建每个从头开始包含多个字段的确定/取消对话框)。RAD工具/平台承诺会解决这个问题,但我还没有看到任何真实的东西。这个 wiki 的想法是收集所有工具,让您在几分钟内充实一个想法并从那里构建。简单的事情(例如为模型创建简单的 UI 或将其保存在数据库中)应该很简单。将一个相当复杂的对象附加到对话框以对其进行编辑应该只需要一行代码或更少;)

所以挑战来了:有哪些 RAD 工具可以在 8 小时内构建一个小型应用程序。为了让您了解它应该能够做什么,这里是规范:

  • 你有“知识”节点。每个这样的节点都有名称和附加的详细描述(单行和多行字符串)

  • 每个知识节点可以有任意数量的知识节点作为子节点(1:* 排序的父/子关系)。子节点需要维护顺序(即使用列表,而不是集合)

  • 每个知识节点可以附加任意数量的标签(1:*不同类型之间的无序关系)

  • 任意两个知识节点可以连接任意数量的关系(n:m 关系)

  • 应该可以毫不费力地从/作为 XML 和从/在数据库中加载/保存模型

  • 用户希望今天撤消/重做

UI 应提供标准操作:创建、重新排序和删除知识节点。重新排序应使用拖放。它应该允许从知识节点添加/删除标签。应该有一种简单的方法可以通过关系连接两个知识节点(比如以特殊模式将一个节点拖到另一个节点上)。

UI 还应该允许搜索具有特定标签或关系的节点。对于奖励积分,它应该提供一种导航关系图的简单方法。

有什么挑战吗?像往常一样,首选OSS 。

背景:我现在开发软件已经超过 25 年了。尽管如此,这个简单的应用程序需要数周甚至数月的时间来使用我迄今为止遇到的任何语言进行编码:GroovyJavaPythonTcl/TkGrailsOpenOfficeMS AccessTreeLine、[TurboGears][10]、 [思想特征][11],.net。

关于竞争者的一些反馈。请注意,我试图在一个句子中突出重点,所以下一节要持保留态度,好吗?

Groovy语言不错,代码紧凑。关闭但缺乏 UI 部门。他们正在努力,但只是不在那里。对于持久性,只有开箱即用的 Java 序列化。

Java Java 在十年前问世时很棒,但它并没有发展太多。它是一种老化的语言,拥有大量的库,但你只需要太多的代码来完成工作,而且每一行代码都需要时间来编写。

Python几乎得到了它需要的所有东西,但由于某种原因,它从未真正成为像 Java 这样的主流。使用PyQt4设置了一个不错的 UI ,这是一个带有SQLAlchemy的很酷的 OR 映射器,但我们仍然没有看到它在全速前进。只有随着单元测试的出现,编写更大的项目才变得可行。任务级别太低。

Tcl/Tk不错的小部件集,但是当代码大小超过某个点时,语言很糟糕。现在显示它的年龄。

OpenOffice从 2.0 开始,OO 带有一个内置数据库和一个“Access-like”工具。它还处于起步阶段,但他们会到达那里......最终。无法处理父/子关系,因为 UI 不允许指定它们(请参阅错误)。在 3.1 中修复。使用 3.1,您可以创建模型,但编写 UI 仍然需要大量时间。

MS Access几乎我们需要的任何东西,但 UI 选项非常有限。令人沮丧。

TreeLine无法实现关系,并且对于大多数其他用例来说过于受限(你根本无法用它做很多其他事情)

.net我没有这方面的经验,主要是因为它只是 Windows。我认为这个可能非常接近,但让我们面对现实:锁定四分之一的人类有什么意义?

4

23 回答 23

20

用于 pascal/delphi 语言的Delphi RAD StudioLazarus IDE 。

于 2009-02-04T10:43:27.863 回答
16

WAVEMAKER是有史以来最好的 rad 工具。您所说的可以在几个小时内完成。

于 2011-09-24T06:40:11.047 回答
7

这取决于你的市场是谁。我可以告诉你一件事,你的市场永远不会包括全人类。因此,地球上可能有 25% 的人不使用 Windows 的事实对您来说并不重要。

对您而言,重要的是您的市场中有多少人使用任何操作系统?如果您正在编写商业/金融应用程序并且只为 Windows 开发,那么您可能只遗漏了大约 0.05% 的市场(因为您最后一次听说使用 Mac 或 Linux 的会计师是什么时候? )。

但是,如果您正在编写一个用于制作音乐的程序(如 FruityLoops)并且只编写 Windows,那么您可能会遗漏 50% 的市场份额。

于 2009-02-04T09:43:18.343 回答
7

微软灯开关。很难想象有什么“更快”的。

于 2010-08-04T07:47:21.940 回答
3

我猜WinDev 也遵循 RAD 的想法。

注意:仅在 Windows 上运行,价格从 990 欧元起。附带多种工具。

于 2009-02-04T10:45:58.170 回答
3

Visual Studio - 最好的 RAD 工作室。如果你认为它不仅用于微软的开发工具,Delphi Prism 也使用它,SQL Server 的 SQL 管理工具都使用它,你就会知道它的灵活性。它也是免费的(RAD 工具/IDE - 不是开发工具)。

于 2009-02-04T13:12:45.050 回答
3

Magic uniPaas:在我的第一份工作中使用它来开发 GUI。这是一个严肃的 RAD 工具,所有内容都是基于表格的。它还提供了一个运行时环境。当时它被称为 Magic eDeveloper。

于 2009-02-04T09:42:37.923 回答
3

号角(http://softvelocity.com)。

我可以/可以在几个小时内为这样的项目制作一个演示。

一个透视缺陷是它创建了 Win32 可执行文件。当然,这可以通过用它创建一个网络系统来解决。

另一个是 Clarion 绝对不是开源的。这会让很多人望而却步。


好的。我的最后一条评论是大约 2 小时前。所以在那段时间里,这就是我在 Clarion 中设法完成的事情。

http://125.214.67.190:5824/

我写这个不是为了炫耀。老实说,我相信 Clarion 可以在很短的时间内做出惊人的事情。

“知识”系统在很大程度上是一个演示。您只能将标签和关系添加到父节点。没有适当的标签/关系搜索(只有单数)。没有图像或像样的图形设计或 UI。

但是框架,基础是存在的。

于 2009-02-04T15:57:04.907 回答
2

Oracle Application Express ( http://htmldb.oracle.com/pls/otn/f?p=4600:6:171781307324519::NO::: :)

仅使用 Web 浏览器有限的编程经验,您就可以在几分钟内开发以数据为中心的应用程序。基于浏览器的开发使您能够仅使用现代 Web 浏览器在大多数计算机上开发应用程序。

使用简单的向导和声明式编程来创建功能强大的报告和数据输入应用程序。您可以从电子表格上传或现有数据库表和视图创建应用程序。Oracle Application Express 包括用于创建和管理支持您的应用程序的数据库对象的 SQL Workshop。

使用 Application Express,编码是声明性的。这意味着不会生成或编译任何代码。您与向导和属性表进行交互。由于 SQL 语言用于定义报表和图表,因此了解一些 SQL 知识是有帮助的。如果需要过程逻辑,您可以使用 PL/SQL 编写代码片段。声明式代码在开发人员之间产生的差异更少,这种一致性使 Application Express 应用程序易于维护和管理。

于 2011-01-11T11:14:38.910 回答
1

Lazarus LCL is a Delphi like VCL over existing widget sets.

It can be GTK1, GTK2, QT, Win32/64, WinCE and Carbon. There are others (like a COCOA bridge) but those are mostly only in their initial stages.

于 2009-05-01T20:01:17.290 回答
1

REALbasic是一个 RAD 工具工具 - 它的编译器生成本机可执行文件。它也是一个交叉编译器,这意味着您可以从任何平台构建任何平台。

仅专业版支持完全数据库访问(400 欧元)。个人版售价 75 欧元,可以连接到 REALSQLDatabase(也来自 RealSoft)。

HibernateSQLAlchemy不同,您必须自己编写 DB 层。

于 2009-02-04T09:48:39.017 回答
1

Netbeans 的 Matisse 可视化编辑器非常适合 Swing 开发。

于 2009-02-04T13:07:24.873 回答
1

Grails是一个快速构建 Web 应用程序的框架。它基于Groovy。您定义模型,从命令行运行两个命令,然后设置一个简单的CRUD UI,您可以在 Web 浏览器中编辑模型。

仅限 Web,有很多好主意,但由于这个错误,您不能有父/子关系,希望在 1.0.5 版本中修复。对于认真的开发,您将需要AJAX/Rich Client 插件之一,因为 Grails 没有非常强大的小部件。

于 2009-02-04T13:37:13.580 回答
1

来自 ++Technologies 的XPower++ - 适用于 Windows、Linux、Mac、Android、iOS 等的跨平台 IDE。

于 2012-03-01T10:41:45.210 回答
1

Qt Toolkit,位于:http: //qt.nokia.com/products,用于 C++ 跨平台 GUI 开发,也非常适合桌面和移动应用程序构建。

于 2010-01-15T19:24:15.387 回答
0

该答案与您的问题没有直接关系,但相似。对于我的项目,我使用的最接近的东西是NEsper,它是一个开源复杂事件处理框架 (CEP)。在过去的两个晚上,我为我正在组装的交易系统构建了一个回测器,正是 NEsper 让它如此之快——我想我是在你的 8 小时目标内完成的。

于 2009-02-04T09:45:21.303 回答
0

TurboGears是一个使用 Python 快速构建 Web 应用程序的框架。主要特点:您定义模型,TG 创建所有其他内容,然后可以根据您的需要进行调整。模型中的更改需要重新启动开发服务器,其他一切都在下次重新加载 Web 浏览器时发生(TG 会通知您何时需要重新启动)。

向前迈出了一大步,尤其是 2.0 版本(应该“很快,现在”就发布了——没有冒犯,伙计们,我知道你们已经为此努力了好几年……但几年来我没有 TG 2.0 , 或者 :( ) 仅适用于 Web。所以我们必须自己实现所有的拖放操作,找到一种方法来绘制可导航的图表。令人沮丧的关闭。

于 2009-02-04T13:40:14.433 回答
0

Enthought Traits是一个很棒的框架,可以从模型构建默认 UI。易于使用,功能强大,默认情况下是您大部分时间想要的,它可以满足您的期望

但是没有数据库持久性。事实上,根本没有坚持。您必须自己编写代码来保存/加载模型。对 XML 执行此操作非常简单(有一个抽象 API 可用于模型中的任何对象),因此无论您的模型多么复杂,您只需要编写一个类,例如 50 行代码。

UI 控件不容易扩展,所以如果你需要一些不附带的东西,祝你好运。

上面提到的模型可以在一个小时内实现,另一个小时从 XML 读取/写入它。使用 Qt 中的画布小部件,关系的图形导航将需要几天时间。

于 2009-02-04T13:44:56.060 回答
0

Panther(和它的 OSS 版本POSSL)似乎是一个构建 Web 应用程序的框架。我无法安装它,因为它只带有一个 Unix shell 脚本作为安装程序。有其他人有这方面的经验吗?那么请编辑此条目。

于 2009-02-04T14:14:09.763 回答
0

我认为nbandroid值得一提。它是使用 NetBeans IDE 开发 Google Android 软件的 RAD 工具。

于 2009-02-04T14:29:45.673 回答
0

Visual DataFlex是我们使用的一个很棒的 RAD 工具。它专门针对创建数据库驱动的业务应用程序。不幸的是,它不是免费的,但它是一个很棒的环境/语言,并且数据访问提供了很好的支持。

于 2009-05-07T14:31:57.017 回答
0

DragonRAD刚刚宣布用于黑莓应用程序开发。目前处于封闭测试阶段。

于 2010-08-21T04:52:39.010 回答
-1

Boa Constructor是一个跨平台的 Python IDE 和 wxPython GUI Builder。

它在 Wikipedia 上被列为跨平台 RAD,但我猜它更像是一个 IDE(而不是您可以在几个小时内构建上述应用程序的东西)。

于 2009-02-04T14:04:00.250 回答