Hi, Bertrand has asked me to give some user feedback on microsling on this list. I have been playing with microsling for just one day now and did not have a look at (full) sling, yet, but from my very limited understanding so far the issues I found should apply to sling as well.
First of all, I very much like the idea of having a simple, lightweight framework for creating web apps on top of JCRs. microsling seems to go in the right direction. I like it. Some problems I had on the way (my use case was a blogging app): conceptual stuff: - I was wondering how I can have several templates for one content type. I could work around this issue in my very simple case, but how can I have e.g. an edit template and a view template for a blog entry (depending on some request parameter or so)? Related to this: how can I render node X when node Y is requested? In my case: I got a blog entry (node Y) that has several comments (nodes X) that I want to display on the same page. In Ruby on Rails there is the concept of partial templates and I was expecting something similar. I understand that I can traverse the JCR and grab the corresponding nodes (which I did) but in that case I need to copy template code (re partial templates: the idea is basically that an object exposes different methods to render itself. In the contect of sling this idea of might clash with sling's concept of pluggable presentation scripting engines, though. If so, I'd prefer microsling to be opinionated<http://gettingreal.37signals.com/ch04_Make_Opinionated_Software.php>, i.e. decide on one scripting engine). - the content templates reside in the repository (i.e . on a WebDAV drive in my case). However, static html pages need to reside in the war file. In my use case this was especially weird, because the comment input forms were in the repository (because they are located on the blog entry renderer page) where as the "create new blog entry" form was in the war file. I would prefer if I could put all my templates and static content in the repository. - it seems to me that content I want to render needs to have the property "slingResourceType" (is that really correct?). Not a big problem for new web apps, but really a bit intrusive. I mean, the presentation app shouldnt require changes on the content. Some other feedback: - the SlingPostServlet should provide some mechanism to a) let the user set the name of the node to be created (I take it that's obvious anyway) and b) set the node type and mixins. Maybe similar to the "slingResourceType" mechanism? - I was wondering how I can use the repository authentication and authorization mechanisms for my app. Could someone give me a pointer, please? Cheers Michael
