Jonathan just posted an article about using User Generated Templates for .NET, using Liquid.NET. It’s a good piece of info so do check it out!
Why this is important, is that this is a great way to introduce flexibility in report outputs, especially document printing. You know, printing invoices, certificates, letters, etc, which tend to be routine, only each company or institution wants it in their own format. Normally software vendors do a customization and then charge for the time and money spent, and they have to deal with the hassle of maintaining all this custom code through version upgrades and further customizations. Eventually it becomes a mammoth task, which only large companies can afford to pay for, and smaller companies either just start using pre-built templates, or stop altogether and go back to using MS Office.
We ourselves had this predicament when we started building Catalyst three years ago, and we dealt with it slightly differently. Our customers are less tech savvy than the average, and they just don’t have time to learn new template languages or dsls. So we used RTF templates – basically allowing customers to upload their own templates with a predetermined number of placeholders, which will be replaced at runtime. This gave us the best of both worlds and this is what we use so far.
However where this falls short, is that this ease comes at a price – flexibility is curtailed and we cannot use even slightly complex logic, such as flexibility in number of subjects for which marks are given, or number of lines an invoice is supposed to have – they can be handled, but each of these needs to be considered as a special case which again introduces complexity. I am wondering if we should go back and revisit that decision of using RTF templates, and start using a templating engine like Liquid.NET.