2008-09-18 30 views
17

Tôi phải tạo một công cụ quy tắc đơn giản trong C#. Bất kỳ khách hàng tiềm năng nào về cách tôi có thể tiếp tục ?. Đó là một công cụ quy tắc tối giản, và sẽ sử dụng máy chủ SQL làm đầu cuối. Chúng ta có bất kỳ kế hoạch chi tiết chung hoặc các mẫu thiết kế nào thường áp dụng cho các công cụ quy tắc không? Tôi có thể sử dụng loại công nghệ .Net nào để thiết kế một công nghệ? Mọi hướng dẫn sẽ hữu ích. Cảm ơn.Làm thế nào để thiết kế một công cụ quy tắc?

Trả lời

14

Nếu bạn đang sử dụng .NET 3.0 trở lên, bạn can use the Rules Engine of Windows Workflow Foundation mà không phải sử dụng một cách acutally Quy trình làm việc.

Tôi đã thực hiện việc này trên một dự án và bạn có thể sử dụng SQL hoặc XML làm chương trình phụ trợ và nó hoạt động tốt. Bạn có thể sử dụng IDE đi kèm với các ví dụ về quy trình làm việc và đặt nó trong các ứng dụng của riêng bạn. Nó là tuyệt vời.

0

Loại công cụ Quy tắc bạn đang tìm kiếm? Để thực hành tạo kiểu tóc? Nếu có, hãy kiểm tra StyleCop. Không phải câu trả lời, nhưng có thể đã có thứ gì đó ngoài kia cho bạn.

+0

@Scott, tôi đang tìm cách phát triển một công cụ quy tắc nghiệp vụ với C#. Giống như inRule hay gì đó, nhưng rất đơn giản. Và tôi đang tìm kiếm các mẫu hoặc bất kỳ kế hoạch chi tiết nào, dựa trên đó tôi có thể tạo ra công cụ quy tắc của mình. –

3
  1. Tôi không thể tin rằng bạn sẽ tự thực hiện xem xét có quá nhiều nguồn thương mại và nguồn mở sẵn có.

  2. Tôi khuyên bạn nên xem xét InRule như một tùy chọn thương mại tuyệt vời có giá hợp lý hoặc NxBRE trong không gian nguồn mở.

0

Bạn có đưa ra bất kỳ dấu hiệu nào về phương pháp không? (nghĩa là nếu điều này được bổ sung bằng tài liệu khóa học hiện tại bạn đang học gì?) Nếu đây là một hệ thống khá cơ bản, bạn có thể tìm thấy thành công khi xem xét Deterministic Finite State MachineNondeterministic Finite State Machine

+0

@jwarzech, nó không phải cho bất kỳ khóa học nào. Đó là một công cụ quy tắc kinh doanh, được cho là công việc thương mại - nhưng nó khá đơn giản. Có một vài lớp học chung (10 hoặc hơn?) Của các quy tắc. btw, tôi từng làm 'Lý thuyết tính toán' ở trường. Cảm ơn bạn đã trả lời nyways. –

0

Nếu bạn có nhà phân tích kinh doanh để lập trình cấp cao công cụ quy tắc, sau đó tốt - chọn một trong các công cụ quy tắc được đề cập trước đó hoặc cuộn công cụ của riêng bạn (bao gồm quy trình công việc). Nếu không, sau đó chỉ cần mã logic kinh doanh của bạn trong mã và nếu bạn cần phải thuê các nhà phân tích kinh doanh và làm lại hệ thống, bạn đang ở một nơi tốt để được.

0

Nếu bạn muốn viết một cái gì đó thực hiện của bạn như thế này ...

[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); 
} 

... hay này ...

[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); 
} 

. .. sau đó có thể xem công cụ quy tắc đơn giản của tôi tại đây: http://www.duanewingett.info/2015/01/21/SimpleCRuleEnginePart1TheRuleEngine.aspx

Các vấn đề liên quan