Introducing… Apache Isis. Ubiquitous Language With a conscious effort by the team, the domain...

15
Introducing… Introducing… Apache Isis Apache Isis

Transcript of Introducing… Apache Isis. Ubiquitous Language With a conscious effort by the team, the domain...

Page 1: Introducing… Apache Isis. Ubiquitous Language With a conscious effort by the team, the domain model can provide the backbone for that common language.

Introducing…Introducing…Apache IsisApache Isis

Page 2: Introducing… Apache Isis. Ubiquitous Language With a conscious effort by the team, the domain model can provide the backbone for that common language.

Ubiquitous LanguageUbiquitous Language

With a conscious effort by the team, the domain model can provide the

backbone for that common languageEric Evans,

Domain Driven Design

Page 3: Introducing… Apache Isis. Ubiquitous Language With a conscious effort by the team, the domain model can provide the backbone for that common language.

What is Apache Isis?What is Apache Isis?

Page 4: Introducing… Apache Isis. Ubiquitous Language With a conscious effort by the team, the domain model can provide the backbone for that common language.

Isis Use CasesIsis Use Cases

prototypepojo

domain model

deploy as thedomain model

in your own app

deploy as anauto-generated

RESTful web service

deploy as aauto-generated

webapp

specify, develop

domain model &unit test

with Isis persistence or

with custom persistence

JUnit integrationBDD integration

Isis’programming modeland optionally

custom extensions

Page 5: Introducing… Apache Isis. Ubiquitous Language With a conscious effort by the team, the domain model can provide the backbone for that common language.

Isis apps are just pojosIsis apps are just pojos

Page 6: Introducing… Apache Isis. Ubiquitous Language With a conscious effort by the team, the domain model can provide the backbone for that common language.

The Isis Programming ModelThe Isis Programming Model

Page 7: Introducing… Apache Isis. Ubiquitous Language With a conscious effort by the team, the domain model can provide the backbone for that common language.

So, what does the app look So, what does the app look like?like?

• Isis Online Demo

• Maven archetypemvn archetype:generate \ -D archetypeGroupId=org.apache.isis.support \ -D archetypeArtifactId=quickstart-archetype

Page 8: Introducing… Apache Isis. Ubiquitous Language With a conscious effort by the team, the domain model can provide the backbone for that common language.

Apache Isis’ ArchitectureApache Isis’ Architecture

Page 9: Introducing… Apache Isis. Ubiquitous Language With a conscious effort by the team, the domain model can provide the backbone for that common language.

ResourcesResources• Apache Isis Incubator website– http://incubator.apache.org/isis– links to the mailing list

• mailto:[email protected] – links to the wiki and to JIRA– describes how to use Isis’ quickstart archetype

• Isis Online Demo– http://mmyco.co.uk:8180/isis-onlinedemo

• Restful Objects spec– http://restfulobjects.org – as implemented by the json (REST) viewer

Page 10: Introducing… Apache Isis. Ubiquitous Language With a conscious effort by the team, the domain model can provide the backbone for that common language.

Naked ObjectsNaked Objects

Page 11: Introducing… Apache Isis. Ubiquitous Language With a conscious effort by the team, the domain model can provide the backbone for that common language.

Don’t Repeat YourselfDon’t Repeat Yourself

• The UI representationscorrespond directlywith the underlyingdomain object model

• So, for instance:– objects instances exposed as icons– object properties / collections exposed in forms– object methods exposed as menu items

• eg Claim#submit(Approver)– repositories/domain services exposed as desktop icons

• eg ClaimRepository, EmployeeRepository

Page 12: Introducing… Apache Isis. Ubiquitous Language With a conscious effort by the team, the domain model can provide the backbone for that common language.

The DSP:The DSP:

Why?Why?

Page 13: Introducing… Apache Isis. Ubiquitous Language With a conscious effort by the team, the domain model can provide the backbone for that common language.

The DSPThe DSP

What?What?

Page 14: Introducing… Apache Isis. Ubiquitous Language With a conscious effort by the team, the domain model can provide the backbone for that common language.

Why the DSP's Naked Objects system Why the DSP's Naked Objects system makes for an interesting story:makes for an interesting story:

Page 15: Introducing… Apache Isis. Ubiquitous Language With a conscious effort by the team, the domain model can provide the backbone for that common language.

Naked Objects ResourcesNaked Objects Resources

• Richard Pawson’s original thesis on Naked Objects– http://incubator.apache.org/isis/Pawson-Naked-Objects-thesis.pdf

• Richard Pawson andRob Matthew’s book

• Dan Haywood’s book– http://www.pragprog.com/titles/dhnako

• Naked Objects MVC– http://nakedobjects.net – also implements the Restful Objects spec