2009-04-21 84 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