2009-04-21 8 views
0

Das Geschäft, für das ich arbeite, ist ein Online-Händler. Ich arbeite gerade an einem Projekt, das unter anderem die Berechnung der Kundenpreise für Produkte beinhaltet. Wir werden wahrscheinlich einen Dienst erstellen, wie etwas aussieht ...Geschäftsregeln für die Berechnung von Preisen

public interface IPriceService 
{ 
    decimal CalculateCustomerPrice(ISupplierPriceProvider product); 
} 

public interface ISupplierPriceProvider 
{ 
    decimal SupplierPrice { get; } 
    string Currency { get; } 
} 

Keine Sorge, es nicht genau so aussehen, aber Sie bekommen die allgemeine Idee. Bei der Implementierung dieses Dienstes wird es eine Reihe von Regeln geben, um diesen Preis zu berechnen, diese Regeln können sich ziemlich oft ändern und was wir wahrscheinlich irgendwann machen wollen, ist eine Art DSL für diese Regeln zu erstellen. Im Moment sind wir uns nicht ganz sicher, welche Änderungen tatsächlich von der Verkaufsabteilung verlangt werden und so denke ich darüber nach, das DLR zu hosten und eine Iron Python oder Iron Ruby Skriptdatei zu haben, die viel von der Preisberechnung enthält. Auf diese Weise können wir die Preisberechnungsregeln schnell aktualisieren und bekommen auch ein Gefühl dafür, welche Art von DSL die Geschäftsleute brauchen. Klingt das überhaupt wie eine vernünftige Idee und hat auch jemand Links/Tutorials, wie man den DLR hostet und die Skriptdateien mit CLR-Objekten interagieren lässt und Werte zurückgibt?

Antwort

1

Es klingt definitiv wie eine vernünftige Idee für mich. Sie können auf CLR-Interna (Objekte und Rückgabewerte) von IronPython trivial zugreifen, ich weiß nichts über IronRuby. Die Kapitel 1 und 7 von IronPython in Action sind online verfügbar und wären wahrscheinlich hilfreich. Es gibt auch ein "Hallo Welt" -Stil Tutorial verfügbar unter learning python Blog.

+0

Yay, ich bin gesund! ;-) Danke, dass du mich auf diese Ressourcen hingewiesen hast, ich werde einfach durch dieses E-Book alles, was ich wissen muss, beinhalten. Ich habe das Gefühl, dass Ruby besser wäre, um irgendwann ein DSL zu erstellen, aber ich weiß zu wenig über Ruby und Python. –