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.
>>

Reply via email to