You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@isis.apache.org by Dan Haywood <da...@haywood-associates.co.uk> on 2015/11/20 11:30:35 UTC

New and better view models coming in 1.11.0-SNAPSHOT

Hi folks,

just a heads-up that in the next version we have support for JAXB-annotated
view models, meaning that a view model's memento is basically derived from
the XML serialization of its state.  We also have (bar one tiny JAXB
annotation) more or less transparent references to underlying domain
objects, and we also can support collections of objects in the graph.

Other new stuff: there's a JaxbService, and a UrlEncodingService.  There's
also a Dto role interface so that XML and XSDs can be downloaded from view
models using some new mixins.  There's also - in the user guide - a new
section describing all the different types of view models.

Also in 1.11.0 we will also have three new "UI" events; rather than write
title() or iconName() in your domain object, you can instead provide this
metadata via a subscriber.  And I added some "postForDefault" config
properties so that UI or domain events can be suppressed rather than always
posted as is currently.

Finally, I also got around to documenting the common and aim schemas.
These were introduced in 1.9.0, but never had any formal documentation
before now.

Useful links below

Cheers
Dan


http://isis.apache.org/guides/ug.html#_ug_more-advanced_view-models
http://isis.apache.org/guides/rg.html#_rg_annotations_manpage-XmlRootElement
http://isis.apache.org/guides/rg.html#_rg_services-api_manpage-JaxbService
http://isis.apache.org/guides/rg.html#_rg_services-spi_manpage-UrlEncodingService
http://isis.apache.org/guides/rg.html#_rg_classes_mixins_Dto
http://isis.apache.org/guides/rg.html#_rg_classes_uievent
http://isis.apache.org/guides/rg.html#_rg_runtime_configuring-core
http://isis.apache.org/guides/rg.html#_rg_annotations_manpage-Action_domainEvent
http://isis.apache.org/guides/rg.html#_rg_schema

Re: New and better view models coming in 1.11.0-SNAPSHOT

Posted by Stephen Cameron <st...@gmail.com>.
Apache Isis is like Aladdin's cave, every visit provides more jewels.


On Fri, Nov 20, 2015 at 9:30 PM, Dan Haywood <da...@haywood-associates.co.uk>
wrote:

> Hi folks,
>
> just a heads-up that in the next version we have support for JAXB-annotated
> view models, meaning that a view model's memento is basically derived from
> the XML serialization of its state.  We also have (bar one tiny JAXB
> annotation) more or less transparent references to underlying domain
> objects, and we also can support collections of objects in the graph.
>
> Other new stuff: there's a JaxbService, and a UrlEncodingService.  There's
> also a Dto role interface so that XML and XSDs can be downloaded from view
> models using some new mixins.  There's also - in the user guide - a new
> section describing all the different types of view models.
>
> Also in 1.11.0 we will also have three new "UI" events; rather than write
> title() or iconName() in your domain object, you can instead provide this
> metadata via a subscriber.  And I added some "postForDefault" config
> properties so that UI or domain events can be suppressed rather than always
> posted as is currently.
>
> Finally, I also got around to documenting the common and aim schemas.
> These were introduced in 1.9.0, but never had any formal documentation
> before now.
>
> Useful links below
>
> Cheers
> Dan
>
>
> http://isis.apache.org/guides/ug.html#_ug_more-advanced_view-models
>
> http://isis.apache.org/guides/rg.html#_rg_annotations_manpage-XmlRootElement
> http://isis.apache.org/guides/rg.html#_rg_services-api_manpage-JaxbService
>
> http://isis.apache.org/guides/rg.html#_rg_services-spi_manpage-UrlEncodingService
> http://isis.apache.org/guides/rg.html#_rg_classes_mixins_Dto
> http://isis.apache.org/guides/rg.html#_rg_classes_uievent
> http://isis.apache.org/guides/rg.html#_rg_runtime_configuring-core
>
> http://isis.apache.org/guides/rg.html#_rg_annotations_manpage-Action_domainEvent
> http://isis.apache.org/guides/rg.html#_rg_schema
>

Re: New and better view models coming in 1.11.0-SNAPSHOT

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
On 21 November 2015 at 20:25, Vladimir Nišević <vn...@gmail.com> wrote:

> Hi Dan, thank you, this is a really cool feature! The applications I'm
> building, have often legacy systems and some parts of my domain models are
> built on service calls to that legacy systems - in that case we build
> domain models with view models to hold the data from multiple backends and
> implement the core domain logic in them. Until now we have primarily used
> this domain models to expose REST services to other systems, but I believe
> this could be the way to implement some wicket based UI's.
>
>
Glad you like it :-)



> Additionaly, here some ideas I'd like to share, maybe to see some of them
> in the future in the Apache Isis framework:
>
> 1. Search capability based on e.g. Elasticsearch [1], where the
> Elasticsearch could act as a kind of "external index" for the parts of
> domain model. Developer could mark which fields should be searchable, this
> fields would be updated in elasticsearch instance after database
> insert/update/delete. User can search thru Elasticsearch and retreive the
> entity OID's as results and in the second step use them to retreive the
> entities from main repository (thru datanucleus container). I could
> contribute to this feature since we have integrated Elasticsearch with
> Apache Isis.
>
>
This has come up several times, and we do have a ticket for it [4].  I
think that as of 1.10.0 all the infrastructure is now in place to make this
really very easy to implement.

I've updated that ticket with some implementation details.

I do think though that it'd be better implemented as an isisaddon rather
than baked into the framework.  The isisaddons site has a template project
[5] that one can use as a starting point.




> 2. An add-on to support system-wide and/or user-specific notifications
> (similar to Atlassian Confluence [2}). An Isis user could receive such
> "notifications" - they would appear on his desktop, he could mark them
>  "readed". Some notifications could be system-wide and controlled by e.g.
> system without a possibility to remove them until e.g. administrator
> decides that. We use such features  to e.g. notify application users there
> is a newer version of the application and they should finish their work and
> log off /logon in order to switch to that new version.
>
>
Again, we have a ticket for this already [6]; I've updated it to add your
ideas (which are probably several related tickets).

Kevin and I did a spike on this a while back, and got a little clock
ticking in the corner of the Wicket viewer.  So it's definitely doable.

I think this one would probably be "baked into" the framework.




> 3. In a world of collaboration systems there could be an interest extension
> to your incode-module-note feature, the capability not only to add the
> notes to an entity, but also to add infinite comments to that note (in
> other words to add the comment threads to the entity). In combination with
> text search capability (idea #1) I thinks we could build really great
> features.
>
>
That does sound like an interesting feature.

I've raised a ticket in the incode-module-note repo [7].  What can I say
other than "pull requests" gratefully received!

Cheers
Dan




>
> Vladimir
>
>
> [1] https://www.elastic.co
> [2]
>
> https://confluence.atlassian.com/display/CONF43/Managing+Notifications+in+Confluence
>
> [3] https://github.com/incodehq
>
>
[4] https://issues.apache.org/jira/browse/ISIS-383
[5] github.com/isisaddons/template
[6] https://issues.apache.org/jira/browse/ISIS-1176
[7] https://github.com/incodehq/incode-module-note/issues/1

Re: New and better view models coming in 1.11.0-SNAPSHOT

Posted by Vladimir Nišević <vn...@gmail.com>.
Hi Dan, thank you, this is a really cool feature! The applications I'm
building, have often legacy systems and some parts of my domain models are
built on service calls to that legacy systems - in that case we build
domain models with view models to hold the data from multiple backends and
implement the core domain logic in them. Until now we have primarily used
this domain models to expose REST services to other systems, but I believe
this could be the way to implement some wicket based UI's.

Additionaly, here some ideas I'd like to share, maybe to see some of them
in the future in the Apache Isis framework:

1. Search capability based on e.g. Elasticsearch [1], where the
Elasticsearch could act as a kind of "external index" for the parts of
domain model. Developer could mark which fields should be searchable, this
fields would be updated in elasticsearch instance after database
insert/update/delete. User can search thru Elasticsearch and retreive the
entity OID's as results and in the second step use them to retreive the
entities from main repository (thru datanucleus container). I could
contribute to this feature since we have integrated Elasticsearch with
Apache Isis.

2. An add-on to support system-wide and/or user-specific notifications
(similar to Atlassian Confluence [2}). An Isis user could receive such
"notifications" - they would appear on his desktop, he could mark them
 "readed". Some notifications could be system-wide and controlled by e.g.
system without a possibility to remove them until e.g. administrator
decides that. We use such features  to e.g. notify application users there
is a newer version of the application and they should finish their work and
log off /logon in order to switch to that new version.

3. In a world of collaboration systems there could be an interest extension
to your incode-module-note feature, the capability not only to add the
notes to an entity, but also to add infinite comments to that note (in
other words to add the comment threads to the entity). In combination with
text search capability (idea #1) I thinks we could build really great
features.


Vladimir


[1] https://www.elastic.co
[2]
https://confluence.atlassian.com/display/CONF43/Managing+Notifications+in+Confluence

[3] https://github.com/incodehq

2015-11-20 11:30 GMT+01:00 Dan Haywood <da...@haywood-associates.co.uk>:

> Hi folks,
>
> just a heads-up that in the next version we have support for JAXB-annotated
> view models, meaning that a view model's memento is basically derived from
> the XML serialization of its state.  We also have (bar one tiny JAXB
> annotation) more or less transparent references to underlying domain
> objects, and we also can support collections of objects in the graph.
>
> Other new stuff: there's a JaxbService, and a UrlEncodingService.  There's
> also a Dto role interface so that XML and XSDs can be downloaded from view
> models using some new mixins.  There's also - in the user guide - a new
> section describing all the different types of view models.
>
> Also in 1.11.0 we will also have three new "UI" events; rather than write
> title() or iconName() in your domain object, you can instead provide this
> metadata via a subscriber.  And I added some "postForDefault" config
> properties so that UI or domain events can be suppressed rather than always
> posted as is currently.
>
> Finally, I also got around to documenting the common and aim schemas.
> These were introduced in 1.9.0, but never had any formal documentation
> before now.
>
> Useful links below
>
> Cheers
> Dan
>
>
> http://isis.apache.org/guides/ug.html#_ug_more-advanced_view-models
>
> http://isis.apache.org/guides/rg.html#_rg_annotations_manpage-XmlRootElement
> http://isis.apache.org/guides/rg.html#_rg_services-api_manpage-JaxbService
>
> http://isis.apache.org/guides/rg.html#_rg_services-spi_manpage-UrlEncodingService
> http://isis.apache.org/guides/rg.html#_rg_classes_mixins_Dto
> http://isis.apache.org/guides/rg.html#_rg_classes_uievent
> http://isis.apache.org/guides/rg.html#_rg_runtime_configuring-core
>
> http://isis.apache.org/guides/rg.html#_rg_annotations_manpage-Action_domainEvent
> http://isis.apache.org/guides/rg.html#_rg_schema
>