November 22, 2007
Wisss
No Comments
I’ve got 2 months of work on Wisss from my boss \o/ I’ll start these days since I’m working on an other project but not full time.
The first steps will be to define a clear roadmap to achieve something at the end of these 2 months. I was thinking about defining the metamodel v1 and coding the generator for Data Access Object. We have a lot of work to avoid pitfalls encountered on the last project and find the good compromise between framework and generated persistence.
On the other hand, it would be great to have a full working generator, managing persistence, business logic and presentation. But I don’t want to make another “merely working” generator. I aim to have parts which do their job well. Focusing on persistence will allow contributors to already think to the other layers. Indeed, my reflection is more advanced on persistence since it is quite the only thing we have managed in our last project.
For now, I will fill the Trac wiki for contributors, available at http://trac.wisss.org, and start to communicate about the project.
October 4, 2007
Wisss
2 Comments
Long time not written here. I’ve a huge amount of work for now. But these customer projects are not totally useless for Wisss. Indeed, the current project I’m working on is to rewrite a CRM using Zend Framework. To achieve this, we have used Topcased to modelize the business in UML and written Acceleo templates to generate sql, dao (persistence) and dto (business data). It’s perfectible but it has help to refactor the model and correct mistakes. At this time, we have about 100 000 lines of code, most of them generated, for less than 2 months of work.
The use of UML enforce my will to define a Wisss DSL since it lacks some important notions and shortcut to be specific to web problematics. Concerning Zend Framework, it validates my first feel, it’s a good framework, with no critical bugs concerning what we have used. Concerning generation, it’s a pretty good proof of industrialized use which works and makes saving time.
As I said, I’ve got absolutely not time to work on Wisss for now, but I’m in discussion with my boss to get some.
The next step is to achieve customer projects, take some holidays and then, I hope, work on Wisss full time. I’ll need to define a clear road-map since I won’t have so much time to get a v1.0 and to organize and dispatch work between contributors who have appeared.
The first goal of the v1.0 is to generate the community website of my company as a proof of concept since it will integrates blog and CMS features.
July 8, 2007
Wisss
3 Comments
I was developping a kind of framework for Wisss, as mentionned on the official page, since noone appealed to me. All of them were too new or were generating code (like Symphony). I’ve taken a look to Zend Framework at the 1.0 announcement last week and what an amazing surprise to see a framework which was doing everything I want.
ZF resolves architecture problems I was just beginning to think about. It makes far less than a RoR-like framework, but that’s what I like. It lets the place free to add a real generator. So, ZF used MVC pattern. As my collegue Régis aims at repeating,it filters inputs and outpus. It allows you to manage authentification, ACLs, indexing, I18N, …
With this framework, I think I will make a big step forward in the next days/weeks. You will probably have something to test earlier than I thought. First feedbacks on #zftalk are pretty encouraging and I’ve got a proposition of contribution which may increase my productivity.
Soon, Wisss won’t be a buzz anymore but a reality (and there will be more than 2 visitors/day here :-p )
June 6, 2007
Wisss
1 Comment
Things are moving in the Acceleo community. First of all, Acceleo 2 is out and provides a big place for modules like Wisss. To take advantage of the buzz, I’ve finally written the official acceleo page for Wisss. I’ve also comited all my changes in the SVN even if it doesn’t work as well as my first attempt.
But what interests me above all is the publication of the advanced documentation. I’d rather continue to code but I will first read it. So much time I wait for it
I hope understanding new things, avoid mistakes while it’s not too late.
For those who read this post (if ever there are) and don’t want to look at the SVN or don’t understand what I am doing, I’m currently working on the PHP generator, especilly on the object manager and the call order between business object and persistense ones. I’ve defined three ways to get an object back from the database : atomic (only the object, with id for associated objects), summary (get only useful information from the object and its related objects, will probably be user code) and full (get all information and related objects).
I try to make everything in the object manager, to have a central place to make choice and thus experiment optimization and auto-detection for what to load. But I lose my way because I don’t manage to make a choice in my Php architecture and I don’t know which layer should instanciate objects from the other.
Even if I’ve simplified my metamodel regarding to the previous version, concerning the generator I’m affraid to try something really too complex for what Php can do. I’ll see. If the metamodel is right, it’s already a very good thing.
I’ll be back ! (after reading Obeo’s documentation
)
May 29, 2007
Wisss
No Comments
As Jérôme Benois made, it’s time to give feedback on Acceleo (and I’ve been asked several times by Cédric for doing it). The french version of this post is at the end.
I discovered MDE during a school project on MIA Generation. We had to generate a dynamic XML reader/writer for a given XML schema. I’ve immediatly noticed how fun it could be to generate database persistence for a website. The year after, Cédric has been hired in Obeo to work on Acceleo so I couldn’t stop playing with MDE principles 
During the first months in Makina Corpus, I’ve spent my time on Wisss. PHP is the technology I know the most and probably the worst used, that’s why I decided to develop a generator to get a secure and well architectured code. A pros for Acceleo is its basement on Eclipse. It provides a complete environment for MDE with EMF (to define a DSL) and GMF (to define a user-friendly modeler). It’s quick to understand and problems you encounter are more due to modelisation or architecturing than the tool Acceleo. Even if I or some other users can have more feature requirements, Acceleo manage very well to do what it is intended for : generate code.
I’ve not yet a working project but it’s only because of me
I’m refactoring my first prototype since I’ve discovered new shortcuts and tricks in Acceleo (how inheritance work better than I thought for instance).
For the near future, I hope to have a first working version of Wisss, to go on working with Acceleo, and to go deeper in Eclipse framework to be able to extend Acceleo, EMF or GMF. My wish is now to make PHP developpers consider MDE, which is an other approach (and more efficient to my mind) than pseudo generators and pseudo introspection provided by current frameworks.
French version
J’ai découvert le MDE pendant un projet scolaire sur MIA Generation. Nous devions générer un lecteur/écrivain XML dynamiquement en fonction d’un schéma XML donné. J’ai immédiatement remarqué à quel point ca serait intéressant de pouvoir générer la persistence en base pour un site. L’année suivante, Cédric a été embauché chez Obeo pour travailler sur Acceleo, je ne pouvais pas arrêter de jouer avec le MDE 
Pendant mes premiers mois à Makina Corpus, j’ai passé du temps sur Wisss. PHP est la technologie que je connais la mieux et probablement la plus mal utilisée, c’est pourquoi j’ai décidé de développer un générateur de code sécurisé et bien architecturé. Un des avantages d’Acceleo est qu’il est basé sur Eclipse. Cela permet d’obtenir un environnement de MDE complet avec EMF (pour définir un DSL) et GMF (pour définir un modeleur ergonomique et attrayant). Il est rapide à prendre en main et les problèmes rencontrés sont plus dus à la modélisation ou à l’architecture que l’ont met en oeuvre qu’à l’outil Acceleo. Même si moi ou d’autres utilisateurs voudraient bien quelques fonctionnalités en plus, Acceleo remplit très bien la tâche pour laquelle il a été conçu : générer du code.
Je n’ai pas encore un projet fonctionnel mais c’est uniquement ma faute
Je suis en train de repenser mon premier prototype depuis que j’ai découvert des nouvelles techniques dans Acceleo (notamment à quel point l’héritage foncitonne bien).
Dans un futur proche, j’espère avoir une première version de Wisss qui marche, pour continuer à travailler avec Acceleo, et approfondir le framework Eclipse pour être capable d’étendre Acceleo, EMF ou GMF. Mon souhait maintenant est de faire prendre conscience du MDE aux developpeurs PHP, ce qui est une autre approche (plus efficace à mon avis) que les pseudo générateurs et la pseudo introspection fournis par les frameworks actuels.