The code generator is currently using the T4 templates from Microsoft as its templating engine.
The question is if we keep this templating engine for the re-write of the code generator, or we use a different templating engine.
If we keep T4, and as part of the move to .NET Core, we can then:
- use the mono version of the T4 template engine (see if exists in .NET Core)
- or write our own parser of T4 + code generator (not that hard of a task, since T4 is pretty straightforward)
If we want to change, we have to choose a new templating engine, and : migrate / rewrite all the templates that are written in T4 !
We can also make sure the templating engine is switchable, which would be the nicest design and allow any user of the code generator to chose their prefered templating engine. This seems the ideal thing to do, if we can do it on our short timeframe.
As templating engine are concerned, the open that comes to mind is StringTemplate. However I am not convinced about the performance, as I read several complaint about it. Performance is an issue for us, as the generation of a full Generative Objects application is involved hundreds of templates.