Well done Deacon! On Fri, Jul 15, 2016 at 7:27 PM, César Camilo Lugo Marcos < cesar.l...@sisorg.com.mx> wrote:
> Deacon, > > What a great summary, congratulations! > > I want to take the opportunity to add some stuff: > > More great stuff: > - We have tested our Apache ISIS application in an AWS cloud load > balanced environment including some level of volume concurrency testing. > So far so good. We are expecting to have millions of users, and so far > it looks like, with proper load balancing and fail-over, it will do the > job. > > - We are using it in conjunction with mobile applications leveraging the > flexibility and automation of N.O. restful services. It's just amazing > how it simplifies RESTful services consumption in a mobile environment, > particularly the ability to "join" results with the xo prefix. > > More wish list: > - Mutable collections grids in the wicket viewer. > - Image collections shown as images. > - Configurable UI filters by domain entities, allowing to filter by > multiple attributes, with multiple types of filters (radio, range, > boolean condition). > - More business needs oriented add-ons, particularly if they follow > industry-standards through the use of ontologies. So far the ones > available are more technical, and they do a great job, like maps, audit > and multi-tenant. > > I think the RO domain model and the restful services are quite mature > and powerful, and the wicket viewer is a little behind but evolving in > the right direction. Also, Dan mentioned that eventually they will add > some more powerful viewers, which sounds quite exciting!. > > César. > > On Fri, 2016-07-15 at 18:11 +0200, Deacon Frost wrote: > > I successfully delivered my first "real" Apache Isis application today -- > > YAY!! -- and would like to share my experience. > > > > My background: I am a reasonably experienced developer proficient in > custom > > application development in C#, Java, Javascript, Python etc. but never > > touched Apache Isis nor Apache Wicket nor DataNucleus before, my Java > chops > > are a bit rusty and I am a complete Maven noob. > > > > I have been following NakedObjects since the early 2000's and am quite > > intrigued by its philosophy and promises but never mad the "plunge" to > > actually implement a project for a client with it. I checked out Apache > > Isis on and off (hey, I even bought and enjoyed Dan's book in 2009 or so) > > but - without wanting to sound blasé - the UI was never quite up to my > > taste (the .NET-Version was even worse). But the recent changes to the > look > > and feel of the Bootstrap Wicket interface made me confident to finally > be > > able to "sell" it to clients. > > > > The target application is - in a nutshell - an internal web-application > for > > a government department to define and configure traffic webcams (~1000), > > locate them interactively on a map, display their latest images, link > them > > to their road network data etc. Nothing too complex but the right size to > > try something new, I guess. > > > > The great: > > I implemented a working prototype of the application in under a week(!), > > which already looked very polished and had lots of "bells and whistles", > > like a Google Maps interface, display of live images, Excel-export, > > auditing-service, REST-interface etc.. The client was positively > surprised > > by the polished looks and richness of features and went for it. So, > within > > two weeks after that I was able to implement the complete application, > > reusing most of the work implemented in the prototype. > > > > I had to implement two Isis wicket components: > > - Display of a map (Locatable) based on OpenStreetMap: > > I had trouble getting the Google map interface to work in the client's > > environment. It kept complaining about application keys etc. and wasn't > > usable at all. Thanks to the "wicket stuff" implementation of openlayers3 > > and a shameless "raid" of Dan's gmap3-isis-component I was able to build > an > > openlayers3-isis-component myself, despite my utter isis/wicket > noob-ness. > > - Display of static image resources: > > The "standard" Blob-interface didn't cut it for me because it only > > displays a thumbnail image (which was even of a bigger byte size and > lower > > resolution than the original) of an image resource from memory/db. I was > > able to build an Isis ExternalImageUrl-component by copying much of the > > Blob/Clob-component but using static URLs, which works flawlessly for > > displaying the original images based on an "ExternalImageUrl"-Property of > > the entity. > > > > (Once the dust has settled I want to contribute the openlayers3- and > static > > image components. Maybe one of you guys can provide me with a little > > guidance how to set that up...) > > > > I had some minor questions that got answered instantly by Dan and Co on > the > > mailing list. Thanks again! > > > > The ability to define aspects of the interface in the XML-layout files is > > great (despite some minor quirks with the translation)! Studying the > > TodoApp helps a lot in this regard. > > > > The not-so-great: > > > > I think the code base is still quite dynamic, which is good in a way > > because it gets actively developed (does Dan ever sleep? ;)) but it's > also > > difficult for a noob to jump in. I happened to work with the sources > right > > before the 1.12.2 release which had some annoying "surface" bugs and in > > 1.13-SNAPSHOT some subtleties of the Isis-components implementation > already > > changed. > > I18ln: > > There are lots of labels hard-coded in English (I'm looking at you: > > bookmarks-display, list pager, signin fields, excel download etc.) which > > can be a real show stopper for certain clients in certain locales > (France, > > Germany, ...). Plus, if you want to fix these kinds of errors you need to > > understand the Wicket-way of doing this plus the way Isis goes about it > as > > well. And then do it for the contribs also. Surprisingly complex for a > > beginner even if they are by themselves all just small trivial fixes. > > Documentation: > > All in all the documentation is great and better than much of the other > > stuff out there, but a lot of details are missing to really understand > the > > concepts behind value objects, enum types, facets, objects not > originating > > from a database and the like. > > Furthermore, there is not a lot of info or "hand holding" about how to > take > > an application from prototyping to production. I had to spend a lot of > time > > figuring out how to get a jetty runner working with an "uberjar" in > > headless mode as a service with "external" configuration (the internal > Isis > > Server didn't work for me at all, but that might also just due to my > > inexperience). > > > > Wish list: > > - Better out-of-the-box handling of the display of external/static > > resources (Images, IFrames(!) etc.) > > - A component for pageable display of entity collections in a grid > > - A tree component > > > > All in all I definitely see Apache Isis as a great and clean way of doing > > these kinds of applications and I want to encourage people to just try it > > out for a project and see for themselves -- IMHO it's quite low risk and > > lots of fun!, especially if you can go with the existing components. It > > gives me quite a bit of confidence that even adding substantial new > > functionality - once you get the model right - just works. (Guess I'm > > preaching to the choir here here anyway ;) > > > > Cheers and a have a great weekend, > >