This is basically Oscar's preference too, and I can see some merit in it.
And if one thinks of @DomainObject as being part of the domain layer only,
then it probably should also be renamed to @DomainEntity.


But the other thing to consider is that for each of these annotations we
also have a corresponding @XxxLayout.


So then the debate was whether to keep things symmetrical.

We ended up with three options:

option 1 (symmetic, but some duplication):

@DomainEntity with @DomainEntityLayout
@ViewModel with @ViewModelLayout


option 2 (asymmetric):

@DomainEntity  } with @DomainObjectLayout
@ViewModel      }


option 3 (symmetric, but overloaded):

@DomainObject  with @DomainObjectLayout

(with type=JDO|EXTERNAL|VIEW_MODEL)


So far we've had:
- one vote for option 1  (Oscar)
- four votes for option 3  (Jeroen, Martin, Kevin, Dan)


Cheers
Dan



On 30 December 2014 at 11:07, Ahmed Ragab <ahmed.ra...@netural.com> wrote:

> Hi Dan,
>
>
> From your input, I assume a separate @ViewModel annotation is more
> consistent due to the fact that the view model is in the application layer
> where as @DomainObject is used with entities in the data/domain layer.
>
>
>
>
> This will also help isolating specifics of both layers in upcoming
> versions.
>
>
> ____________________________________________________
>
>
>
> Netural GmbH - Digital Media in Excellence.
>
>
>
>
>
> Ahmed Ragab, M.Sc. | Software Engineer
>
>
> Peter-Behrens-Platz 2, 4020 Linz, Austria
> Neustiftgasse 32-34, 1070 Wien, Austria
> T +43 (0)732 790903-38, F +43 (0)732 790903-999
>
>
> ahmed.ra...@netural.com | www.netural.com
>
> On Tue, Dec 30, 2014 at 1:00 PM, Dan Haywood <d...@haywood-associates.co.uk
> >
> wrote:
>
> > Hi Ahmed,
> > Thanks for the input.
> > On 30 December 2014 at 10:44, Ahmed Ragab <ahmed.ra...@netural.com>
> wrote:
> >> I guess replacing persistence=JDO with persistence=INTERNAL|MANAGED|ISIS
> >> makes more sense with EXTERNAL and VIEW_MODEL since JDO is not the
> >> persistence scheme.
> >>
> >>
> > I do quite like all these names, and they make sense if one already
> knows a
> > bit about Isis, but I'm not sure how grokkable they are for a newbie.
> > And, as you then go on to point out...
> >>
> >> I don't know what persistence=VIEW_MODEL means but looks from the thread
> >> comments that it makes sense. However I am still not sure if it could
> >> co-exist with JDO/EXTERNAL persistence schemes.
> >>
> >>
> > ... it's because "persistence=VIEW_MODEL" doesn't make sense as a
> sentence
> > that I was proposing "type" instead:
> > That's why I think I still prefer:
> > @DomainObject(type=JDO_ENTITY | EXTERNAL_ENTITY | VIEW_MODEL)
> > To answer your question about external entity vs view models...
> > ... they are both implemented as view models (meaning that their state is
> > encoded in their OID, eg as used in its URL in the REST API)
> > ... the difference is one of intent:
> >     ... we would expect that entities to interact with each other (even
> if
> > one entity is an internally managed JDO entity and the other is
> externally
> > managed)
> >     ... we wouldn't expect that an entity can interact with a view model
> > (because conceptually the view model is in the application layer, whereas
> > the entity is in the domain layer below)
> > Thx again
> > Dan
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> ​BR,Ahmed
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> On Tuesday 30 Dec 2014 at 12:14, Dan Haywood <
> d...@haywood-associates.co.uk>,
> >> wrote:
> >> I guess the primary considerations are:
> >>
> >> - grokkability for new-comers
> >>
> >> - aesthetics
> >>
> >> - alignment with DDD terminology.
> >>
> >>
> >> Anyway, thanks for the vote.
> >>
> >>
> >>
> >>
> >> On 30 December 2014 at 10:01, Kevin Meyer <ke...@kmz.co.za> wrote:
> >>
> >>
> >> > I've been on holiday and only now catching up...
> >>
> >> >
> >>
> >> > I vote for 3, but don't have insight to choose between 1 and 2
> >> thereafter.
> >>
> >> >
> >>
> >> >
> >>
> >> > On 29 December 2014 16:11:24 CET, Dan Haywood <
> >>
> >> > d...@haywood-associates.co.uk> wrote:
> >>
> >> > >OK, so it comes down to either:
> >>
> >> > >
> >>
> >> > >
> >>
> >> > >*option 1:*
> >>
> >> > >
> >>
> >> > >*@DomainEntity(persistence=JDO|EXTERNAL)*
> >>
> >> > >*@ViewModel*
> >>
> >> > >
> >>
> >> > >with
> >>
> >> > >
> >>
> >> > >*@DomainEntityLayout*
> >>
> >> > >*@ViewModelLayout*
> >>
> >> > >
> >>
> >> > >
> >>
> >> > >where:
> >>
> >> > >* is symmetrical
> >>
> >> > >* some attributes of @DomainEntity don't apply if
> persistence=EXTERNAL
> >>
> >> > >* the two layouts are basically identical to each other
> >>
> >> > >
> >>
> >> > >
> >>
> >> > >--- or ---
> >>
> >> > >
> >>
> >> > >*option 2:*
> >>
> >> > >
> >>
> >> > >
> >>
> >> > >*@DomainEntity(persistence=JDO|EXTERNAL)*
> >>
> >> > >*@ViewModel*
> >>
> >> > >
> >>
> >> > >with
> >>
> >> > >
> >>
> >> > >*@DomainObjectLayout*
> >>
> >> > >
> >>
> >> > >
> >>
> >> > >where:
> >>
> >> > >* not symmetrical
> >>
> >> > >* some attributes of @DomainEntity don't apply if
> persistence=EXTERNAL
> >>
> >> > >
> >>
> >> > >
> >>
> >> > >--- or ---
> >>
> >> > >
> >>
> >> > >*option 3:*
> >>
> >> > >
> >>
> >> > >*@DomainObject(persistence=JDO|EXTERNAL|VIEW_MODEL)*
> >>
> >> > >
> >>
> >> > >with
> >>
> >> > >
> >>
> >> > >*@DomainObjectLayout*
> >>
> >> > >
> >>
> >> > >
> >>
> >> > >where:
> >>
> >> > >* is symmetrical
> >>
> >> > >* some attributes of @DomainEntity don't apply if
> persistence=EXTERNAL
> >>
> >> > >or
> >>
> >> > >VIEW_MODEL
> >>
> >> > >* concept of view model is less visible
> >>
> >> > >
> >>
> >> > >
> >>
> >> > >
> >>
> >> > >Cast your votes, please!
> >>
> >> > >
> >>
> >> > >Dan
> >>
> >> > >
> >>
> >> > >
> >>
> >> > >
> >>
> >> > >On 29 December 2014 at 15:02, GESCONSULTOR - Óscar Bou <
> >>
> >> > >o....@gesconsultor.com> wrote:
> >>
> >> > >
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >> As currently there's no "special" support for AggregateRoots or
> >>
> >> > >> ValueObjects, no more annotations are needed.
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >> Sounds like a vote to deprecate.  Jeroen has said the same thing.
> >>
> >> > >Perhaps
> >>
> >> > >> they should be deleted in v2.0 and reappear, if we want them back,
> in
> >>
> >> > >v3.0.
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >> I agree with Jeroen.
> >>
> >> > >>
> >>
> >> > >> Currently there's nothing specific about Aggregate Roots on Apache
> >>
> >> > >Isis,
> >>
> >> > >> at least on the most used modules, AFAK.
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >> * replace @DomainObject(viewModel=false)   with
> >>
> >> > >> @DomainEntity(persistence=JDO)
> >>
> >> > >>   ... this would be the default
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >> I like it :)
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >> * replace @DomainObject(viewModel=true)    with
> >>
> >> > >> @DomainEntity(persistence=EXTERNAL)
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >> This one also!
> >>
> >> > >>
> >>
> >> > >>   ... for view models representing externally-persisted entities.
> In
> >>
> >> > >the
> >>
> >> > >> Javadoc, say that auditing, publishing and bounded are not
> supported
> >>
> >> > >for
> >>
> >> > >> these
> >>
> >> > >> * keep @ViewModel
> >>
> >> > >> ... extend to include the non-entity stuff from @DomainObject that
> >>
> >> > >does
> >>
> >> > >> apply (basically, I think that's just "objectType" )
> >>
> >> > >>  ... the intention being that this is used for application-layer
> >>
> >> > >views.
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >> I agree. It should be kept for those use cases.
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >> keep @DomainObjectLayout, because everything in it applies equally
> to
> >>
> >> > >both
> >>
> >> > >> view models (either variety) and JDO entities.
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >> Mmmmm.... I would prefer to keep symmetry... I know it introduces
> >>
> >> > >some
> >>
> >> > >> redundant checks on implementation but, from the user's
> perspective,
> >>
> >> > >is a
> >>
> >> > >> clearer model ...
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >> I'll reply on your points on @Property and @Parameter separately.
> >>
> >> > >>
> >>
> >> > >> Thx
> >>
> >> > >> Dan
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >> Óscar Bou Bou
> >>
> >> > >> Responsable de Producto
> >>
> >> > >> Auditor Jefe de Certificación ISO 27001 en BSI
> >>
> >> > >> CISA, CRISC, APMG ISO 20000, ITIL-F
> >>
> >> > >>
> >>
> >> > >>    902 900 231 / 620 267 520
> >>
> >> > >>    http://www.twitter.com/oscarbou
> >>
> >> > >>
> >>
> >> > >>    http://es.linkedin.com/in/oscarbou
> >>
> >> > >>
> >>
> >> > >>    http://www.GesConsultor.com <http://www.gesconsultor.com/>
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >> Este mensaje y los ficheros anexos son confidenciales. Los mismos
> >>
> >> > >> contienen información reservada que no puede ser difundida. Si
> usted
> >>
> >> > >ha
> >>
> >> > >> recibido este correo por error, tenga la amabilidad de eliminarlo
> de
> >>
> >> > >su
> >>
> >> > >> sistema y avisar al remitente mediante reenvío a su dirección
> >>
> >> > >electrónica;
> >>
> >> > >> no deberá copiar el mensaje ni divulgar su contenido a ninguna
> >>
> >> > >persona.
> >>
> >> > >> Su dirección de correo electrónico junto a sus datos personales
> >>
> >> > >constan en
> >>
> >> > >> un fichero titularidad de Gesdatos Software, S.L. cuya finalidad es
> >>
> >> > >la de
> >>
> >> > >> mantener el contacto con Ud. Si quiere saber de qué información
> >>
> >> > >disponemos
> >>
> >> > >> de Ud., modificarla, y en su caso, cancelarla, puede hacerlo
> enviando
> >>
> >> > >un
> >>
> >> > >> escrito al efecto, acompañado de una fotocopia de su D.N.I. a la
> >>
> >> > >siguiente
> >>
> >> > >> dirección: Gesdatos Software, S.L. , Paseo de la Castellana, 153
> bajo
> >>
> >> > >-
> >>
> >> > >> 28046 (Madrid), y Avda. Cortes Valencianas num. 50, 1ºC - 46015
> >>
> >> > >(Valencia).
> >>
> >> > >> Asimismo, es su responsabilidad comprobar que este mensaje o sus
> >>
> >> > >archivos
> >>
> >> > >> adjuntos no contengan virus informáticos, y en caso que los
> tuvieran
> >>
> >> > >> eliminarlos.
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> > >>
> >>
> >> >
> >>
> >> > --
> >>
> >> > Sent from my phone with K-9 Mail.
> >>
> >> > Please excuse my brevity.
> >>
>

Reply via email to