Hi Ahmed, Thanks for the input.
On 30 December 2014 at 10:44, Ahmed Ragab <[email protected]> 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 <[email protected]>, > 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 <[email protected]> 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 < > > > [email protected]> 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 < > > > >[email protected]> 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. >
