Подходящий инструмент/движок «бизнес-правил» для моего веб-приложения [закрыто]
-
20-09-2019 - |
Вопрос
Я не уверен, что этот вопрос имеет право быть здесь, но я не могу придумать лучшего места, куда можно пойти.
Я создаю веб-приложение, которое имеет несколько альтернативных путей для большинства вариантов использования.Эти пути я воспринимаю как бизнес-правила.Я хотел бы сначала запрограммировать свое приложение для основных сценариев, а затем применить альтернативные сценарии в качестве бизнес-правил (правила можно добавлять и удалять, даже когда приложение находится в работе).
Я думаю, что мое приложение заслуживает механизма правил.Раньше я ничего не использовал.Итак, у меня есть несколько вопросов, но перед этим вот профиль моего приложения:
- Веб-приложение (интенсивное использование данных)
- Несколько критично (связано со здравоохранением) – необходимо учитывать динамизм
- Платформа Microsoft .Net (ASP.Net, MS SQL Server, WCF)
Вот несколько запросов:
- Как лучше всего реализовать правила?
- Можно ли применять правила сразу или пакетно — единственная возможность?
- Как бизнес-пользователь может контролировать правила?
- Какая существует лучшая (подходящая) система правил?(Я предпочитаю использовать продукт с открытым исходным кодом)
Любой дополнительный опыт приветствуется, поскольку я все еще изучаю потребности.
Решение
Для ASP.Net доступно множество механизмов бизнес-правил; Фонд рабочих процессов Windows, БизТок Механизм бизнес-правил, Фонд Солвер, Потоковая аналитика, и Реактивный фреймворк.Google раскрывает гораздо больше, например Простой механизм правил и Механизм пользовательских правил.
Если существует много решений проблемы, это признак того, что ни одно из них не является хорошим, и это мой опыт использования механизмов правил.Я исследовал WWF, и мой опыт показал, что реализация движка и определение правил были более сложными и подверженными ошибкам, чем простое кодирование правил в логике приложения.
Я не одобряю использование двоичных или графических DSL.По моему опыту, их очень сложно менять, отлаживать, искать и поддерживать.
Мой совет — реализовать правила на знакомом, понятном конечному пользователю, специфичном для предметной области текстовом языке.Выбор языка будет зависеть от того, в какой области вы работаете и какие языки знакомы вашим конечным пользователям.Изучите конкурирующие продукты и реализации, чтобы узнать, что уже используется в вашей области.