领域驱动设计的Java框架,Apache Isis 1.6.0 版本发布

jopen 10年前

We just pushed out 1.6.0 of Isis, which now consists of:
  • Apache Isis Core version 1.6.0
  • Wicket Viewer 1.6.0
  • TodoApp Archetype 1.6.0
  • SimpleApp Archetype 1.6.0
If you compare this announcement to that of 1.5.0, you’ll see that we’re releasing a lot fewer components.  But that’s because:
  • Isis Core now incorporates the JDO Objectstore, Restful Objects Viewer and Shiro Security (all previously released as separate components).
  • TodoApp Archetype was previously the ‘Quickstart (Wicket/Restful/JDO) archetype’
  • SimpleApp Archetype was previously the ‘Simple (Wicket/Restful/JDO) archetype’
Full release notes are available on the Isis website, but there are some significant new features and reorganization worth calling out.
  • Extend (custom) EventBus vetoing logic so that can also encompass hide, disable, validate (ISIS-831)
  • @DomainService annotation to automatically discover and register domains (ISIS-493)
  • Wicket viewer: Add edit capability to view objects (ISIS-781)
  • Wicket viewer: Wizard-like form for Wicket viewer (ISIS-800, ISIS-810)
  • Move jdo, shiro and restful into core (ISIS-832)
  • Breaking out applib and JDO services into modules (ISIS-833)

The new EventBus stuff substantially helps decouple business logic in apps, while the @DomainService annotation reduces a lot of boring configuration.  But it’s the last two bullet points I want to talk a bit more about.

这是个用于快速开发领域驱动应用的Java框架。用户可以将精力放在领域对象的开发上,Apache Isis则负责持久化、安全与用户界面。Apache Isis遵循六边架构模式,将领域模型置于中间位置,而表示、持久化与其他服务都依赖于领域模型。 

Apache Isis遵循约定优于配置,开发者会根据一套约定与注解来编写POJO领域对象。接下来,这些对象会被Isis框架解析,框架还会负责展现、安全与持久化。当Web应用或是RESTful API遵循了Restful对象规范时,Apache Isis就可以在运行期生成领域模型的展现。开发团队可以使用自动生成的Web应用与Web服务进行快速原型,甚至是产品部署。

Apache Isis架构

领域驱动设计的Java框架,Apache Isis 1.6.0 版本发布

Apache Isis可扩展且可定制。开发团队可以选择不同的视图、对象存储、安全机制、分析存储与编程模型。可用的视图有Wicket、 RestfulObjects、Scimpi、DnD、HTML、JUnit与BDD Concordion。可用的对象存储有JDO、NoSQL、SQL与XML。安全可以通过文件、Shiro、LDAP或SQL实现。分析可以存储为 XML或是数据库中。领域对象(通常使用Java编写)还可以使用Groovy编写,使用Groovy编程模型组件。Isis 1.0带有Isis核心、基于文件的安全、JDO对象存储、Wicket视图与Restful Objects视图。
To expand on what these last two bullet points mean, as of 1.6.0 Isis now has a companion website,  www.isisaddons.org [10].  Similar to the way in which Apache Wicket has an additional “wicketstuff” website [9], the intention is for this site to house various third-party extensions to Isis, such that they can either be used “out-of-the-box”, or be forked and extended as need be.
Currently Isis add-ons fall into two categories:
  • modules… these provide business functionality to be incorporated directly into your domain object model, usually as domain services, occasionally with supporting entities.  Examples include mail merge, spreadsheets, tags/labels.
  • wicket extensions … these extend the capability of the Wicket viewer, eg maps, calendars, charts.

In the future we expect to add in “metamodel” category for customizations to Isis’ metamodel, eg an extension to leverage various Java 8 reflection features which we don’t want to roll into Isis core just yet.

The intention is for all modules in www.isisaddons.org to follow a standard format, and include full unit and integration testing.  Thus, if you want to fork and extend any given module, then there is a solid base to start from.  Over time we hope that the “modules” in particular will provide a useful catalog to help bootstrap Isis development, and provide a way for the community to contribute back their own functionality as modules.

We are also considering moving some of Isis’ own modules (ie those recently factored out, such as for auditing, command, publishing etc) into www.isisaddons.org.  Doing so will reduce the size of Isis itself while making it possible for these components to be more easily extended/adapted by the user community as need be.  We will certainly take a *copy* of these modules in the first instance.

OK, that’s it.  Go check out some of those links…

[1] http://isis.apache.org/core/release-notes/isis-1.6.0.html

[2] http://isis.apache.org/components/viewers/wicket/release-notes/isis-viewer-wicket-1.6.0.html

[3] http://isis.apache.org/getting-started/release-notes/todoapp-archetype-1.6.0.html

[4] http://isis.apache.org/getting-started/release-notes/simpleapp-archetype-1.6.0.html

[5] http://search.maven.org

[6] http://isis.apache.org/download.html

[7] http://isis.apache.org/intro/getting-started/simpleapp-archetype.html

[8]http://isis.apache.org/intro/getting-started/todoapp-archetype.html

[9] http://wicketstuff.org/

[10] http://www.isisaddons.org/

[11] http://isis.apache.org/core/release-notes/migrating-to-1.6.0.html