类似于 NakedObjects 的系统?

Systems Similar to NakedObjects?

不久前,我读了关于 Naked Objects 的书,对其中的想法感到很兴奋。只编写我的核心业务逻辑并自动生成 UI?给我注册!

此外,潜力还不止于此。这可能是域建模中的一个很好的工具。由于能够直接调用自己的对象,因此鼓励直接使用自己的领域对象,从而发现...

为此,我对任何类似于 Naked Objects 的系统都很感兴趣。我做了一些跑腿的工作,例如搜索 "Direct Manipulation UI" 等字符串下的匹配项,但没有找到任何有用的东西。

你知道类似的工作吗?我更喜欢 PHP 或 JavaScript 中的内容,这并不假设我是 运行 一个 Linux 框。我知道 NakedPHP 和 Spiro(找不到相关文档),但它们基本上都是 PHP 和 javascript 的 Naked Object 实现。

你知道其他系统吗?

作为 Naked Objects 这本书的合著者,我想补充一下我的看法。

人们非常喜欢裸对象模式的概念,但不喜欢特定的 UI,这种情况并不少见。您没有说您是在多长时间前查看实施的,或者实际上是哪一个。两个主要的开源实现(还有一些其他的,但不太成熟)是:

  • 用于 .NET 平台的 Naked Objects Framework
  • Apache Isis,适用于 Java 平台

这两个都有一个以上UI。但是,假设您已经查看了所有默认的 UI 并且对其中任何一个都不满意。首先,大多数在企业环境中使用任一框架的人最终都会对默认的 UI 进行相当多的自定义,无论是仅使用 .css 还是使用额外的 JavaScript - 但仍然保持动态创建的 'generic' UI 的概念。

最近,Dan Haywood 和我通过引入 Restful Objects 规范进一步推进了裸对象模式的想法 - 一种适用于任何富人的超纯 REST API域模型。这两个裸对象实现现在也实现了 Restful 对象规范。关于这一点的要点是,使用 RO API 现在相对容易设计新的、完全不同的 UIs(通用的,或完全定制的)与 RO 的服务器实现对话。换句话说,创建您自己的裸对象概念的客户端实现相对容易,重新使用两个主要服务器端实现中的任何一个。

你提到的 Spiro 是我们第一次尝试使用 JavaScript(实际上是 TypeScript)和 Angular.js 创建构建块库来创建这样的 UI .使用 RO 规范的好处在于,您可以 运行 同一客户端针对任何服务器实现。推荐大家好好看看

我偶然发现了一些其他可能的关键术语并找到了一些,尽管并非所有都在 javascript。

这些似乎更适合...

Metawidget 特别有趣。它支持 javascript,并且易于使用。您可以只向它提供您的域模型(一个 JSON 对象),它可以为其生成一个 UI。此外,它不会接管您的页面,因此它可以存在于预先存在的 UI 中,并且它允许 UI 自定义。

They also include a comparison page with similar products.

另一个有趣的是BlueJ;它是一个基于(的想法?)Naked Objects 的教育平台,但可用于较小的项目。基本上,您可以通过上下文菜单以图形方式创建 class 的实例,然后您可以通过相同的方式检查和调用生成的对象方法(可能在此过程中创建更多对象)。

更进一步,为了寻找任何 UI 自动生成,有与数据库绑定的 CRUD 可视化工具。

我仍在研究这些,尤其是对象的,并且愿意接受其他建议。