I like the idea of @DomainEntity because it seems more descriptive, but I guess 
that doesn’t fit  well for ViewModels, hence the need for the @ViewModel.
I also like prefixing the other annotations with 'Domain'.

Is this the set that would be considered given option 'A' and the related 
proposal?

@DomainService
@DomainEntity  and @DomainEntityLayout
@DomainProperty  and @DomainPropertyLayout
@DomainCollection  and @DomainCollectionLayout
@DomainAction and @DomainActionLayout
@DomainParameter and @DomainParameterLayout
@ViewModel and @ViewModelLayout



Jeremy D. Branham
Tel: **DOTNET


-----Original Message-----
From: Dan Haywood [mailto:d...@haywood-associates.co.uk]
Sent: Wednesday, December 31, 2014 1:05 AM
To: users
Subject: Simplifying annotation names

Hi folks,

Over on the dev@isis.a.o list we've been debating a couple of related proposals 
on introducing some new annotations to make the framework overall easier to 
learn and make features more discoverable.

The main idea (as proposed in ISIS-970 [1]) is to replace the numerous 
annotations with just two one for each feature, one to capture domain 
semantics, and one for UI hints.  And, of these, the latter is optional because 
the xxx.layout.json file can always be used instead.

Thus, for object members we are proposing:

@Property and @PropertyLayout
@Collection and @CollectionLayout
@Action and @ActionLayout
@Parameter and @ParameterLayout.

For services we have:

@DomainService.

For objects we have two alternatives, and opinion is currently split.

option (A):
@DomainEntity  and @DomainEntityLayout
with
@ViewModel  and @ViewModelLayout

or

option (B)
@DomainObject  and @DomainObjectLayout


With option (A), the two @XxxLayout annotations are basically identical, but 
are provided for consistency.  Remember that in most cases they won't be used, 
with xxx.layout.json being used instead.

With option (B), the concept of view models is relegated to an attribute of 
@DomainObject, that is:

@DomainObject(type = ENTITY | VIEW_MODEL)

This is a slight simplification but is at the heart of the debate.

So far, we've had 3 votes for option A and 4 votes for option B, see [2]

So....
... are there any new opinions from anyone on option A vs option B?




~~~~~~~~~~~~~~

A related proposal is to also rename the annotations for 
@Property/@Collection/@Action etc, to add "Domain" as a prefix.

This fits nicely with option (B), to give a full set of:

@DomainService
@DomainObject  and @DomainObjectLayout
@DomainProperty  and @DomainPropertyLayout @DomainCollection  and 
@DomainCollectionLayout @DomainAction and @DomainActionLayout @DomainParameter 
and @DomainParameterLayout

For option (A), it probably doesn't make as much sense (unless we were to have 
@ViewModelXxx equivalents for @Property/@Collection etc... which sounds rather 
cumbersome to me).

Any thoughts on this related proposal?

Thanks

Dan




[1] https://issues.apache.org/jira/browse/ISIS-970
[2] http://isis.markmail.org/thread/272nnmh7kjvjwowl

________________________________

This e-mail may contain Sprint proprietary information intended for the sole 
use of the recipient(s). Any use by others is prohibited. If you are not the 
intended recipient, please contact the sender and delete all copies of the 
message.

Reply via email to