.NET 6中使用Jint的JavaScript規則引擎
過去,當我需要 .NET 中的使用者定義規則引擎時,我曾探索過使用 Irony 語言實現工具包編寫自定義域特定語言。但大多數情況下,我使用了 SpringFramework.NET,其中包含一個很棒的表示式評估引擎。表示式評估引擎允許編寫基於字串的規則,甚至是行內函數,這使得在.NET中建立一個基本的、使用者可配置的規則引擎沒有太多麻煩。
這在構建整合時特別有用,因為它為將輸入和輸出轉換為整合端點提供了一定程度的控制,可以將您的系統與上游和下游更改(例如合同格式更改)隔離開來。
雖然 SpringFramework.NET 儲存庫仍然顯示提交,但該庫似乎已經失敗
如果在 2022 年需要使用 .NET 6 的使用者可配置、可編寫指令碼的規則引擎,該怎麼辦?
答案:Jint
Jint是一個適用於.NET的Javascript直譯器,它可以在任何現代.NET平臺上執行,因為它支援.NET標準2.0和.NET 4.6.1目標(及以上)。因為Jint既不生成任何.NET位元組碼,也不使用DLR,所以它執行相對較小的指令碼非常快。
檢查一下支援的JavaScript功能列表,它實際上相當豐富,只有一些更高階的功能被排除在外。
讓我們看看我們如何將其作為一個規則引擎來構建一個允許使用者定義的規則和指令碼被執行的系統。
案例原始碼:https://github.com/CharlieDigital/dotnet6-jint-rules-engine
相關文章
- .NET RulesEngine(規則引擎)
- 規則引擎模式的.NET開源專案案例模式
- 快速整合和使用 drools 規則引擎
- URule規則引擎
- C# 程式碼中呼叫 Javascript 程式碼段以提高應用程式的配置靈活性(使用 Javascript .NET 與 Jint)C#JavaScript
- 規則引擎模式 - upperdine模式
- Java各種規則引擎Java
- 架構 規則引擎 quartz架構quartz
- Java規則引擎 Easy RulesJava
- Drools 規則引擎應用
- Drools規則引擎簡介
- camunda快速入門(五):DMN規則引擎如何使用
- JavaScript中this的繫結規則JavaScript
- 規則引擎在IoT的重要性?
- Drools 業務規則引擎的完整教程
- JavaScript this 繫結規則JavaScript
- 什麼是規則引擎? - martinfowler
- Evrete 規則引擎簡介 | baeldungVR
- 規則引擎Golang指南 – Mohit KhareGolang
- ESLint規則中的JavaScript知識EsLintJavaScript
- 用 Java 構建簡單的規則引擎Java
- 規則引擎與ML模型的比較 - xLaszlo模型
- 數字化轉型中的規則引擎
- 如何學習Java的規則引擎模式? - plagovJava模式Go
- 一個規則引擎的視覺化方案視覺化
- 使用DDD規格Specification模式構建資料驅動規則引擎 - jonblankenship模式
- JavaScript中記憶體使用規則--堆和棧JavaScript記憶體
- 什麼是業務規則引擎?
- 全渠道營銷規則引擎案例
- 在.NET Core 中使用 FluentValidation 進行規則驗證
- javascript變數的宣告以及命名規則JavaScript變數
- javascript關於toFixed的計算規則JavaScript
- 基於Groovy的規則指令碼引擎實戰指令碼
- 基於 XAF Blazor 的規則引擎編輯器Blazor
- microsoft/RulesEngine:基於 Json的C#規則引擎ROSJSONC#
- 規則引擎整合新的可觀測性框架框架
- Spring Boot + liteflow 規則引擎,太香了!Spring Boot
- uwegeercken/jare:Java業務規則引擎(Jare)JARJava