2009-04-21 86 views
0

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

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

这绝对听起来对我来说是一个理智的想法。你可以平凡地从IronPython访问CLR内部(对象和返回值),我不知道IronRuby。 IronPython in Action的第1章和第7章在线提供,可能会有所帮助。在learning python博客上还有一个“hello world”风格的教程。

+0

耶,我是理智的! ;-)谢谢指点我的这些资源,我只是通过这本电子书,它似乎包括我需要知道的一切。我有这样的感觉,即Ruby最终会创建一个DSL,但我对Ruby和Python都知之甚少。 – 2009-04-21 19:56:11