gpt4 book ai didi

.net - 动态业务规则的架构

转载 作者:行者123 更新时间:2023-12-02 19:41:50 25 4
gpt4 key购买 nike

我正在 .NET 中创建薪资应用程序。要求之一就是考勤和扣费规则要最大限度地动态、灵活。用户应该能够定义自己的规则,其中每个员工都将受到出勤规则的约束。

一种解决方案是动态编译 C# 代码,其中每个考勤规则的代码都存储在数据库中并在运行时编译,但这不是最优雅的解决方案,因为规则只能由以下人员读取/理解对于一个技术人员来说,代码的性能和可读性也不会是最好的。

我想知道是否有一个解决方案\架构模式允许我定义和应用考勤规则并根据它们计算扣除额,而无需编写脚本或动态编译 C# 代码。

最佳答案

Boo是一种成熟的 .NET 语言,具有可扩展的编译器。 Ayende 写了一本不错的书,名为“Building Domain Specific Languages in Boo”,其中讨论了扩展编译器以允许以下内容的主题:

when User.is_preferred and Order.total_cost > 1000: 
add_discount_precentage 5
apply_free_shipping
when not User.is_preferred and Order.total_cost > 1000:
suggest_upgrade_to_preferred
apply_free_shipping
when User.is_not_preferred and Order.total_cost > 500:
apply_free_shipping

当编译为 .NET 程序集时,这些规则的执行速度将非常快。但是,您确实需要在另一个 AppDomain 中执行生成的代码,以便在规则更改时可以卸载它。

关于.net - 动态业务规则的架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1322145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com