【发布时间】:2010-10-12 13:20:02
【问题描述】:
我的工作中有一个系统,它基本上是一个消息驱动的状态机。它接收各种类型的消息,根据消息查找一些上下文/状态,然后根据消息和当前状态决定要做什么。通常结果是一条消息被发送出系统。
有没有什么好的开源框架可以在 .NET 中实现状态机?我查看了最新版本的 Windows Workflow,它似乎是一个不错的选择;但是,我对默认的持久性机制(我们需要报告状态转换数据)、可测试性以及 WF 团队在我们所说的(假设)重新构建框架这一事实有些担忧。
我正在考虑尝试实现一个普通的 GoF“状态”模式,而不是 WF,并使用 Spring.NET 将所有内容连接在一起。有没有什么东西已经这样做了,或者类似的东西?
【问题讨论】:
-
如果您想要一个消息驱动的状态机,那么您可能会想到许多相关的问题。请参阅 What is Akka.NET 和 What problems does the actor model solve。可能符合您的需求。
-
您可能还对相关主题Reactive programming 感兴趣。为此,Akka 有 Reactive Streams。另一种方法是ReactiveX Observable streams。无论您选择何种技术,请务必调查对背压的支持。
标签: .net design-patterns frameworks state-machine