2011-05-14 21 views
10

현재 C#으로 .net 응용 프로그램을 작성 중이고 여러 규칙을 확인하고 규칙을 통과 또는 실패한 것으로 판단하여 작업을 수행하십시오. 그래서 재사용 할 수있는 제네릭 솔루션을 구현하려고합니다. 이것은 내가 규칙 엔진을 작성해야한다는 결론에 이른다.C#의 규칙 엔진 디자인 및 예제 #

나는 C#에 대해 잘 알고있다.하지만 나는 디자인과 개발에 대한 연구의 일환으로 규칙 엔진을 작성해야 할 필요가있다. 나는 이러한 규칙의 생성에 관한 조언을 찾고있다. 엔진. 내가 볼 수있는 모든 사례가 더 훌륭한 것은 무엇일까요? 모든 C# /. NET 규칙 엔진 응용 프로그램? 일반적인 3 계층 아키텍처에서 어떤 계층이 상주해야합니까? 나는 codeplex와 google 코드에 관해 빠른 모양을 보았다. 그러나 아무도 나에서 뛰어 내리지 않았다! 그래서 어떤 방향은 좋을 것입니다.

답변

3

실제로 .NET에는 워크 플로와 함께 사용하도록 설계된 최상위 규칙 엔진이 있지만 워크 플로 외부에서 쉽게 사용할 수 있습니다. Windows Workflow Foundation Rules Engine이 표시되고 System.Workflow.Activities.Rules 네임 스페이스를 검사해야합니다.

워크 플로 외부에서 규칙을 사용하는 방법을 배우는 것은 인터넷 검색을 조금만하는 것입니다.

편집 : 당신이 구조를 검사하려면, 여기에 두 개의 오픈 소스 미리 제작 된 엔진입니다 :

+1

나는 이것이 끔찍한 오만한 소리처럼 들리지만 WF 규칙 라이브러리가 잘 설계되고 사용자 정의 된 도메인 특정 엔진에 비해 빈약하고 실제로 사용할 수 없다는 것을 발견했습니다. 물론 응용 프로그램에 따라 달라 지지만, 그렇게 빨리 권할 지 모르겠습니다. – Aaronaught

+0

느린 페이스의 산업 제어 응용 프로그램에 대한 내 워크 플로에서 항상 사용하므로 가장 실용적인 구현 중 하나라는 인상을 받았습니다. 하지만 아마도 그 사실을 잘 알고 있기 때문일 수 있습니다. 그러나 이것은 일반적인 xUnit 대 MSUnit 인수와 더 비슷하다는 것을 알고 있습니다. –

+1

아마도. 내가 아는 전부는 WF (또는 WF 규칙)를 사용하려고 할 때마다 항상 손을 내밀어 "왜이 코드에 코드를 쓰지 않고 그냥 쓰는가?"입니다. 맡은 일?" 나는 WF를 다른 워크 플로우 엔진과 비교하지 않고있다. 나는 그들이 모두 괜찮다고 확신한다. 내가 말하는 것은 대부분의 OTS 규칙 엔진이 단순한 코드보다 많은 이점을 제공하기에는 너무 일반적이지는 않다는 것이다. + 구성. 어쩌면 그것은 단지 내 경험이없는/나쁜 경험 이야기 일뿐입니다. – Aaronaught

0

건물과 자신의 규칙 엔진을 구현 할 수 고려해야 할 많은 일들로 매우 어려운 작업이되어야합니다. 가장 큰 문제는 언제 어떤 규칙을 실행할 것인지 결정하는 것입니다. 적절한주의를 기울이지 않으면 구현 내에서 성능 문제가 발생할 수 있습니다. 나는 비즈니스 문제에 집중하고 자신의 규칙을 정의하고 유지하는 능력을 자신의 주제 전문가 (SME 's)에게 제공하는 것이 좋습니다. 이 작업을 수행하는 많은 훌륭한 상용 제품이 있습니다. 내가 여러 번 성공적으로 구현 한 것은 www.inrule.com입니다. 그들은 단순하고 복잡한 문제를 해결하는 데 도움이되는 훌륭한 제품 세트를 가지고 있습니다. 잘하면이 도움이됩니다.