Я столкнулся с необходимостью иметь возможность хранить шаблонизированный контент отдельно от кода, который генерирует динамические поля, которые заполняют этот контент (например, слияние почты в слове). Вариант использования обычно основан на том факте, что я хочу написать код, который может отправлять динамический контент определенного типа (часто по электронной почте), который я хочу разрешить пользователям настраивать без изменения кода.
Например, мы отправляем электронные письма нашим клиентам. В конечном итоге мы настраиваем отправляемые электронные письма и добавляем динамический контент (например, мы можем захотеть сказать «Уважаемый {Contact.FirstName}»). Удобно выбросить формат этих электронных писем в базу данных или какой-нибудь XML-файл и написать код, который присваивает ему значения всех свойств отдельно. Поэтому создайте Email.XML с содержимым, и механизм, который принимает этот XML-файл, передает ему объект Contact и возвращает HTML-код электронной почты. Концептуально это довольно похоже на цель разделения слоя представления в шаблоне MVC (в данном случае электронная почта является представлением, механизм является контроллером, а объект Contact является моделью).
Похоже, что в пространстве .Net есть два претендента (оба порта java) (здесь больше , но они довольно нишевые игроки).
Кто-нибудь использовал один из этих или других шаблонизаторов? Какие ключевые различия между ними я должен учитывать при выборе