类似于NakedObjects的系统


Systems Similar to NakedObjects?

不久前,我读了一本关于裸体物体的书,对这些想法感到兴奋。只写我的核心业务逻辑并自动生成UI?给我注册!

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

  • 缺陷
  • 有用的交互模式(对于UI实现,如果用户认为UI基本上是"为域对象编写脚本",则尤其相关)
  • 新功能

为此,我对任何类似于裸体物体的系统都感兴趣。我做了一些辅助工作,比如在"直接操纵UI"之类的字符串下搜索命中率,但没有发现任何有用的东西。

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

你知道其他系统吗?

作为《裸对象》一书的合著者,我想添加我的视图。

人们确实喜欢裸对象模式的概念,但不喜欢特定的UI,这并不罕见。你没有说多久以前你看了这个实现,或者说是哪一个。两个主要的开源实现(还有其他一些,但不太成熟)是:

  • 裸对象框架,适用于.NET平台
  • Apache Isis,用于Java平台

两者都有不止一个UI。但是,让我们假设您已经查看了所有默认UI,并且对其中任何一个都不满意。首先,大多数在企业环境中使用这两种框架的人最终都会大量定制默认UI,无论是只使用.css,还是使用额外的JavaScript,但仍然坚持动态创建的"通用"UI的概念。

最近,Dan Haywood和我进一步提出了裸对象模式,引入了Restful Object规范——一种适用于任何富域模型的超纯REST API。这两个裸对象实现现在都实现了Restful对象规范。这方面的要点是,使用RO API,现在可以相对容易地设计新的、完全不同的UI(通用的或完全定制的),这些UI与RO的服务器实现进行对话。换句话说,创建自己的裸对象概念的客户端实现相对容易,重新使用两个主要的服务器端实现中的任何一个。

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

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

这些似乎更适合。。。

  • Metawidget
  • OpenXava
  • JMatter

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

它们还包括一个与类似产品的比较页面。

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

更进一步地说,对于任何UI自动生成,都有与数据库绑定的CRUD可视化工具。

  • Scito
  • SQLMaestro
  • Xataface
  • groceryCrud

我仍在研究这些,尤其是对象,并对其他建议持开放态度。