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
