Business DSL - working with data storage - best approach for RDBMS?

So long I was working on this topic alone, but I thought this evening that many MPS users already did something alike. So, which approach do you use in order for your application to work with rdbms?

My case is - java application that utilizes the power of MPS and DSL, allowing user to customize UI, business processes and other customizable stuff. UI says what data it needs.

I think in this case it is possible to find out statically what data will be queried, stored and updated in database. In other words, generator will produce exact query, ie:
select 
  a1.id, 
  a1.name, 
  a1.surname, 
  a2.id, 
  a2.documentNumber 
from 
  person a1 
  join document a2 
    on a2.id = a1.document
where 
  a1.id = ?
prettyPrint();
So I don't need any ORM tool when everything is defined statically.
5 comments
Hi Askar,

we have developed a full stack for modelling business apps. for the past 2 years. UI / Mapping / Process and Commands. Some Information can be found at modellwerkstatt.org. Some docs are also available, although in german only ...

Instead of an ORM, we use simple code to map objects to tables. Object graphs are assembled from the DB manually ...

Best,
Dan
0
Thanks, Dan! I'll definitely browse your site for more info!
0
I have read blog located by your link and have some questions.

1. As I understood, you choosed "down-up" dsl creation process. In current version (version shown on screenshots) it's hard to use your language for non-techs. Do you plan to create less-tech DSLs on the top of current ones?

2. I couldn't find mentions about scheme defintion. How MPS knows what columns table Invoice consists of? Do you read scheme meta behind the scenes when starting MPS or at some defined point in time?

3. If for 2 you anyway define columns manually in an MPS model, do you refer to scheme revisions somehow?

Also, if it isn't confidential, how many programmers are involved into project? This information could give us some suggestions on how much work there is :)
0
Hi Askar,

ad 1: Yes we applied a bottom up approach. We do not intend to create an even less-tech DSL. Working with our toolset requires Programming Skills on Visual Basic level. :)

ad 2: We have a documentation pdf and i can provide some screenshots. It seems that you have read older blog posts. The DSL's have changed a lot. Only the slides on the second post are up to date! Regarding scheme meta, we have a parser which translates SQL desc <<tablename>> commands, so an import from a sql db is possible..

ad 3: We do not model scheme revisions right now, since we use git for version control. However, scheme revisions wont be a problem, since schemes are modeled explecitly.

Getting the DSL right took us almost 2 years. But we are also developing applications to develop know-how. With a Team of 3 sw-engineers we developed the DSL and 4 apps in 2 Years ...

Best,
Dan
0
Dan, thank you for your reply.

We have somewhat decided about data definition and manipulation language for our app, and that decision is based on a requirement for runtime-available data change history, so I think it will differ a bit from your one.
0

Please sign in to leave a comment.