17

C# で単純なルール エンジンを作成することになっています。私がどのように進めることができるかについての手がかりはありますか?. これは最小限のルール エンジンであり、SQL サーバーをバックエンドとして使用します。ルール エンジンに一般的に適用される一般的な設計図や設計パターンはありますか? 設計に使用できる .Net テクノロジの種類は? どんな指示も役に立ちます。ありがとう。

4

7 に答える 7

14

.NET 3.0 以降を使用している場合は、ワークフローを実際に使用しなくても、Windows Workflow Foundation のルール エンジンを使用できます。

私はプロジェクトでこれを行いました.SQLまたはXMLをバックエンドとして使用でき、うまく機能します. ワークフローの例に付属の IDE を使用して、独自のアプリに配置できます。素晴らしいです。

于 2008-09-18T14:44:48.660 に答える
3
  1. 非常に多くの商用およびオープンソースが利用可能であることを考えると、あなたが独自に実装するとは信じられません。

  2. 手頃な価格の優れた商用オプションとして InRule を検討するか、オープン ソース スペースの NxBRE を検討することをお勧めします。

于 2008-09-18T14:44:27.523 に答える
1

You can also try http://rulesengine.codeplex.com/

于 2011-09-07T06:04:43.210 に答える
0

どのようなルール エンジンをお探しですか? スタイリングの練習に?もしそうなら、 StyleCopをチェックしてください。答えではありませんが、すでにあなたのために何かがあるかもしれません.

于 2008-09-18T14:41:35.283 に答える
0

高レベルのルール エンジンをプログラムするビジネス アナリストがいる場合は、前述のルール エンジンのいずれかを選択するか、独自のルール エンジンを作成してください (ワークフローを含む)。そうでない場合は、ビジネス ロジックをコードでコーディングするだけで、ビジネス アナリストを雇ってシステムをやり直す必要が生じた場合でも、問題はありません。

于 2009-07-28T00:08:38.270 に答える
0

実装を次のように書きたい場合は...

[TestMethod]
public void GreaterThanRule_WhenGreater_ResultsTrue()
{
    // ARRANGE
    int threshold = 5;
    int actual = 10;

    // ACT
    var integerRule = new IntegerGreaterThanRule();
    integerRule.Initialize(threshold, actual);

    var integerRuleEngine = new RuleEngine<int>();
    integerRuleEngine.Add(integerRule);
    var result = integerRuleEngine.MatchAll();

    // ASSERT
    Assert.IsTrue(result);
}

...またはこれ...

[TestMethod]
public void GreaterThanRule_WhenGreater_ResultsTrue()
{
    // ARRANGE
    int threshold = 5;
    int actual = 10;

    // ACT
    var integerRule = new IntegerGreaterThanRule(threshold);

    var integerRuleEngine = new RuleEngine<int>();
    integerRuleEngine.ActualValue = actual;
    integerRuleEngine.Add(integerRule);

    // Get the result
    var result = integerRuleEngine.MatchAll();

    // ASSERT
    Assert.IsTrue(result);
}
于 2015-01-22T22:27:18.040 に答える
0

方法についての指示はありますか?(つまり、これがコース教材で補足されている場合、現在何を学んでいますか?) これがかなり基本的なシステムであることが意図されている場合は、決定論的有限状態機械非決定論的有限状態機械を調べると成功する可能性があります。

于 2008-09-18T14:49:26.763 に答える