領域驅動設計的Java框架,Apache Isis 1.6.0 版本發布
- Apache Isis Core version 1.6.0
- Wicket Viewer 1.6.0
- TodoApp Archetype 1.6.0
- SimpleApp Archetype 1.6.0
- 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’
- 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架構
- 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
[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
[10] http://www.isisaddons.org/
[11] http://isis.apache.org/core/release-notes/migrating-to-1.6.0.html