Бизнес, в котором я работаю, это онлайн-ритейлер, в настоящее время я работаю над проектом, который, помимо прочего, включает в себя расчет потребительских цен на продукты. Мы, вероятно, создадим сервис, который будет выглядеть примерно так ...
public interface IPriceService
{
decimal CalculateCustomerPrice(ISupplierPriceProvider product);
}
public interface ISupplierPriceProvider
{
decimal SupplierPrice { get; }
string Currency { get; }
}
Не волнуйтесь, это будет выглядеть не совсем так, но вы получите общее представление. В нашей реализации этого сервиса будет ряд правил для расчета этой цены, эти правила могут изменяться довольно часто, и что мы, вероятно, хотим сделать когда-нибудь в будущем, это создать некоторый DSL для этих правил. На данный момент, хотя мы не совсем уверены, какие изменения на самом деле будут запрашивать отдел продаж и так далее, поэтому я думаю о размещении DLR и наличии файла сценария Iron Python или Iron Ruby, который содержит большую часть расчета цены. Таким образом, мы можем быстро обновить правила расчета цены, а также понять, какой тип DSL нужен деловым людям. Звучит ли это как нормальная идея, а также есть ли у кого-нибудь ссылки / статьи / руководства о том, как разместить DLR и как файлы сценариев взаимодействуют с объектами CLR и возвращают значения?