Hi Stephen,



On 5 March 2014 03:20, Stephen Cameron <[email protected]> wrote:

> Hi Apache Isis Users,
>
> I am about to start my first Isis project, just a small demo project to
> show a potential client.
>
> Nice to hear; let us know how it pans out.



> A subject that I find quite interesting is the usefulness of a Conceptual
> Model in the development process. Having read the  'Domain Driven Design
> using Naked Objects' book by Dan I am aware that a Model Driven
> Architecture (MDA) approach is not really a good fit for Naked Objects.
> ("Bah and humbug!" are the words used with regard to OMG's MDA PIM and PSM
> approach I read, and agree with).
>
>
And you probably also read an article I wrote a decade ago now on the
subject for TSS [1].



> I agree, but at the same time I am very attracted to the idea of a
> conceptual or semantic data-model as a part of a system. That such a graph
> diagram of 'things' and relationships between them, can be an effective way
> of defining the 'ubiquitous language' of DDD.
>
> I don't think that's incompatible.  I got into OO originally from a data
modelling viewpoint (used to work as a consultant for an RDBMS company).



> The way I see this working is for Java classes to be generated from the
> model which then form the model layer of the Isis application. Then
> behavioural aspects get superimposed on that data-model layer by adding
> subclasses of the generated model classes.
>
> That's one way to add them, though it does mean having factories
everywhere so that objects can be instantiated "polymorphically".  Not that
that is a bad pattern.

An alternative that you also have with Isis is contributed
actions/properties/collections.  And I just finished (in 1.4.0-SNAPSHOT)
implementing the supporting facets for these
(hide/disable/validate/choices/default).  So - from a UI perspective at
least - it is a matter of preference which to use.

In fact, I sometimes think that Isis is more of an AOP framework than an
OOP framework.

You can learn more by looking at Estatio [2] (which uses them moderately,
and might use them more inthe future).  The example todo app also shows
this in use (ToDoItemContributions).


Another option would be to write a DSL using XTend [3].  I know that
Maurizio has done some stuff (outside of Isis) that leverages this tool.
 The point being: you can then define how you separate and combine the data
vs behaviour.... we start to wander into DCI territory at this point [4],[5]


[snip]
>
> In summary, I see Conceptual Modeling and DDD as both being very focused on
> language and meaning (semantics) and with a good potential for
> cross-fertilisation. So, I am just wondering if anyone has been down this
> path at all?
>
> Hope the above hopes.


> Just maybe, in my scenario, Isis might not prove a great advantage as I'm
> so data focused.


I suspect Isis will still be valuable; it'll help visualize and validate
the language with your domain experts.


> [snip]


Cheers
Dan


[1] http://www.theserverside.com/news/1365166/MDA-Nice-idea-shame-about-the
[2] https://github.com/estatio/estatio
[3] https://www.eclipse.org/xtend/
[4] http://vimeo.com/43536416
[5] http://www.artima.com/articles/dci_vision.html

Reply via email to