Generate Web Application, use database model


I'm very interested in MPS. I watched a lot of tutorials and I have a concrete idea what I want to do with MPS. But I'm not 100% sure if I can do this with MPS.

My plan is to use an external datamodel that I've created with Power Designer. From there I want to reuse the information about tables and views and map these information to an entity dsl created with MPS. The plan is to reference tables/views from the entities.

In the next step I want to describe CRUD interfaces inside a MPS model. Theses CRUD interfaces should reference entities, that should be shown/edited with these CRUD interfaces.

Finally I want to create a generator, that should generate JPA entities and a CDI/JSF/EJB based web application.

My questions are:

  • Is it a good idea to this with MPS? Are there any reasons why it can't work?
  • Has anybody done something similiar and can tell me some of the made experiences?
  • Is there a best practice how to play with external models (e.g. transform it into an MPS model)?

I'm happy about every comment, so please respond.

Best regards

1 comment
Comment actions Permalink
I am exactly in the same state of mind as you are.

What I have been able to do until now are the following:

  • I am not using any meta-model as an input to MPS for re-use from inside of it
  • But, using a custom entity language to define entities in the system and let the MPS generators generate JPA classes

But that is where my story is stuck at. I want to extend the generation of not just the entities, but also the following:

  • Spring-data repositories
  • Spring MVC REST controllers over the generated repositories

And then:

  • Generate scaffold application using AngularJS

All seems likely doable, but considering that all of these tasks are _not a part of any of my core projects, the ideas seem to be in a waiting state.

I have seen a white paper where Jetbrains has published their internal use of MPS in their product, YouTrack. They have claimed elsewhere that they would open up some pieces of the code for the others to benefit from their learning and experience.

Share me your experience here into this group or you may contact me [as _at_ ]



Please sign in to leave a comment.