Demo of Wisss 0.2.0
January 28, 2008 4:19 pm WisssThings are moving on in Wisss, I’ve been working on presentation and business logic over the last couple of weeks. It’s beginning to be presentable. This 0.2.0 milestone is not yet finished but already I can show you how it handles the model and what it generates.
Concerning the metamodel, I’ve defined two new packages: view and workflow. View metamodel allows you to define widgets by adding attributes from class data, references to classes or other widgets. The goal is to avoid generating CRUD forms by mapping to classes, which is not always exactly what we want. In the example, it allows you to create a new blog post with a new category. Another use case is to only show a part of a class.
The workflow metamodel, which may be soon renamed to dataflow (thanks to Tortoose for pointing this out) aims to define simple business processes. Like for views, generating simple CRUD processes is not enough for real projects. You often want a form which will create an object associated with another object or a wizard to dispatch creation in several actions. To achieve this, I’ve made a kind of dataflow to define simple algorithms. It allows you to link activities with each other using transitions and define what is for instance a blog post creation process. Activities can be either predefined or user defined. For instance, there is a Create activity which is related to a class. It takes several parameters in entry, mapped to the related class and returns an object.
For these predefined model entities, I’ve played with the code generated by JET. It’s the part which allows me to have a model editor from the ecore metamodel. For instance, what I’ve made is to add in and out parameters to a create activity when you choose its type.
I’ve made a flash demo of the model creation for a very small blog example (Icon set for new packages have not yet been done).
Concerning generation, I’ve added a configuration file for an apache virtualhost, a simple bootstrap, controllers, business objects and view templates. Each widget generates a template and IO activities (input or output) generate the templates which will be used with the controllers. I’ve used the new partial() function to achieve widget inclusion.
Concerning the work dataflow, I generate a business object for each process which contains a static method for each activity (which is not IO activity). A controller is also generated for each process and a controller action is added for each IO activity. A java service generates activity calls in the right order by browsing transitions.
I’ve also made a flash demo of the generation and the webapp working.
Concerning the next steps in Wisss, I may achieve the 0.2.0 in the next days, implementing all typical activities. The next 0.3.0 will add authentication and ACLs and the 0.4.0 will be the right time to add error management and user code blocks. I may find a 0.5.0 milestone before the 1.0 but I hope it will be the last. Now Wisss is presentable, I hope that the buzz will grow in the PHP community.
Thanks to Akrabat, TubularBell and norm2782 from #zftalk for proof reading.

Northern :
Date: January 30, 2008 @ 3:20 pm
Very interresting project. I’m looking forward to add wiss in our development process and see the gain of productivity we could achive thanks to it.
Alf :
Date: January 30, 2008 @ 3:32 pm
For production, I advise you to wait for 1.0. The other solution is to become involved in the Wisss development to make things go quicker
We will probably use Wisss for customer projects before the 1.0 because we know exactly what it does and what it does not.
Christophe Bresso :
Date: June 15, 2008 @ 11:35 pm
Bonsoir,
J’ai vu votre démo impressionnant!
Par contre sur le site d’accéléo, je n’ai pu installer que la version 0.1. Où puis-je trouver la 0.2?
Merci
alf :
Date: June 16, 2008 @ 9:10 am
Bonjour Christophe,
je me rends compte que je n’ai jamais taggé la version 0.2 sur le svn :-/
Je suis actuellement en route pour la 0.3 et beaucoup de choses ont changé au niveau du metamodèle. Je t’invite à télécharger directement à partir du SVN, surtout que j’ai pas mal bossé dessus ce week end.
Je devrais sortir la 0.3 d’ici peu. Je commence à approcher des concepts de la 1.0. N’hésite pas à venir me poser des questions sur #wisss sur freenode.