计算价格的业务规则

时间:2009-04-21 19:34:37

标签: python ruby scripting rules dynamic-language-runtime

我工作的业务是在线零售商,我目前正在开展一个项目,其中包括计算产品的客户价格。我们可能会创建一个类似于......的服务。

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对象交互并返回值的链接文章/教程?

1 个答案:

答案 0 :(得分:1)

对我来说,这绝对听起来像是一个理智的主意。您可以从IronPython中轻松访问CLR内部(对象和返回值),我不知道IronRuby。 IronPython in Action的第1章和第7章可在线获取,可能会有所帮助。 learning python博客上还有一个“hello world”风格教程。