Я не могу проголосовать за Сорина за DotLiquid , поэтому просто хочу добавить свой комментарий - похоже, что активно развивается отличная платформа.
И с функциями, которые они имеют в транковой версии (не в выпущенной dll tho), вы можете использовать pocos без необходимости наследования от любого базового класса, если вы зарегистрируете их таким образом:
foreach (var type in {Assembly}.GetTypes())
Template.RegisterSafeType(type, type.GetProperties().Select(p => p.Name).ToArray());
и это решило головные боли, о которых говорил Сорин.
StringTemplate - это тоже отличная вещь, но слишком строгая и ограничивающая, шаблоны - слишком чистые представления, и использовать их нецелесообразно ...