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 [email protected] | www.netural.com On Tue, Dec 30, 2014 at 1:00 PM, Dan Haywood <[email protected]> wrote: > 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. >>
